1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.util; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.KnownFailure; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayOutputStream; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.InputStream; 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PrintStream; 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PrintWriter; 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Enumeration; 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.InvalidPropertiesFormatException; 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Properties; 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport tests.support.resource.Support_Resources; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Properties.class) 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class PropertiesTest extends junit.framework.TestCase { 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties tProps; 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project byte[] propsFile; 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#Properties() 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Properties", 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor() { 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties p = new Properties(); 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // do something to avoid getting a variable unused warning 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project p.clear(); 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#Properties(java.util.Properties) 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Properties", 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Properties.class} 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_ConstructorLjava_util_Properties() { 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (System.getProperty("java.vendor") != null) { 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties p = new Properties(System.getProperties()); 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNotNull("failed to construct correct properties", p 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("java.vendor")); 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#getProperty(java.lang.String) 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Verifies positive case.", 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getProperty", 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getPropertyLjava_lang_String() { 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Did not retrieve property", "this is a test property", 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps.getProperty("test.prop")); 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#getProperty(java.lang.String, 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * java.lang.String) 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getProperty", 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, java.lang.String.class} 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getPropertyLjava_lang_StringLjava_lang_String() { 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Did not retrieve property", "this is a test property", 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps.getProperty("test.prop", "Blarg")); 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Did not return default value", "Gabba", tProps 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("notInThere.prop", "Gabba")); 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(tProps.getProperty("", null)); 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#getProperty(java.lang.String) 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getProperty", 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class} 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getPropertyLjava_lang_String2() { 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // regression test for HARMONY-3518 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MyProperties props = new MyProperties(); 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull(props.getProperty("key")); 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#getProperty(java.lang.String, 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * java.lang.String) 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Regression test.", 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "getProperty", 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, java.lang.String.class} 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_getPropertyLjava_lang_StringLjava_lang_String2() { 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // regression test for HARMONY-3518 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project MyProperties props = new MyProperties(); 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals(props.getProperty("key", "defaultValue"), "defaultValue"); 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // regression testing for HARMONY-3518 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class MyProperties extends Properties { 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public synchronized Object get(Object key) { 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return getProperty((String) key); // assume String 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#list(java.io.PrintStream) 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "list", 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.PrintStream.class} 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_listLjava_io_PrintStream() { 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream baos = new ByteArrayOutputStream(); 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project PrintStream ps = new PrintStream(baos); 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String propList; 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Abba", "Cadabra"); 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Open", "Sesame"); 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.list(ps); 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.flush(); 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project propList = baos.toString(); 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Property list innacurate", (propList 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .indexOf("Abba=Cadabra") >= 0) 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project && (propList.indexOf("Open=Sesame") >= 0)); 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#list(java.io.PrintWriter) 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "list", 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.PrintWriter.class} 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_listLjava_io_PrintWriter() { 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream baos = new ByteArrayOutputStream(); 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project PrintWriter pw = new PrintWriter(baos); 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String propList; 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Abba", "Cadabra"); 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Open", "Sesame"); 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.list(pw); 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project pw.flush(); 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project propList = baos.toString(); 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Property list innacurate", (propList 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .indexOf("Abba=Cadabra") >= 0) 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project && (propList.indexOf("Open=Sesame") >= 0)); 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#load(java.io.InputStream) 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "load", 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class} 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_loadLjava_io_InputStream() throws IOException { 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties prop = new Properties(); 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is = new ByteArrayInputStream(writeProperties()); 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(is); 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load correct properties", "harmony.tests", prop 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("test.pkg")); 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertNull("Load failed to parse incorrectly", prop 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("commented.entry")); 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream("=".getBytes())); 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to add empty key", prop.get("").equals("")); 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream(" = ".getBytes())); 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to add empty key2", prop.get("").equals("")); 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream(" a= b".getBytes())); 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to ignore whitespace", "b", prop.get("a")); 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream(" a b".getBytes())); 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to interpret whitespace as =", "b", prop.get("a")); 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream("#\u008d\u00d2\na=\u008d\u00d3" 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getBytes("ISO8859_1"))); 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to parse chars >= 0x80", "\u008d\u00d3", prop 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .get("a")); 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(new ByteArrayInputStream( 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "#properties file\r\nfred=1\r\n#last comment" 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getBytes("ISO8859_1"))); 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load when last line contains a comment", "1", 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.get("fred")); 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream bais = new ByteArrayInputStream(new byte[]{'\\', 'u', 'x', 'x', 'x', 'x'}); 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.load(bais); 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("IllegalArgumentException expected"); 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (IllegalArgumentException e) { 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#load(java.io.InputStream) 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.PARTIAL_COMPLETE, 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "Doesn't verify IOException, IllegalArgumentException.", 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "load", 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class} 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_loadLjava_io_InputStream_subtest0() throws IOException { 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is = Support_Resources 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getStream("hyts_PropertiesTest.properties"); 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties props = new Properties(); 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project props.load(is); 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("1", "\n \t \f", props.getProperty(" \r")); 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("2", "a", props.getProperty("a")); 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("3", "bb as,dn ", props.getProperty("b")); 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("4", ":: cu", props.getProperty("c\r \t\nu")); 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("5", "bu", props.getProperty("bu")); 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("6", "d\r\ne=e", props.getProperty("d")); 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("7", "fff", props.getProperty("f")); 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("8", "g", props.getProperty("g")); 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("9", "", props.getProperty("h h")); 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("10", "i=i", props.getProperty(" ")); 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("11", " j", props.getProperty("j")); 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("12", " c", props.getProperty("space")); 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("13", "\\", props.getProperty("dblbackslash")); 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#save(java.io.OutputStream, java.lang.String) 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "save", 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.OutputStream.class, java.lang.String.class} 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_saveLjava_io_OutputStreamLjava_lang_String() 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Property A", "aye"); 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Property B", "bee"); 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Property C", "see"); 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream out = new ByteArrayOutputStream(); 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.save(out, "A Header"); 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps2 = new Properties(); 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.load(in); 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = myProps.propertyNames(); 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String nextKey = (String) e.nextElement(); 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Stored property list not equal to original", myProps2 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty(nextKey).equals(myProps.getProperty(nextKey))); 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#setProperty(java.lang.String, 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * java.lang.String) 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setProperty", 326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.String.class, java.lang.String.class} 327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_setPropertyLjava_lang_StringLjava_lang_String() { 329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Yoink", "Yabba"); 331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to set property", "Yabba", myProps 332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("Yoink")); 333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("Yoink", "Gab"); 334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to reset property", "Gab", myProps 335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("Yoink")); 336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#store(java.io.OutputStream, java.lang.String) 341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "store", 346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.OutputStream.class, java.lang.String.class} 347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_storeLjava_io_OutputStreamLjava_lang_String() 349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property A", " aye\\\f\t\n\r\b"); 352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property B", "b ee#!=:"); 353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property C", "see"); 354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps2 = new Properties(); 356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream out = new ByteArrayOutputStream(); 357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.store(out, "A Header"); 358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.store(out, null); 359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.load(in); 363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = myProps.propertyNames(); 366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String nextKey = (String) e.nextElement(); 368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Stored property list not equal to original", myProps2 369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty(nextKey).equals(myProps.getProperty(nextKey))); 370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.store(null, "String"); 374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected"); 375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ee){ 376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#loadFromXML(java.io.InputStream) 383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "loadFromXML", 388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.InputStream.class} 389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 390a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project @KnownFailure("Expected Exception is not thrown.") 391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_loadFromXMLLjava_io_InputStream() throws IOException { 392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property A", " aye\\\f\t\n\r\b"); 394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property B", "b ee#!=:"); 395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property C", "see"); 396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps2 = new Properties(); 397a99b695964e28a5906003d40db48cbd550fbcdf4The Android Open Source Project 398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream out = new ByteArrayOutputStream(); 399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "A Header"); 400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.loadFromXML(in); 405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("InvalidPropertiesFormatException expected"); 406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (InvalidPropertiesFormatException e) { 407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties prop = new Properties(); 413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project InputStream is = new ByteArrayInputStream(writePropertiesXML("UTF-8")); 414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.loadFromXML(is); 415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load correct properties", "value3", prop 418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("key3")); 419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load correct properties", "value1", prop 420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("key1")); 421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop = new Properties(); 423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is = new ByteArrayInputStream(writePropertiesXML("ISO-8859-1")); 424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.loadFromXML(is); 425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project is.close(); 426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load correct properties", "value2", prop 428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("key2")); 429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to load correct properties", "value1", prop 430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty("key1")); 431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project prop.loadFromXML(null); 434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected"); 435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException e) { 436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @throws IOException 442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Properties#storeToXML(java.io.OutputStream, 443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * java.lang.String, java.lang.String) 444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "storeToXML", 449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.OutputStream.class, java.lang.String.class, java.lang.String.class} 450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_storeToXMLLjava_io_OutputStreamLjava_lang_StringLjava_lang_String() 452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key1", "value1"); 455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key2", "value2"); 456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key3", "value3"); 457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("<a>key4</a>", "\"value4"); 458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key5 ", "<h>value5</h>"); 459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("<a>key6</a>", " <h>value6</h> "); 460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("<comment>key7</comment>", "value7"); 461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty(" key8 ", "<comment>value8</comment>"); 462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("<key9>", "\u0027value9"); 463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key10\"", "<value10>"); 464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("&key11&", "value11"); 465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("key12", "&value12&"); 466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.setProperty("<a>&key13<</a>", 467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project "&&value13<b>&</b>"); 468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // store in UTF-8 encoding 470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream out = new ByteArrayOutputStream(); 471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "comment"); 472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps2 = new Properties(); 476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.loadFromXML(in); 477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = myProps.propertyNames(); 480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String nextKey = (String) e.nextElement(); 482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Stored property list not equal to original", myProps2 483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty(nextKey).equals(myProps.getProperty(nextKey))); 484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // store in ISO-8859-1 encoding 487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out = new ByteArrayOutputStream(); 488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "comment", "ISO-8859-1"); 489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in = new ByteArrayInputStream(out.toByteArray()); 492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2 = new Properties(); 493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.loadFromXML(in); 494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project e = myProps.propertyNames(); 497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String nextKey = (String) e.nextElement(); 499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Stored property list not equal to original", myProps2 500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty(nextKey).equals(myProps.getProperty(nextKey))); 501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out = new ByteArrayOutputStream(); 504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "comment", "ISO-8859-1"); 505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, null, "ISO-8859-1"); 506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "comment", null); 510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NulPointerException expected"); 511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ee) { 512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(null, "comment", "ISO-8859-1"); 517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NulPointerException expected"); 518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ee) { 519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "storeToXML", 527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.io.OutputStream.class, java.lang.String.class} 528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_storeToXMLLjava_io_OutputStreamLjava_lang_String() 530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project throws IOException { 531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property A", "value 1"); 533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property B", "value 2"); 534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property C", "value 3"); 535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps2 = new Properties(); 537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream out = new ByteArrayOutputStream(); 538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(out, "A Header"); 539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project out.close(); 540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray()); 542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps2.loadFromXML(in); 543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project in.close(); 544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = myProps.propertyNames(); 546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project String nextKey = (String) e.nextElement(); 548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Stored property list not equal to original", myProps2 549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .getProperty(nextKey).equals(myProps.getProperty(nextKey))); 550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.storeToXML(null, "String"); 554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("NullPointerException expected"); 555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ee){ 556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project //expected 557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "propertyNames", 564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_propertyNames() { 567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Properties myProps = new Properties(); 568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property A", "value 1"); 569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property B", "value 2"); 570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project myProps.put("Property C", "value 3"); 571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Enumeration e = myProps.propertyNames(); 573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int count = 0; 575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project while (e.hasMoreElements()) { 576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project count++; 577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(myProps.containsKey(e.nextElement())); 578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(myProps.size() == count); 581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * is called before a test is executed. 586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() throws Exception { 588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super.setUp(); 589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps = new Properties(); 590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps.put("test.prop", "this is a test property"); 591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps.put("bogus.prop", "bogus"); 592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tears down the fixture, for example, close a network connection. This 596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method is called after a test is executed. 597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() throws Exception { 599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project tProps = null; 600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project super.tearDown(); 601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected byte[] writeProperties() throws IOException { 604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream bout = new ByteArrayOutputStream(); 605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project PrintStream ps = new PrintStream(bout); 606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("#commented.entry=Bogus"); 607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("test.pkg=harmony.tests"); 608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("test.proj=Automated Tests"); 609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.close(); 610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return bout.toByteArray(); 611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected byte[] writePropertiesXML(String encoding) throws IOException { 614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ByteArrayOutputStream bout = new ByteArrayOutputStream(); 615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project PrintStream ps = new PrintStream(bout, true, encoding); 616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<?xml version=\"1.0\" encoding=\"" + encoding + "\"?>"); 617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps 618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .println("<!DOCTYPE properties SYSTEM \"http://java.sun.com/dtd/properties.dtd\">"); 619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<properties>"); 620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<comment>comment</comment>"); 621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<entry key=\"key4\">value4</entry>"); 622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<entry key=\"key3\">value3</entry>"); 623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<entry key=\"key2\">value2</entry>"); 624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("<entry key=\"key1\"><!-- xml comment -->value1</entry>"); 625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.println("</properties>"); 626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ps.close(); 627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return bout.toByteArray(); 628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 630