/* 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); } }