1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License. 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1780c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilsonpackage libcore.java.util.prefs; 18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream; 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayOutputStream; 21b27fd46c694f8ee4118d6b9bdd61741472ee92b5Narayan Kamathimport java.io.File; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.AbstractPreferences; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.BackingStoreException; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.InvalidPreferencesFormatException; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.NodeChangeEvent; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.NodeChangeListener; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.PreferenceChangeEvent; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.PreferenceChangeListener; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.Preferences; 31f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fullerimport java.util.prefs.PreferencesFactory; 32f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller 3380c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilsonimport junit.framework.TestCase; 34b27fd46c694f8ee4118d6b9bdd61741472ee92b5Narayan Kamathimport libcore.io.IoUtils; 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 3680c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilsonpublic final class OldAbstractPreferencesTest extends TestCase { 37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static final String nodeName = "mock"; 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 408157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray /** Timeout used for Object.wait when no action is expected. */ 418157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray static final long NO_ACTION_EXPECTED_TIMEOUT = 200; 428157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray 438157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray /** Timeout used for Object.wait when an action is expected. */ 448157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray static final long ACTION_EXPECTED_TIMEOUT = 0; // Wait indefinitely 458157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray 46f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller private PreferencesFactory defaultFactory; 47f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller 4880c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilson AbstractPreferences pref; 4980c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilson AbstractPreferences root; 5080c9f71990a6655b7b2b43dc1946487e917f0f9dJesse Wilson AbstractPreferences parent = null; 51f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 55f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller File tmpDir = IoUtils.createTemporaryDirectory("OldAbstractPreferencesTest"); 56f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller defaultFactory = Preferences.setPreferencesFactory( 57f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller new PreferencesTest.TestPreferencesFactory(tmpDir.getAbsolutePath())); 58b27fd46c694f8ee4118d6b9bdd61741472ee92b5Narayan Kamath 597387da1059039afc7d8fd3e48e4d0712fff5dfafThe Android Open Source Project root = (AbstractPreferences) Preferences.userRoot(); 60b27fd46c694f8ee4118d6b9bdd61741472ee92b5Narayan Kamath assertEquals(0, root.childrenNames().length); 61b27fd46c694f8ee4118d6b9bdd61741472ee92b5Narayan Kamath assertEquals(0, root.keys().length); 62ab28398a565e5ce8a56cdfd50ac6226e5317cf66The Android Open Source Project 63c3002fbb233734d150a2fcef30fac69260c9ac6eJesse Wilson parent = (AbstractPreferences) Preferences.userNodeForPackage(getClass()); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref = (AbstractPreferences) parent.node(nodeName); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 67f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller @Override 68f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller public void tearDown() throws Exception { 69f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller Preferences.setPreferencesFactory(defaultFactory); 70f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller super.tearDown(); 71f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller } 72f6a432f7f98dabbc51a062c4bda33b706330e91dNeil Fuller 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testToString() { 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.toString().contains(nodeName)); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPut() throws BackingStoreException { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 80f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("String", pref.get("Value", ":")); 82f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put(null, "Exception"); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 89f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 92f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 96f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put(new String(sb), "Exception"); 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb = new StringBuffer(); 105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_VALUE_LENGTH + 1; i++) { 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 109f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("DoubleValue", new String(sb)); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 116f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 118f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("DoubleValue", "Exception"); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGet() throws BackingStoreException { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("String", pref.get("Value", ":")); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("true", pref.get("BoolValue", ":")); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("9.10938188E-31", pref.get("DoubleValue", null)); 136f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.get(null, "Exception"); 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 143f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.get("DoubleValue", "Exception"); 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testRemove() throws BackingStoreException { 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] keyArray = new String[]{"Value", "DoubleValue", "LongValue", "IntValue"}; 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put(keyArray[0], "String"); 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble(keyArray[1], new Double(9.10938188e-31)); 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong(keyArray[2], new Long(Long.MIN_VALUE)); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt(keyArray[3], 299792458); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("New node"); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 162f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] str = pref.keys(); 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(keyArray.length, str.length); 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < keyArray.length; i++) { 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.remove(keyArray[i]); 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project str = pref.keys(); 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(keyArray.length - i - 1, str.length); 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.childrenNames().length); 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.remove("New node"); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.childrenNames().length); 173f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.remove("New node"); 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testClear() throws BackingStoreException { 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap = (AbstractPreferences) pref.node("New node"); 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 33); 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, pref.getInt("IntValue", 22)); 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.childrenNames().length); 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.clear(); 193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.getBoolean("BoolValue", false)); 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(22, pref.getInt("IntValue", 22)); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.childrenNames().length); 196f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 198f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.clear(); 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 205f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ap.clear(); 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutInt() throws BackingStoreException { 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 299792458); 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 217f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(299792458, pref.getInt("IntValue", new Integer(1))); 219f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt(null, new Integer(1)); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 226f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 229f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 233f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt(new String(sb), new Integer(1)); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 242f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", new Integer(1)); 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetInt() throws BackingStoreException { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong("LongValue", new Long(Long.MIN_VALUE)); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 299792458); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 257f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.getInt("Value", new Integer(1))); 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.getInt("LongValue", new Integer(1))); 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.getInt("DoubleValue", new Integer(1))); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(299792458, pref.getInt("IntValue", new Integer(1))); 262f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getInt(null, new Integer(1)); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 269f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 271f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getInt("IntValue", new Integer(1)); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutLong() throws BackingStoreException { 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong("LongValue", new Long(299792458)); 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 283f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(299792458L, pref.getLong("LongValue", new Long(1))); 285f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong(null, new Long(1)); 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 292f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 295f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 299f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong(new String(sb), new Long(1)); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 306f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 308f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong("LongValue", new Long(1)); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetLong() throws BackingStoreException { 318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putLong("LongValue", new Long(Long.MIN_VALUE)); 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 299792458); 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 323f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1L, pref.getLong("Value", new Long(1))); 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(Long.MIN_VALUE, pref.getLong("LongValue", new Long(1))); 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1L, pref.getLong("DoubleValue", new Long(1))); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(299792458L, pref.getLong("IntValue", new Long(1))); 328f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getLong(null, new Long(1)); 331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 335f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 337f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getLong("LongValue", new Long(1)); 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutBoolean() throws BackingStoreException { 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 349f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 351f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean(null, true); 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 358f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 361f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 365f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean(new String(sb), true); 368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 372f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 374f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("DoubleValue", true); 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetBoolean() throws BackingStoreException { 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 388f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.getBoolean("Value", false)); 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.getBoolean("DoubleValue", false)); 392f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getBoolean(null, true); 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 399f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 401f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getBoolean("DoubleValue", true); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutFloat() throws BackingStoreException { 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putFloat("FloatValue", new Float(1.602e-19)); 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 413f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Float(1.602e-19), pref.getFloat("FloatValue", new Float(0.2))); 415f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putFloat(null, new Float(0.1)); 418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 422f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 425f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 429f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putFloat(new String(sb), new Float(0.1)); 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 436f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 438f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putFloat("FloatValue", new Float(0.1)); 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetFloat() throws BackingStoreException { 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putFloat("FloatValue", new Float(-0.123)); 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 299792458); 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 453f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Float(0.1), pref.getFloat("Value", new Float(0.1))); 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Float(-0.123), pref.getFloat("FloatValue", new Float(0.2))); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Float(9.109382e-31), pref.getFloat("DoubleValue", new Float(2.14))); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Float(2.99792448e8), pref.getFloat("IntValue", new Float(5))); 458f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getFloat(null, new Float(0.1)); 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 465f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 467f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getFloat("FloatValue", new Float(0.1)); 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutDouble() throws BackingStoreException { 477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 479f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(9.10938188e-31), pref.getDouble("DoubleValue", new Double(2.14))); 481f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble(null, new Double(0.1)); 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 488f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 491f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 495f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble(new String(sb), new Double(0.1)); 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 502f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 504f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(0.1)); 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetDouble() throws BackingStoreException { 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 299792458); 518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 519f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(0.1), pref.getDouble("Value", new Double(0.1))); 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(0.2), pref.getDouble("BoolValue", new Double(0.2))); 522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(9.10938188e-31), pref.getDouble("DoubleValue", new Double(2.14))); 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(2.99792458e8), pref.getDouble("IntValue", new Double(5))); 524f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getDouble(null, new Double(0.1)); 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 531f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 533f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getDouble("DoubleValue", new Double(0.1)); 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testPutByteArray() throws BackingStoreException { 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] bArray = new byte[]{1, 2, 3, 4, 5}; 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] array = null; 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray("Array", bArray); 547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 548f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project array = pref.getByteArray("Array", null); 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(bArray.length, array.length); 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < bArray.length; i++) { 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(bArray[i], array[i]); 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 554f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray(null, bArray); 557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 563f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) { 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 567f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray(new String(sb), bArray); 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 574f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bArray = new byte[Preferences.MAX_VALUE_LENGTH * 3 / 4 + 1]; 576f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray("Big array", bArray); 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 583f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 585f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray("Array", new byte[10]); 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testGetByteArray() throws BackingStoreException { 595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] bArray = new byte[]{1, 2, 3, 4, 5}; 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] tmp = new byte[]{5}; 597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] array = null; 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Value", "String"); 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble("DoubleValue", new Double(9.10938188e-31)); 601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putByteArray("Array", bArray); 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 603f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project array = pref.getByteArray("Value", tmp); 605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(tmp.length, array.length); 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < tmp.length; i++) { 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(tmp[i], array[i]); 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 609f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project array = pref.getByteArray("DoubleValue", tmp); 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(tmp.length, array.length); 612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < tmp.length; i++) { 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(tmp[i], array[i]); 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 615f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project array = pref.getByteArray("Array", tmp); 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(bArray.length, array.length); 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < bArray.length; i++) { 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(bArray[i], array[i]); 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 621f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getByteArray(null, tmp); 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("NullPointerException expected"); 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 628f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 630f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getByteArray("Array", tmp); 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testKeys() throws BackingStoreException { 640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] keyArray = new String[]{"Value", "DoubleValue", "BoolValue", "IntValue"}; 641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String nodeStr = "New node"; 642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node(nodeStr); 643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put(keyArray[0], "String"); 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putDouble(keyArray[1], new Double(9.10938188e-31)); 645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean(keyArray[2], true); 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt(keyArray[3], 299792458); 647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 648f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] str = pref.keys(); 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(keyArray.length, str.length); 651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int i = 0; i < str.length; i++) { 652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project boolean flag = false; 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(int j = 0; j < keyArray.length; j++) { 654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (str[i].compareTo(keyArray[j]) == 0) { 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flag = true; 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project break; 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(str[i].compareTo(nodeStr) != 0); 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(flag); 661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 662f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 664f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.keys(); 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch(IllegalStateException e) { 669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testChildrenNames() throws BackingStoreException { 674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences first = (AbstractPreferences) pref.node("First node"); 675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences second = (AbstractPreferences) pref.node("Second node"); 676f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, pref.childrenNames().length); 678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(0, first.childrenNames().length); 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(0, second.childrenNames().length); 680f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project second.removeNode(); 682f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project second.childrenNames(); 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.childrenNames(); 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 7005cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson public void test_nodeExists() throws BackingStoreException { 7015cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson AbstractPreferences test = (AbstractPreferences) Preferences.userRoot() 7025cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson .node("test"); 7035cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson try { 7045cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson test.nodeExists(null); 7055cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson fail("should throw NullPointerException"); 7065cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson } catch (NullPointerException e) { 7075cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson // Expected 7085cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson } 7095cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson 7105cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson test.removeNode(); 7115cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson try { 7125cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson test.nodeExists(null); 7135cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson fail("should throw NullPointerException"); 7145cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson } catch (NullPointerException e) { 7155cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson // Expected 7165cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson } 7175cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson } 7185cc8cb84ac4a3474cfb666c9b94fd721e4615ca0Jesse Wilson 719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testParent() throws BackingStoreException { 720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences node = (AbstractPreferences) pref.node("First node/sub node"); 721f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(node.parent().name().compareTo("First node") == 0); 723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project node.parent(); 728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testNode() throws BackingStoreException { 735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences first = (AbstractPreferences) pref.node("First node"); 736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences second = (AbstractPreferences) pref.node("Second node"); 737f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.node("blabla/"); 740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 744f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.node("///invalid"); 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 751f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project StringBuffer sb = new StringBuffer(); 753f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < Preferences.MAX_NAME_LENGTH; i++) { 755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.node(new String(sb)); 758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project sb.append('c'); 759f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.node(new String(sb)); 762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project second.removeNode(); 768f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project second.node(""); 771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project first.node(""); 778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testNodeExists() throws BackingStoreException { 785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap1 = (AbstractPreferences) pref.node("First node"); 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap2 = (AbstractPreferences) pref.node("Second node"); 787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntegerValue", 33); 788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 790f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.nodeExists("First node")); 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.nodeExists("Second node")); 793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.nodeExists("IntegerValue")); 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.nodeExists("BoolValue")); 795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.nodeExists("Value")); 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(pref.nodeExists(nodeName)); 797f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.nodeExists("///invalid"); 800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 804f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 806f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.nodeExists("Exception"); 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testRemoveNode() throws BackingStoreException { 816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] nodeArray = new String[]{"First node", "Second node", "Last node"}; 817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.put("Key", "String"); 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < nodeArray.length; i++) { 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node(nodeArray[i]); 821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 823f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String[] str = pref.childrenNames(); 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(nodeArray.length, str.length); 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for(i = 0; i < nodeArray.length; i++) { 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node(nodeArray[i]).removeNode(); 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project str = pref.childrenNames(); 829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(nodeArray.length - i - 1, str.length); 830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.keys().length); 832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("Key").removeNode(); 833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.keys().length); 834f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 836f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 843f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project root.removeNode(); 846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("UnsupportedOperationException expected"); 847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (UnsupportedOperationException e) { 848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testName() { 853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences first = (AbstractPreferences) pref.node("First node"); 854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences second = (AbstractPreferences) pref.node("Second node/sub node"); 855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(first.name().compareTo("First node") == 0); 857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(first.name().compareTo("Second node") == 0); 858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(second.name().compareTo("sub node") == 0); 859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testAbsolutePath() { 862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(parent.absolutePath() + "/" + nodeName, pref.absolutePath()); 863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(parent.absolutePath() + "/" + "new node", parent.node("new node").absolutePath()); 864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testIsUserNode() { 867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(parent.isUserNode()); 868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse(Preferences.systemRoot().isUserNode()); 869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testSync() throws BackingStoreException { 872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("new node/sub node"); 873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.sync(); 874f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 876f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.sync(); 879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MockPreferenceChangeListener implements PreferenceChangeListener { 886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private boolean flagChange = false; 887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 888f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void preferenceChange(PreferenceChangeEvent arg0) { 889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flagChange = true; 890f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson notifyAll(); 891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 892f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 893f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void assertChanged(boolean expected) throws InterruptedException { 8948157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray if (!flagChange) { 8958157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT); 8968157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray } 897f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson assertEquals(expected, flagChange); 898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flagChange = false; 899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 901f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 902f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public void testAddPreferenceChangeListener() throws Exception { 903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockPreferenceChangeListener mpcl = new MockPreferenceChangeListener(); 904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.addPreferenceChangeListener(mpcl); 905f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("new node"); 907f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.node("new node"); 909f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.putInt("IntValue", 33); 911f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(true); 912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, parent.getInt("IntValue", 22)); 913f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(22, parent.getInt("Missed Value", 22)); 915f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 918f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public void testRemovePreferenceChangeListener() throws Exception { 919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockPreferenceChangeListener mpcl = new MockPreferenceChangeListener(); 920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.addPreferenceChangeListener(mpcl); 921f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.putInt("IntValue", 33); 923f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(true); 924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.removePreferenceChangeListener(mpcl); 925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.putInt("IntValue", 33); 926f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mpcl.assertChanged(false); 927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MockNodeChangeListener implements NodeChangeListener { 930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private boolean flagAdded = false; 931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project private boolean flagRemoved = false; 932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 933f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void childAdded(NodeChangeEvent arg0) { 934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flagAdded = true; 935f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson notifyAll(); 936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 938f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void childRemoved(NodeChangeEvent arg0) { 939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project flagRemoved = true; 940f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson notifyAll(); 941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 942f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 943f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void assertAdded(boolean expected) throws InterruptedException { 9448157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray if (!flagAdded) { 9458157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT); 9468157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray } 947f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson assertEquals(expected, flagAdded); 948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 949f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 950f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public synchronized void assertRemoved(boolean expected) throws InterruptedException { 9518157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray if (!flagRemoved) { 9528157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray wait(expected ? ACTION_EXPECTED_TIMEOUT : NO_ACTION_EXPECTED_TIMEOUT); 9538157bc86afeb76f2391741491917f90003aa2569Nicolas Geoffray } 954f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson assertEquals(expected, flagRemoved); 955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 957f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 958f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public void testAddNodeChangeListener() throws Exception { 959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockNodeChangeListener mncl = new MockNodeChangeListener(); 960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.addNodeChangeListener(mncl); 961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("test"); 962f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(false); 963f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(false); 964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 965f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(false); 966f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(true); 967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.node("new node"); 968f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(true); 969f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(true); 970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 972f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson public void testRemoveNodeChangeListener() throws BackingStoreException, InterruptedException { 973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project MockNodeChangeListener mncl = new MockNodeChangeListener(); 974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.addNodeChangeListener(mncl); 975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("test"); 976f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(false); 977f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(false); 978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.removeNodeChangeListener(mncl); 979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 980f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(false); 981f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(false); 982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project parent.node("new node"); 983f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertAdded(false); 984f296f0cb984fb2435bedad23439c1fdc2ad61bd0Jesse Wilson mncl.assertRemoved(false); 985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testExportNode() throws BackingStoreException, IOException, InvalidPreferencesFormatException { 988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap = (AbstractPreferences) pref.node("New node"); 989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntValue", 33); 990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 992f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayOutputStream baos = new ByteArrayOutputStream(); 994f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.exportNode(baos); 996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 997f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 999adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, pref.getInt("IntValue", 22)); 1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(1, pref.childrenNames().length); 1001f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String xmlData = new String(baos.toByteArray()); 1003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("IntValue")); 1005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("BoolValue")); 1006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("33")); 1007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("true")); 1008f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 1010f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1011adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1012adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.exportNode(new ByteArrayOutputStream()); 1013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 1014adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 1015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1016adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1017f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1019adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getBoolean("BoolValue", false); 1020adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 1021adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 1022adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1023adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1024adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref = (AbstractPreferences) parent.node(nodeName); 1025adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.importPreferences(bais); 1027f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1028adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 1029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, pref.getInt("IntValue", 22)); 1030adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(0, pref.childrenNames().length); 1031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1032adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testExportSubtree() throws BackingStoreException, IOException, InvalidPreferencesFormatException { 1034adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap1 = (AbstractPreferences) pref.node("First node"); 1035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project AbstractPreferences ap2 = (AbstractPreferences) pref.node("Second node"); 1036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putInt("IntegerValue", 33); 1037adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.putBoolean("BoolValue", true); 1038adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.flush(); 1039adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1040adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ap1.putInt("FirstIntValue", 11); 1041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ap2.putDouble("DoubleValue", new Double(6.626e-34)); 1042f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayOutputStream baos = new ByteArrayOutputStream(); 1044f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.exportSubtree(baos); 1046adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray()); 1047f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1048adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 1049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, pref.getInt("IntegerValue", 22)); 1050adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, pref.childrenNames().length); 1051adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(11, ap1.getInt("FirstIntValue", 22)); 1052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(6.626e-34), ap2.getDouble("DoubleValue", new Double (3.14))); 1053f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String xmlData = new String(baos.toByteArray()); 1055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("IntegerValue")); 1057adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("BoolValue")); 1058adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("FirstIntValue")); 1059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("DoubleValue")); 1060adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("33")); 1061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("true")); 1062adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("11")); 1063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(xmlData.contains("6.626E-34")); 1064f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1065adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.removeNode(); 1066f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.exportSubtree(new ByteArrayOutputStream()); 1069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 1070adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 1071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1072adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1073f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1075adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.getBoolean("BoolValue", false); 1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalStateException expected"); 1077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalStateException e) { 1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref = (AbstractPreferences) parent.node(nodeName); 1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.importPreferences(bais); 1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ap1 = (AbstractPreferences) pref.node("First node"); 1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project ap2 = (AbstractPreferences) pref.node("Second node"); 1085f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue(pref.getBoolean("BoolValue", false)); 1087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(33, pref.getInt("IntegerValue", 22)); 1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, pref.childrenNames().length); 1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(11, ap1.getInt("FirstIntValue", 22)); 1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(new Double(6.626e-34), ap2.getDouble("DoubleValue", new Double (3.14))); 1091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1092f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project class MockAbstractPreferences extends AbstractPreferences { 1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected MockAbstractPreferences(AbstractPreferences parent, String name) { 1095adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super(parent, name); 1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected AbstractPreferences childSpi(String name) { 1100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 1101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected String[] childrenNamesSpi() throws BackingStoreException { 1105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 1106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void flushSpi() throws BackingStoreException { 1110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected String getSpi(String key) { 1114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 1115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected String[] keysSpi() throws BackingStoreException { 1119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return null; 1120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void putSpi(String key, String value) { 1124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void removeNodeSpi() throws BackingStoreException { 1128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void removeSpi(String key) { 1132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project @Override 1135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void syncSpi() throws BackingStoreException { 1136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testAbstractPreferences() { 1140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(new MockAbstractPreferences(pref, "node name")); 1141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new MockAbstractPreferences(pref, "node/name"); 1143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 1145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new MockAbstractPreferences(null, "node"); 1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("IllegalArgumentException expected"); 1151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 1152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project //expected 1153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void testCachedChildren() throws BackingStoreException { 1157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("First node"); 1158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project pref.node("Second node"); 1159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals(2, pref.childrenNames().length); 1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 1163