diff options
Diffstat (limited to 'harmony-tests/src/test/java/org/apache/harmony/tests/java/util/prefs/FilePreferencesImplTest.java')
-rw-r--r-- | harmony-tests/src/test/java/org/apache/harmony/tests/java/util/prefs/FilePreferencesImplTest.java | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/prefs/FilePreferencesImplTest.java b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/prefs/FilePreferencesImplTest.java new file mode 100644 index 0000000..352603c --- /dev/null +++ b/harmony-tests/src/test/java/org/apache/harmony/tests/java/util/prefs/FilePreferencesImplTest.java @@ -0,0 +1,120 @@ +/* Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.apache.harmony.tests.java.util.prefs; + +import java.io.File; +import java.io.IOException; +import java.util.prefs.BackingStoreException; +import java.util.prefs.Preferences; +import java.util.prefs.PreferencesFactory; +import junit.framework.TestCase; +import libcore.io.IoUtils; + +public class FilePreferencesImplTest extends TestCase { + + private Preferences uroot; + private Preferences sroot; + + @Override + protected void setUp() throws Exception { + File tmpDir = IoUtils.createTemporaryDirectory("FilePreferencesImplTest"); + AbstractPreferencesTest.TestPreferencesFactory factory + = new AbstractPreferencesTest.TestPreferencesFactory(tmpDir.getAbsolutePath()); + + uroot = factory.userRoot().node("harmony_test"); + sroot = factory.systemRoot().node("harmony_test"); + } + + @Override + protected void tearDown() throws Exception { + uroot.removeNode(); + sroot.removeNode(); + uroot = null; + sroot = null; + } + + public void testPutGet() throws IOException, BackingStoreException { + uroot.put("ukey1", "value1"); + assertEquals("value1", uroot.get("ukey1", null)); + String[] names = uroot.keys(); + assertEquals(1, names.length); + + uroot.put("ukey2", "value3"); + assertEquals("value3", uroot.get("ukey2", null)); + uroot.put("\u4e2d key1", "\u4e2d value1"); + assertEquals("\u4e2d value1", uroot.get("\u4e2d key1", null)); + names = uroot.keys(); + assertEquals(3, names.length); + + uroot.flush(); + uroot.clear(); + names = uroot.keys(); + assertEquals(0, names.length); + + sroot.put("skey1", "value1"); + assertEquals("value1", sroot.get("skey1", null)); + sroot.put("\u4e2d key1", "\u4e2d value1"); + assertEquals("\u4e2d value1", sroot.get("\u4e2d key1", null)); + } + + public void testChildNodes() throws Exception { + Preferences child1 = uroot.node("child1"); + Preferences child2 = uroot.node("\u4e2d child2"); + Preferences grandchild = child1.node("grand"); + assertNotNull(grandchild); + + String[] childNames = uroot.childrenNames(); + assertEquals(2, childNames.length); + + childNames = child1.childrenNames(); + assertEquals(1, childNames.length); + + childNames = child2.childrenNames(); + assertEquals(0, childNames.length); + + child1.removeNode(); + childNames = uroot.childrenNames(); + assertEquals(1, childNames.length); + + child2.removeNode(); + childNames = uroot.childrenNames(); + assertEquals(0, childNames.length); + + child1 = sroot.node("child1"); + child2 = sroot.node("child2"); + childNames = sroot.childrenNames(); + + Preferences grandchild2 = child1.node("grand"); + assertEquals(2, childNames.length); + + childNames = child1.childrenNames(); + assertEquals(1, childNames.length); + + childNames = child2.childrenNames(); + assertEquals(0, childNames.length); + + child1.removeNode(); + assertNotSame(child1, sroot.node("child1")); + assertSame(sroot.node("child1"), sroot.node("child1")); + sroot.node("child1").removeNode(); + childNames = sroot.childrenNames(); + assertEquals(1, childNames.length); + child2.removeNode(); + childNames = sroot.childrenNames(); + assertEquals(0, childNames.length); + } +} |