OldAbstractPreferencesTest.java revision adc854b798c1cfe3bfd4c27d68d5cee38ca617da
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
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpackage org.apache.harmony.prefs.tests.java.util.prefs;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargets;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestLevel;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetNew;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport dalvik.annotation.TestTargetClass;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport junit.framework.TestCase;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayOutputStream;
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.AbstractPreferences;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.BackingStoreException;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.InvalidPreferencesFormatException;
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.NodeChangeEvent;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.NodeChangeListener;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.PreferenceChangeEvent;
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.PreferenceChangeListener;
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.prefs.Preferences;
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project@TestTargetClass(AbstractPreferences.class)
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectpublic class AbstractPreferencesTest extends TestCase {
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    AbstractPreferences pref;
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static AbstractPreferences root = (AbstractPreferences) Preferences.userRoot();
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static final String nodeName = "mock";
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    static AbstractPreferences parent = null;
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void setUp() throws Exception {
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.setUp();
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent = (AbstractPreferences) Preferences.userNodeForPackage(this.getClass());
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String str[] = parent.childrenNames();
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < str.length; i++) {
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.out.print(str[i] + "  ");
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        System.out.println();
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/**/
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref = (AbstractPreferences) parent.node(nodeName);
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() throws Exception {
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*        String str[] = parent.childrenNames();
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < str.length; i++) {
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            System.out.print(str[i] + "  ");
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        System.out.println();/**/
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.removeNode();
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        super.tearDown();
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "toString",
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testToString() {
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.toString().contains(nodeName));
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Tests putSpi indirectly",
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "put",
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class, java.lang.String.class}
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Tests putSpi indirectly",
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "putSpi",
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class, java.lang.String.class}
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPut() throws BackingStoreException {
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("String", pref.get("Value", ":"));
102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.put(null, "Exception");
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.put(new String(sb), "Exception");
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        sb = new StringBuffer();
125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_VALUE_LENGTH + 1; i++) {
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.put("DoubleValue", new String(sb));
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.put("DoubleValue", "Exception");
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "getSpi tested indirectly.",
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "get",
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class, java.lang.String.class}
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "getSpi tested indirectly.",
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "getSpi",
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGet() throws BackingStoreException {
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("String", pref.get("Value", ":"));
168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("true", pref.get("BoolValue", ":"));
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals("9.10938188E-31", pref.get("DoubleValue", null));
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.get(null, "Exception");
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.get("DoubleValue", "Exception");
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirectly checks removeSpi",
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "remove",
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirectly checks removeSpi",
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "removeSpi",
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testRemove() throws BackingStoreException {
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] keyArray = new String[]{"Value", "DoubleValue", "LongValue", "IntValue"};
204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put(keyArray[0], "String");
205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble(keyArray[1], new Double(9.10938188e-31));
206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putLong(keyArray[2], new Long(Long.MIN_VALUE));
207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt(keyArray[3], 299792458);
208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("New node");
209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] str = pref.keys();
212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(keyArray.length, str.length);
213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(int i = 0; i < keyArray.length; i++) {
214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.remove(keyArray[i]);
215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            str = pref.keys();
216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(keyArray.length - i - 1, str.length);
217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.childrenNames().length);
219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.remove("New node");
220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.childrenNames().length);
221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.remove("New node");
226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "clear",
236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testClear() throws BackingStoreException {
239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap = (AbstractPreferences) pref.node("New node");
240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 33);
241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, pref.getInt("IntValue", 22));
245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.childrenNames().length);
246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.clear();
247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.getBoolean("BoolValue", false));
248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(22, pref.getInt("IntValue", 22));
249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.childrenNames().length);
250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.clear();
255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ap.clear();
262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putInt",
272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, int.class}
273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutInt() throws BackingStoreException {
275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 299792458);
276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(299792458, pref.getInt("IntValue", new Integer(1)));
279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putInt(null, new Integer(1));
282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putInt(new String(sb), new Integer(1));
296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putInt("IntValue", new Integer(1));
305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getInt",
315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, int.class}
316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetInt() throws BackingStoreException {
318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putLong("LongValue", new Long(Long.MIN_VALUE));
321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 299792458);
322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.getInt("Value", new Integer(1)));
325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.getInt("LongValue", new Integer(1)));
326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.getInt("DoubleValue", new Integer(1)));
327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(299792458, pref.getInt("IntValue", new Integer(1)));
328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getInt(null, new Integer(1));
331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getInt("IntValue", new Integer(1));
340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putLong",
350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, long.class}
351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutLong() throws BackingStoreException {
353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putLong("LongValue", new Long(299792458));
354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(299792458L, pref.getLong("LongValue", new Long(1)));
357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putLong(null, new Long(1));
360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putLong(new String(sb), new Long(1));
374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putLong("LongValue", new Long(1));
383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getLong",
393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, long.class}
394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetLong() throws BackingStoreException {
396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putLong("LongValue", new Long(Long.MIN_VALUE));
399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 299792458);
400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1L, pref.getLong("Value", new Long(1)));
403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(Long.MIN_VALUE, pref.getLong("LongValue", new Long(1)));
404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1L, pref.getLong("DoubleValue", new Long(1)));
405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(299792458L, pref.getLong("IntValue", new Long(1)));
406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getLong(null, new Long(1));
409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getLong("LongValue", new Long(1));
418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putBoolean",
428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, boolean.class}
429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutBoolean() throws BackingStoreException {
431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putBoolean(null, true);
438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putBoolean(new String(sb), true);
452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putBoolean("DoubleValue", true);
461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getBoolean",
471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, boolean.class}
472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetBoolean() throws BackingStoreException {
474adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
475adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
477adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
479adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.getBoolean("Value", false));
480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
481adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.getBoolean("DoubleValue", false));
482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
483adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getBoolean(null, true);
485adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
492adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getBoolean("DoubleValue", true);
494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putFloat",
504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, float.class}
505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutFloat() throws BackingStoreException {
507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putFloat("FloatValue", new Float(1.602e-19));
508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
509adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
510adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Float(1.602e-19), pref.getFloat("FloatValue", new Float(0.2)));
511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putFloat(null, new Float(0.1));
514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
517adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
518adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
520adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
522adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putFloat(new String(sb), new Float(0.1));
528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
529adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putFloat("FloatValue", new Float(0.1));
537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
546adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getFloat",
547adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, float.class}
548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetFloat() throws BackingStoreException {
550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putFloat("FloatValue", new Float(-0.123));
553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 299792458);
554adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
555adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Float(0.1), pref.getFloat("Value", new Float(0.1)));
557adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Float(-0.123), pref.getFloat("FloatValue", new Float(0.2)));
558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Float(9.109382e-31), pref.getFloat("DoubleValue", new Float(2.14)));
559adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Float(2.99792448e8), pref.getFloat("IntValue", new Float(5)));
560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getFloat(null, new Float(0.1));
563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
566adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getFloat("FloatValue", new Float(0.1));
572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putDouble",
582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, double.class}
583adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
584adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutDouble() throws BackingStoreException {
585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(9.10938188e-31), pref.getDouble("DoubleValue", new Double(2.14)));
589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putDouble(null, new Double(0.1));
592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
594adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
595adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
597adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
599adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
601adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
603adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
605adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putDouble(new String(sb), new Double(0.1));
606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
612adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putDouble("DoubleValue", new Double(0.1));
615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getDouble",
625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, double.class}
626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetDouble() throws BackingStoreException {
628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
629adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
630adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 299792458);
632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(0.1), pref.getDouble("Value", new Double(0.1)));
635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(0.2), pref.getDouble("BoolValue", new Double(0.2)));
636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(9.10938188e-31), pref.getDouble("DoubleValue", new Double(2.14)));
637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(2.99792458e8), pref.getDouble("IntValue", new Double(5)));
638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
640adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getDouble(null, new Double(0.1));
641adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
643adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
645adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
647adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
649adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getDouble("DoubleValue", new Double(0.1));
650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
651adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
658adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "putByteArray",
660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, byte[].class}
661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testPutByteArray() throws BackingStoreException {
663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] bArray = new byte[]{1, 2, 3, 4, 5};
664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] array  = null;
665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putByteArray("Array", bArray);
667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array = pref.getByteArray("Array", null);
670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(bArray.length, array.length);
671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(i = 0; i < bArray.length; i++) {
672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(bArray[i], array[i]);
673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
675adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
676adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putByteArray(null, bArray);
677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < Preferences.MAX_KEY_LENGTH + 1; i++) {
685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
686adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
687adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
689adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putByteArray(new String(sb), bArray);
690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
691adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
693adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
695adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bArray = new byte[Preferences.MAX_VALUE_LENGTH * 3 / 4 + 1];
696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
697adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.putByteArray("Big array", bArray);
699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
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            pref.putByteArray("Array", new byte[10]);
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    @TestTargetNew(
715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "getByteArray",
718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.lang.String.class, byte[].class}
719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testGetByteArray() throws BackingStoreException {
721adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] bArray = new byte[]{1, 2, 3, 4, 5};
722adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] tmp    = new byte[]{5};
723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] array  = null;
724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Value", "String");
726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble("DoubleValue", new Double(9.10938188e-31));
727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putByteArray("Array", bArray);
728adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
730adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array = pref.getByteArray("Value", tmp);
731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(tmp.length, array.length);
732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(i = 0; i < tmp.length; i++) {
733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(tmp[i], array[i]);
734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array = pref.getByteArray("DoubleValue", tmp);
737adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(tmp.length, array.length);
738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(i = 0; i < tmp.length; i++) {
739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(tmp[i], array[i]);
740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        array = pref.getByteArray("Array", tmp);
743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(bArray.length, array.length);
744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(i = 0; i < bArray.length; i++) {
745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(bArray[i], array[i]);
746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getByteArray(null, tmp);
750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("NullPointerException expected");
751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (NullPointerException e) {
752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
754adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
755adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getByteArray("Array", tmp);
759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
762adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "keysSpi tested indirectly",
769adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "keys",
770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
771adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "keysSpi tested indirectly",
775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "keysSpi",
776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testKeys() throws BackingStoreException {
780adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] keyArray = new String[]{"Value", "DoubleValue", "BoolValue", "IntValue"};
781adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String nodeStr = "New node";
782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node(nodeStr);
783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put(keyArray[0], "String");
784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putDouble(keyArray[1], new Double(9.10938188e-31));
785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean(keyArray[2], true);
786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt(keyArray[3], 299792458);
787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] str = pref.keys();
790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(keyArray.length, str.length);
791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(int i = 0; i < str.length; i++) {
792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            boolean flag = false;
793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            for(int j = 0; j < keyArray.length; j++) {
794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                if (str[i].compareTo(keyArray[j]) == 0) {
795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    flag = true;
796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                    break;
797adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                }
798adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            }
799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue(str[i].compareTo(nodeStr) != 0);
800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertTrue(flag);
801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
805adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.keys();
807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch(IllegalStateException e) {
809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
812adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException can not be checked. childrenNamesSpi checked indirectly.",
817adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "childrenNames",
818adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException can not be checked. childrenNamesSpi checked indirectly.",
823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "childrenNamesSpi",
824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testChildrenNames() throws BackingStoreException {
828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences first = (AbstractPreferences) pref.node("First node");
829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences second = (AbstractPreferences) pref.node("Second node");
830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, pref.childrenNames().length);
832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(0, first.childrenNames().length);
833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(0, second.childrenNames().length);
834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        second.removeNode();
836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            second.childrenNames();
839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            first.childrenNames();
848adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
850adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "parent",
858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
860adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testParent() throws BackingStoreException {
861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences node = (AbstractPreferences) pref.node("First node/sub node");
862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(node.parent().name().compareTo("First node") == 0);
864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
866adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
867adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            node.parent();
869adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
876adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirecly checks childSpi",
879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "node",
880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirecly checks childSpi",
885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "childSpi",
886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
887adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testNode() throws BackingStoreException {
890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences first = (AbstractPreferences) pref.node("First node");
891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences second = (AbstractPreferences) pref.node("Second node");
892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
893adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
894adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            first.node("blabla/");
895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
896adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
897adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
901adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            first.node("///invalid");
902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
903adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
905adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        StringBuffer sb = new StringBuffer();
908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (int i = 0; i < Preferences.MAX_NAME_LENGTH; i++) {
910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            sb.append('c');
911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        first.node(new String(sb));
913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        sb.append('c');
914adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            first.node(new String(sb));
917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        second.removeNode();
923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            second.node("");
926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
927adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            first.node("");
933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
935adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
939adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "getChild tested indirectly",
943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "nodeExists",
944adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "getChild tested indirectly",
949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "getChild",
950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.lang.String.class}
951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testNodeExists() throws BackingStoreException {
954adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap1 = (AbstractPreferences) pref.node("First node");
955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap2 = (AbstractPreferences) pref.node("Second node");
956adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntegerValue", 33);
957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
960adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.nodeExists("First node"));
961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.nodeExists("Second node"));
962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.nodeExists("IntegerValue"));
963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.nodeExists("BoolValue"));
964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.nodeExists("Value"));
965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(pref.nodeExists(nodeName));
966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
967adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.nodeExists("///invalid");
969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
972adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
974adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
977adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.nodeExists("Exception");
978adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
982adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
986adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "",
988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "removeNode",
989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "",
994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "removeNodeSpi",
995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testRemoveNode() throws BackingStoreException {
999adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] nodeArray = new String[]{"First node", "Second node", "Last node"};
1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int i;
1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.put("Key", "String");
1002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for (i = 0; i < nodeArray.length; i++) {
1003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.node(nodeArray[i]);
1004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1005adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String[] str = pref.childrenNames();
1008adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(nodeArray.length, str.length);
1009adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        for(i = 0; i < nodeArray.length; i++) {
1010adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.node(nodeArray[i]).removeNode();
1011adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            str = pref.childrenNames();
1012adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            assertEquals(nodeArray.length - i - 1, str.length);
1013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1014adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.keys().length);
1015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("Key").removeNode();
1016adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.keys().length);
1017adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1019adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1020adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1021adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.removeNode();
1022adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1023adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1024adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1025adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1027adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1028adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            root.removeNode();
1029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("UnsupportedOperationException expected");
1030adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (UnsupportedOperationException e) {
1031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1032adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1034adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1037adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1038adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "name",
1039adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1040adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testName() {
1042adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences first = (AbstractPreferences) pref.node("First node");
1043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences second = (AbstractPreferences) pref.node("Second node/sub node");
1044adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(first.name().compareTo("First node") == 0);
1046adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(first.name().compareTo("Second node") == 0);
1047adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(second.name().compareTo("sub node") == 0);
1048adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1050adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1051adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1053adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "absolutePath",
1054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAbsolutePath() {
1057adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(parent.absolutePath() + "/" + nodeName, pref.absolutePath());
1058adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(parent.absolutePath() + "/" + "new node", parent.node("new node").absolutePath());
1059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1060adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1062adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1064adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "isUserNode",
1065adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1066adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsUserNode() {
1068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(parent.isUserNode());
1069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(Preferences.systemRoot().isUserNode());
1070adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1072adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
1073adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1075adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirectly checks syncSpi",
1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "sync",
1077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1080adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "Indirectly checks syncSpi",
1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "syncSpi",
1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
1085adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testSync() throws BackingStoreException {
1087adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("new node/sub node");
1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.sync();
1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1091adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.sync();
1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1095adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class MockPreferenceChangeListener implements PreferenceChangeListener {
1101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private boolean flagChange = false;
1102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void preferenceChange(PreferenceChangeEvent arg0) {
1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            flagChange = true;
1105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean isChanged () {
1108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            boolean retVal = flagChange;
1109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            flagChange = false;
1110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return retVal;
1111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "addPreferenceChangeListener",
1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.prefs.PreferenceChangeListener.class}
1119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAddPreferenceChangeListener() throws BackingStoreException {
1121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockPreferenceChangeListener mpcl = new MockPreferenceChangeListener();
1122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.addPreferenceChangeListener(mpcl);
1123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("new node");
1125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.node("new node");
1129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.putInt("IntValue", 33);
1132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mpcl.isChanged());
1135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, parent.getInt("IntValue", 22));
1136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(22, parent.getInt("Missed Value", 22));
1139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "removePreferenceChangeListener",
1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.prefs.PreferenceChangeListener.class}
1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testRemovePreferenceChangeListener() throws BackingStoreException {
1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockPreferenceChangeListener mpcl = new MockPreferenceChangeListener();
1151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.addPreferenceChangeListener(mpcl);
1152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.putInt("IntValue", 33);
1154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mpcl.isChanged());
1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.removePreferenceChangeListener(mpcl);
1157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.putInt("IntValue", 33);
1158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mpcl.isChanged());
1160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class MockNodeChangeListener implements NodeChangeListener {
1163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private boolean flagAdded = false;
1164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        private boolean flagRemoved = false;
1165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void childAdded(NodeChangeEvent arg0) {
1167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            flagAdded = true;
1168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void childRemoved(NodeChangeEvent arg0) {
1171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            flagRemoved = true;
1172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean isAdded() {
1175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return flagAdded;
1176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public boolean isRemoved() {
1179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return flagRemoved;
1180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "addNodeChangeListener",
1187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.prefs.NodeChangeListener.class}
1188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAddNodeChangeListener() throws BackingStoreException {
1190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockNodeChangeListener mncl = new MockNodeChangeListener();
1191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.addNodeChangeListener(mncl);
1192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("test");
1193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isAdded());
1196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isRemoved());
1197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isAdded());
1200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mncl.isRemoved());
1201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.node("new node");
1202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mncl.isAdded());
1204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(mncl.isRemoved());
1205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "removeNodeChangeListener",
1211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.prefs.NodeChangeListener.class}
1212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testRemoveNodeChangeListener() throws BackingStoreException {
1214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        MockNodeChangeListener mncl = new MockNodeChangeListener();
1215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.addNodeChangeListener(mncl);
1216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("test");
1217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isAdded());
1220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isRemoved());
1221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.removeNodeChangeListener(mncl);
1222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isAdded());
1225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isRemoved());
1226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.node("new node");
1227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        parent.flush();
1228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isAdded());
1229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertFalse(mncl.isRemoved());
1230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
1233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "exportNode",
1237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.io.OutputStream.class}
1238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
1239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "flush",
1243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
1245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "flushSpi",
1249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
1251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
1252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testExportNode() throws BackingStoreException, IOException, InvalidPreferencesFormatException {
1253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap = (AbstractPreferences) pref.node("New node");
1254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntValue", 33);
1255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
1256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ByteArrayOutputStream baos = new ByteArrayOutputStream();
1259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.exportNode(baos);
1261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
1262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
1264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, pref.getInt("IntValue", 22));
1265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(1, pref.childrenNames().length);
1266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String xmlData = new String(baos.toByteArray());
1268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("IntValue"));
1270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("BoolValue"));
1271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("33"));
1272adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("true"));
1273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.exportNode(new ByteArrayOutputStream());
1278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getBoolean("BoolValue", false);
1285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1289adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref = (AbstractPreferences) parent.node(nodeName);
1290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.importPreferences(bais);
1292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
1294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, pref.getInt("IntValue", 22));
1295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(0, pref.childrenNames().length);
1296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1298adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargets({
1299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1300adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "exportSubtree",
1303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {java.io.OutputStream.class}
1304adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
1305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "flush",
1309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ),
1311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @TestTargetNew(
1312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            level = TestLevel.COMPLETE,
1313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            notes = "BackingStoreException, IOException can not be checked.",
1314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            method = "flushSpi",
1315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            args = {}
1316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        )
1317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    })
1318adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testExportSubtree() throws BackingStoreException, IOException, InvalidPreferencesFormatException {
1319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap1 = (AbstractPreferences) pref.node("First node");
1320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        AbstractPreferences ap2 = (AbstractPreferences) pref.node("Second node");
1321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putInt("IntegerValue", 33);
1322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.putBoolean("BoolValue", true);
1323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.flush();
1324adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ap1.putInt("FirstIntValue", 11);
1326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ap2.putDouble("DoubleValue", new Double(6.626e-34));
1327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1328adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ByteArrayOutputStream baos = new ByteArrayOutputStream();
1329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.exportSubtree(baos);
1331adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
1332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1333adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
1334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, pref.getInt("IntegerValue", 22));
1335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, pref.childrenNames().length);
1336adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(11, ap1.getInt("FirstIntValue", 22));
1337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(6.626e-34), ap2.getDouble("DoubleValue", new Double (3.14)));
1338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1339adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        String xmlData = new String(baos.toByteArray());
1340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1341adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("IntegerValue"));
1342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("BoolValue"));
1343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("FirstIntValue"));
1344adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("DoubleValue"));
1345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("33"));
1346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("true"));
1347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("11"));
1348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(xmlData.contains("6.626E-34"));
1349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.removeNode();
1351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.exportSubtree(new ByteArrayOutputStream());
1354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            pref.getBoolean("BoolValue", false);
1361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalStateException expected");
1362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalStateException e) {
1363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref = (AbstractPreferences) parent.node(nodeName);
1366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.importPreferences(bais);
1367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1368adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ap1 = (AbstractPreferences) pref.node("First node");
1369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        ap2 = (AbstractPreferences) pref.node("Second node");
1370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue(pref.getBoolean("BoolValue", false));
1372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(33, pref.getInt("IntegerValue", 22));
1373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, pref.childrenNames().length);
1374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(11, ap1.getInt("FirstIntValue", 22));
1375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(new Double(6.626e-34), ap2.getDouble("DoubleValue", new Double (3.14)));
1376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class MockAbstractPreferences extends AbstractPreferences {
1379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected MockAbstractPreferences(AbstractPreferences parent, String name) {
1380adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            super(parent, name);
1381adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected AbstractPreferences childSpi(String name) {
1385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
1386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1388adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1389adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected String[] childrenNamesSpi() throws BackingStoreException {
1390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
1391adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1393adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected void flushSpi() throws BackingStoreException {
1395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected String getSpi(String key) {
1399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
1400adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected String[] keysSpi() throws BackingStoreException {
1404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return null;
1405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected void putSpi(String key, String value) {
1409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected void removeNodeSpi() throws BackingStoreException {
1413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected void removeSpi(String key) {
1417adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1418adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        @Override
1420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        protected void syncSpi() throws BackingStoreException {
1421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "",
1427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "AbstractPreferences",
1428adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {java.util.prefs.AbstractPreferences.class, java.lang.String.class}
1429adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testAbstractPreferences() {
1431adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertNotNull(new MockAbstractPreferences(pref, "node name"));
1432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1433adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new MockAbstractPreferences(pref, "node/name");
1434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
1435adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
1436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1437adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1439adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
1440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            new MockAbstractPreferences(null, "node");
1441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IllegalArgumentException expected");
1442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IllegalArgumentException e) {
1443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            //expected
1444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
1445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1446adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "Tested indirectly",
1450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "cachedChildren",
1451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testCachedChildren() throws BackingStoreException {
1454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("First node");
1455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        pref.node("Second node");
1456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertEquals(2, pref.childrenNames().length);
1458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
1460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    @TestTargetNew(
1461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        level = TestLevel.COMPLETE,
1462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        notes = "No reason to check dummy implementation",
1463adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        method = "isRemoved",
1464adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        args = {}
1465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    )
1466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testIsRemoved() {
1467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
1468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
1469