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