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.io;
19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayInputStream;
21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.ByteArrayOutputStream;
22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.DataInputStream;
23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.File;
24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.FileNotFoundException;
25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.IOException;
26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.OutputStream;
27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.PrintStream;
28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.io.UnsupportedEncodingException;
29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.IllegalFormatException;
30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Locale;
31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel;
33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass;
34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew;
35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
368ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabotimport tests.support.Support_Locale;
378ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot
38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(PrintStream.class)
39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class PrintStreamTest extends junit.framework.TestCase {
40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    ByteArrayOutputStream baos = new ByteArrayOutputStream();
42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    byte[] ibuf = new byte[4096];
44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private File testFile = null;
46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private String testFilePath = null;
47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_java_io_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_ClassNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_SocketException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n";
49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    private static class MockPrintStream extends PrintStream {
51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public MockPrintStream(String fileName) throws FileNotFoundException {
53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(fileName);
54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public MockPrintStream(String fileName, String csn) throws FileNotFoundException, UnsupportedEncodingException {
57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(fileName, csn);
58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public MockPrintStream(OutputStream os) {
61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super(os);
62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        @Override
65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        public void setError() {
66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            super.setError();
67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.File.class}
75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor_Ljava_io_File() throws IOException {
77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFile);
80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.write(1);
82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file has wrong length", 1, testFile.length());
84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFile);
85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file should be empty", 0, testFile.length());
88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File file = new File("/invalidDirectory/Dummy");
90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream(file);
92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("FileNotFoundException not thrown.");
93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (FileNotFoundException e) {
94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.File.class, java.lang.String.class}
103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor_Ljava_io_File_Ljava_lang_String() throws Exception {
105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFile, "utf-8");
108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.write(1);
110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file has wrong length", 1, testFile.length());
112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFile, "utf-8");
113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file should be empty", 0, testFile.length());
116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        File file = new File("/invalidDirectory/Dummy");
118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream(file, "utf-8");
120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("FileNotFoundException not thrown.");
121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (FileNotFoundException e) {
122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream(testFile, "invalidEncoding");
127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("UnsupportedEncodingException not thrown.");
128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnsupportedEncodingException e) {
129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests {@link java.io.PrintStream#PrintStream(String)}
135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor_Ljava_lang_String() throws IOException {
143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFilePath);
146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.write(1);
148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file has wrong length", 1, testFile.length());
150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFilePath);
151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file should be empty", 0, testFile.length());
154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream("/invalidDirectory/Dummy");
157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("FileNotFoundException not thrown.");
158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (FileNotFoundException e) {
159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests {@link java.io.PrintStream#PrintStream(String, String)}
165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.String.class}
171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_Constructor_Ljava_lang_String_Ljava_lang_String() throws Exception {
173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFilePath, "utf-8");
176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.write(1);
178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file has wrong length", 1, testFile.length());
180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(testFilePath, "utf-8");
181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertNotNull(tobj);
182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("output file should be empty", 0, testFile.length());
184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream("/invalidDirectory/", "utf-8");
187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("FileNotFoundException not thrown.");
188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (FileNotFoundException e) {
189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream(testFilePath, "invalidEncoding");
194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("UnsupportedEncodingException not thrown.");
195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnsupportedEncodingException e) {
196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#PrintStream(java.io.OutputStream)
202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.OutputStream.class}
208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_OutputStream() throws Exception {
210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method java.io.PrintStream(java.io.OutputStream)
211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos);
212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(2345.76834720202);
213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // regression for HARMONY-1195
216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os = new PrintStream(baos, true, null);
218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("Should throw NPE");
219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException e) {}
220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @throws FileNotFoundException
224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#PrintStream(java.io.OutputStream, boolean)
225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.SUFFICIENT,
228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "Passing FALSE for autoFlush not tested.",
229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.OutputStream.class, boolean.class}
231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_OutputStreamZ() throws FileNotFoundException {
233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, true);
236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.println(2345.76834720202);
237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Bytes not written", baos.size() > 0);
238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj = new PrintStream(bos, false);
241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.println(2345.76834720202);
242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertEquals("Bytes should not be written, yet", 0, bos.size());
243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.flush();
244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertTrue("Bytes not written", bos.size() > 0);
245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.close();
246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        FileOutputStream fos = new FileOutputStream(testFile);
248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj = new PrintStream(fos, true);
250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.println(2345.76834720202);
251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertTrue("Bytes not written", testFile.length() > 0);
252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.close();
253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj = new PrintStream(fos, false);
255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.println(2345.76834720202);
256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        assertTrue("Bytes not written", testFile.length() > 0);
257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//        tobj.close();
258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project//
259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "PrintStream",
265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.io.OutputStream.class, boolean.class, java.lang.String.class}
266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_ConstructorLjava_io_OutputStream_Z_Ljava_lang_String() {
268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, true);
271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.println(2345.76834720202);
272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Bytes not written", baos.size() > 0);
273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj = new PrintStream(baos, true, "invalidEncoding");
277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("UnsupportedEncodingException not thrown.");
278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (UnsupportedEncodingException e) {
279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#checkError()
285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "checkError",
290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_checkError() throws Exception {
293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method boolean java.io.PrintStream.checkError()
294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(new OutputStream() {
295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            public void write(int b) throws IOException {
297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                throw new IOException();
298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            public void write(byte[] b, int o, int l) throws IOException {
301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                throw new IOException();
302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            }
303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        });
304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(fileString.substring(0, 501));
305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Checkerror should return true", os.checkError());
307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#setError()
311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "setError",
315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_setError() throws Exception {
318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        MockPrintStream os = new MockPrintStream(new ByteArrayOutputStream());
319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertFalse("Test 1: Error flag should not be set.", os.checkError());
320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.setError();
321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Test 2: Error flag should be set.", os.checkError());
322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
323f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
324f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
325f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#close()
326f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
327f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
328f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
329f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
330f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "close",
331f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
332f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
333f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_close() throws Exception {
334f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.close()
335f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos);
336f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
337f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.close();
338f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
339f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
340f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
341f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#flush()
342f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
343f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
344f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
345f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
346f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "flush",
347f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
348f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
349f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_flush() throws Exception {
350f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.flush()
351f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos);
352f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(fileString.substring(0, 501));
353f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.flush();
354f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Bytes not written after flush", 501, baos.size());
355f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.close();
356f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
357f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
358f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
359f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
360f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(char[])
361f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
362f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
363f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
364f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
365f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
366f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class}
367f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
368f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_print$C() {
369f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(char [])
370f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
371f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
372f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.print((char[]) null);
373f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("NPE expected");
374f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (NullPointerException ok) {}
375f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
376f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os = new PrintStream(baos, true);
377f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] sc = new char[4000];
378f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fileString.getChars(0, fileString.length(), sc, 0);
379f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(sc);
380f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
381f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
382f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
383f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[4000];
384f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, fileString.length());
385f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect char[] written", fileString, new String(rbytes,
386f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                0, fileString.length()));
387f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
388f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
389f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
390f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(char)
391f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
392f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
393f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
394f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
395f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
396f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char.class}
397f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
398f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printC() {
399f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(char)
400f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
401f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print('t');
402f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
403f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect char written", 't', bis.read());
404f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
405f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
406f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
407f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(double)
408f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
409f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
410f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
411f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
412f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
413f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {double.class}
414f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
415f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printD() {
416f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(double)
417f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
418f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
419f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(2345.76834720202);
420f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
421f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 16);
422f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect double written", "2345.76834720202",
423f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbuf, 0, 16));
424f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
425f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
426f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
427f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(float)
428f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
429f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
430f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
431f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
432f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
433f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {float.class}
434f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
435f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printF() {
436f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(float)
437f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
438f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbuf[] = new byte[10];
439f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(29.08764f);
440f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.flush();
441f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
442f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 8);
443f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect float written", "29.08764", new String(rbuf, 0,
444f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                8));
445f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
446f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
447f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
448f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
449f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(int)
450f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
451f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
452f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
453f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
454f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
455f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
456f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
457f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printI() {
458f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(int)
459f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
460f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(768347202);
461f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[18];
462f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
463f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 9);
464f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect int written", "768347202", new String(rbuf, 0,
465f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                9));
466f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
467f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
468f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
469f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(long)
470f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
471f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
472f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
473f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
474f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
475f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {long.class}
476f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
477f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printJ() {
478f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(long)
479f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
480f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
481f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(9875645283333L);
482f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
483f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
484f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 13);
485f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect long written", "9875645283333", new String(
486f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                rbuf, 0, 13));
487f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
488f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
489f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
490f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(java.lang.Object)
491f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
492f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
493f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
494f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
495f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
496f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.Object.class}
497f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
498f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printLjava_lang_Object() throws Exception {
499f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(java.lang.Object)
500f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
501f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print((Object) null);
502f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.flush();
503f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
504f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] nullbytes = new byte[4];
505f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(nullbytes, 0, 4);
506f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("null should be written", "null", new String(nullbytes, 0,
507f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                4));
508f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
509f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.close();
510f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.close();
511f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
512f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
513f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
514f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os = new PrintStream(bos1, true);
515f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(new java.util.Vector());
516f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis = new ByteArrayInputStream(bos1.toByteArray());
517f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[2];
518f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, 2);
519f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect Object written", "[]", new String(rbytes, 0, 2));
520f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
521f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
522f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
523f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(java.lang.String)
524f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
525f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
526f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
527f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
528f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
529f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
530f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
531f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printLjava_lang_String() throws Exception {
532f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(java.lang.String)
533f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
534f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print((String) null);
535f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
536f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] nullbytes = new byte[4];
537f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(nullbytes, 0, 4);
538f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("null should be written", "null", new String(nullbytes, 0,
539f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                4));
540f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
541f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.close();
542f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.close();
543f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.close();
544f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
545f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayOutputStream bos1 = new ByteArrayOutputStream();
546f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os = new PrintStream(bos1, true);
547f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print("Hello World");
548f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis = new ByteArrayInputStream(bos1.toByteArray());
549f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[100];
550f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, 11);
551f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect string written", "Hello World", new String(
552f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                rbytes, 0, 11));
553f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
554f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
555f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
556f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#print(boolean)
557f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
558f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
559f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
560f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
561f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "print",
562f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
563f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
564f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printZ() throws Exception {
565f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.print(boolean)
566f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
567f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.print(true);
568f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        DataInputStream dis = new DataInputStream(new ByteArrayInputStream(baos
569f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .toByteArray()));
570f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
571f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect boolean written", dis.readBoolean());
572f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
573f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
574f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
575f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println()
576f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
577f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
578f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
579f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
580f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
581f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {}
582f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
583f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_println() {
584f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println()
585f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char c;
586f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
587f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println("");
588f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
589f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = (char) bis.read()) == '\r'
590f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                || c == '\n');
591f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
592f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
593f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
594f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(char[])
595f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
596f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
597f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
598f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
599f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
600f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char[].class}
601f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
602f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_println$C() {
603f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(char [])
604f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
605f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char[] sc = new char[4000];
606f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        fileString.getChars(0, fileString.length(), sc, 0);
607f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(sc);
608f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
609f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[4000];
610f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, fileString.length());
611f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect char[] written", fileString, new String(rbytes,
612f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                0, fileString.length()));
613f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
614f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // In this particular test method, the end of data is not immediately
615f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // followed by newLine separator in the reading buffer, instead its
616f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // followed by zeros. The newline is written as the last entry
617f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // in the inputStream buffer. Therefore, we must keep reading until we
618f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // hit a new line.
619f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int r;
620f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        boolean newline = false;
621f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        while ((r = bis.read()) != -1) {
622f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            if (r == '\r' || r == '\n')
623f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                newline = true;
624f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
625f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", newline);
626f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
627f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
628f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
629f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(char)
630f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
631f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
632f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
633f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
634f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
635f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char.class}
636f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
637f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnC() {
638f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(char)
639f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
640f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
641f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println('t');
642f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
643f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect char written", 't', bis.read());
644f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
645f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
646f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
647f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
648f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(double)
649f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
650f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
651f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
652f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
653f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
654f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {double.class}
655f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
656f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnD() {
657f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(double)
658f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
659f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
660f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(2345.76834720202);
661f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
662f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
663f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 16);
664f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect double written", "2345.76834720202",
665f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbuf, 0, 16));
666f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
667f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
668f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
669f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
670f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(float)
671f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
672f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
673f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
674f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
675f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
676f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {float.class}
677f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
678f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnF() {
679f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(float)
680f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
681f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
682f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
683f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(29.08764f);
684f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
685f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 8);
686f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect float written", "29.08764", new String(rbuf, 0,
687f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                8));
688f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
689f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
690f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
691f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
692f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(int)
693f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
694f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
695f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
696f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
697f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
698f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
699f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
700f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnI() {
701f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(int)
702f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
703f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
704f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(768347202);
705f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
706f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
707f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 9);
708f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect int written", "768347202", new String(rbuf, 0,
709f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                9));
710f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
711f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
712f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
713f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
714f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(long)
715f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
716f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
717f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
718f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
719f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
720f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {long.class}
721f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
722f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnJ() {
723f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(long)
724f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
725f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
726f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(9875645283333L);
727f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
728f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
729f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 13);
730f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect long written", "9875645283333", new String(
731f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                rbuf, 0, 13));
732f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
733f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
734f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
735f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
736f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(java.lang.Object)
737f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
738f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
739f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
740f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
741f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
742f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.Object.class}
743f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
744f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnLjava_lang_Object() {
745f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(java.lang.Object)
746f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char c;
747f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
748f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(new java.util.Vector());
749f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
750f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[2];
751f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, 2);
752f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect Vector written", "[]", new String(rbytes, 0, 2));
753f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = (char) bis.read()) == '\r'
754f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                || c == '\n');
755f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
756f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
757f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
758f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(java.lang.String)
759f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
760f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
761f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
762f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
763f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
764f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class}
765f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
766f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnLjava_lang_String() {
767f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(java.lang.String)
768f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char c;
769f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
770f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println("Hello World");
771f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
772f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[100];
773f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, 11);
774f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect string written", "Hello World", new String(
775f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                rbytes, 0, 11));
776f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = (char) bis.read()) == '\r'
777f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                || c == '\n');
778f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
779f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
780f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
781f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#println(boolean)
782f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
783f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
784f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
785f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
786f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "println",
787f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {boolean.class}
788f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
789f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printlnZ() {
790f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.println(boolean)
791f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        int c;
792f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
793f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.println(true);
794f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
795f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbuf = new byte[100];
796f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbuf, 0, 4);
797f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect boolean written", "true",
798f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbuf, 0, 4));
799f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Newline not written", (c = bis.read()) == '\r' || c == '\n');
800f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
801f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
802f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
803f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#write(byte[], int, int)
804f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
805f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
806f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
807f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
808f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "write",
809f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {byte[].class, int.class, int.class}
810f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
811f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_write$BII() {
812f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.write(byte [], int, int)
813f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
814f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write(fileString.getBytes(), 0, fileString.length());
815f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
816f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte rbytes[] = new byte[4000];
817f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, fileString.length());
818f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertTrue("Incorrect bytes written", new String(rbytes, 0, fileString
819f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                .length()).equals(fileString));
820f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
821f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
822f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write(rbytes, -1, 1);
823f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException should have been thrown.");
824f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
825f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
826f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
827f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
828f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
829f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write(rbytes, 0, -1);
830f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException should have been thrown.");
831f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
832f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
833f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
834f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
835f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
836f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            os.write(rbytes, 1, rbytes.length);
837f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException should have been thrown.");
838f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
839f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
840f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
841f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
842f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
843f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
844f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#write(int)
845f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
846f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
847f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
848f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
849f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "write",
850f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {int.class}
851f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
852f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_writeI() {
853f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        // Test for method void java.io.PrintStream.write(int)
854f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream os = new PrintStream(baos, true);
855f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        os.write('t');
856f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
857f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Incorrect char written", 't', bis.read());
858f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
859f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
860f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
861f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#append(char)
862f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
863f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
864f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
865f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
866f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "append",
867f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {char.class}
868f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
869f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_appendChar() throws IOException {
870f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        char testChar = ' ';
871f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayOutputStream out = new ByteArrayOutputStream();
872f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream printStream = new PrintStream(out);
873f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.append(testChar);
874f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.flush();
875f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(String.valueOf(testChar), out.toString());
876f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.close();
877f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
878f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
879f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
880f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#append(CharSequence)
881f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
882f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
883f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
884f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
885f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "append",
886f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.CharSequence.class}
887f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
888f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_appendCharSequence() {
889f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String testString = "My Test String";
890f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayOutputStream out = new ByteArrayOutputStream();
891f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream printStream = new PrintStream(out);
892f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.append(testString);
893f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.flush();
894f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(testString, out.toString());
895f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.close();
896f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
897f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
898f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
899f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#append(CharSequence, int, int)
900f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
901f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
902f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
903f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
904f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "append",
905f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.CharSequence.class, int.class, int.class}
906f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
907f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_appendCharSequenceIntInt() {
908f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        String testString = "My Test String";
909f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayOutputStream out = new ByteArrayOutputStream();
910f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream printStream = new PrintStream(out);
911f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.append(testString, 1, 3);
912f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.flush();
913f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals(testString.substring(1, 3), out.toString());
914f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
915f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            printStream.append(testString, 4, 100);
916f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException not thrown");
917f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
918f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
919f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
920f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
921f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            printStream.append(testString, 100, 1);
922f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IndexOutOfBoundsException not thrown");
923f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IndexOutOfBoundsException e) {
924f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
925f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
926f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        printStream.close();
927f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
928f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
929f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
930f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#format(java.lang.String, java.lang.Object...)
931f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
932f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
933f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
934f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
935f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "format",
936f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.Object[].class}
937f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
938f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_formatLjava_lang_String$Ljava_lang_Object() {
939f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
940f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
941f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, false);
942f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.format("%s %s", "Hello", "World");
943f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
944f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
945f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[11];
946f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, rbytes.length);
947f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrote incorrect string", "Hello World",
948f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes));
949f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
950f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
951f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
952f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.format("%1$.3G, %1$.5f, 0%2$xx", 12345.678, 123456);
953f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
954f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1.23E+04, 12345.67800, 01e240x", new String(baos.toByteArray()));
955f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
956f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
957f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
958f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
959f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
960f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format("%1$.3G, %1$x", 12345.678);
961f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
962f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
963f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
964f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
965f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
966f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
967f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format("%s %q", "Hello", "World");
968f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
969f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
970f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
971f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
972f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
973f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
974f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format("%s %s", "Hello");
975f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
976f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
977f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
978f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
979f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
980f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
981f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
982f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#format(java.util.Locale, java.lang.String,
983f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        java.lang.Object...)
984f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
985f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
986f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
987f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
988f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "format",
989f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.util.Locale.class, java.lang.String.class, java.lang.Object[].class}
990f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
991f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_formatLjava_util_Locale_Ljava_lang_String_$Ljava_lang_Object() {
9928ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        Locale[] requiredLocales = {Locale.US, Locale.GERMANY};
9938ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
9948ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot            // locale dependent test, bug 1943269
9958ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot            return;
9968ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        }
997f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
998f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
999f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, false);
1000f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.format(Locale.US, "%s %s", "Hello", "World");
1001f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1002f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
1003f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[11];
1004f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, rbytes.length);
1005f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrote incorrect string", "Hello World",
1006f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes));
1007f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1008f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1009f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1010f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.format(Locale.GERMANY, "%1$.3G; %1$.5f; 0%2$xx", 12345.678, 123456);
1011f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1012f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1,23E+04; 12345,67800; 01e240x", new String(baos.toByteArray()));
1013f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
1014f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1015f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1016f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1017f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.format(Locale.US, "%1$.3G, %1$.5f, 0%2$xx", 12345.678, 123456);
1018f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1019f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1.23E+04, 12345.67800, 01e240x", new String(baos.toByteArray()));
1020f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
1021f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1022f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1023f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1024f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1025f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format(Locale.US, "%1$.3G, %1$x", 12345.678);
1026f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1027f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1028f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1029f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1030f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1031f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1032f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format(Locale.US, "%s %q", "Hello", "World");
1033f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1034f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1035f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1036f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1037f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1038f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1039f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.format(Locale.US, "%s %s", "Hello");
1040f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1041f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1042f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1043f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1044f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1045f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1046f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1047f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#printf(java.lang.String, java.lang.Object...)
1048f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1049f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1050f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1051f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1052f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "printf",
1053f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.lang.String.class, java.lang.Object[].class}
1054f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1055f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printfLjava_lang_String$Ljava_lang_Object() {
1056f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
1057f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1058f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, false);
1059f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.printf("%s %s", "Hello", "World");
1060f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1061f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
1062f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[11];
1063f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, rbytes.length);
1064f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrote incorrect string", "Hello World",
1065f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes));
1066f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1067f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1068f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1069f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.printf("%1$.3G, %1$.5f, 0%2$xx", 12345.678, 123456);
1070f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1071f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1.23E+04, 12345.67800, 01e240x", new String(baos.toByteArray()));
1072f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
1073f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1074f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1075f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1076f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1077f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf("%1$.3G, %1$x", 12345.678);
1078f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1079f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1080f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1081f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1082f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1083f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1084f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf("%s %q", "Hello", "World");
1085f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1086f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1087f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1088f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1089f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1090f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1091f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf("%s %s", "Hello");
1092f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1093f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1094f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1095f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1096f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1097f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1098f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    /**
1099f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     * @tests java.io.PrintStream#printf(java.util.Locale, java.lang.String,
1100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     *        java.lang.Object...)
1101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project     */
1102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @TestTargetNew(
1103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        level = TestLevel.COMPLETE,
1104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        notes = "",
1105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        method = "printf",
1106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        args = {java.util.Locale.class, java.lang.String.class, java.lang.Object[].class}
1107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    )
1108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    public void test_printfLjava_util_Locale_Ljava_lang_String_$Ljava_lang_Object() {
11098ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        Locale[] requiredLocales = {Locale.US, Locale.GERMANY};
11108ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        if (!Support_Locale.areLocalesAvailable(requiredLocales)) {
11118ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot            // locale dependent test, bug 1943269
11128ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot            return;
11138ba0b9bad4ee13bb30fa75c531921802c05611acBrett Chabot        }
1114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        PrintStream tobj;
1115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos, false);
1117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.printf(Locale.US, "%s %s", "Hello", "World");
1118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        ByteArrayInputStream bis = new ByteArrayInputStream(baos.toByteArray());
1120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        byte[] rbytes = new byte[11];
1121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        bis.read(rbytes, 0, rbytes.length);
1122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrote incorrect string", "Hello World",
1123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project                new String(rbytes));
1124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.printf(Locale.GERMANY, "%1$.3G; %1$.5f; 0%2$xx", 12345.678, 123456);
1128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1,23E+04; 12345,67800; 01e240x", new String(baos.toByteArray()));
1130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
1131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.printf(Locale.US, "%1$.3G, %1$.5f, 0%2$xx", 12345.678, 123456);
1135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.flush();
1136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        assertEquals("Wrong output!", "1.23E+04, 12345.67800, 01e240x", new String(baos.toByteArray()));
1137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj.close();
1138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        baos.reset();
1140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        tobj = new PrintStream(baos);
1141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf(Locale.US, "%1$.3G, %1$x", 12345.678);
1143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf(Locale.US, "%s %q", "Hello", "World");
1150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        try {
1156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            tobj.printf(Locale.US, "%s %s", "Hello");
1157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            fail("IllegalFormatException not thrown");
1158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        } catch (IllegalFormatException e) {
1159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project            // expected
1160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        }
1161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
1164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void setUp() throws Exception {
1165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.setUp();
1166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testFile = File.createTempFile("test", null);
1167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testFilePath = testFile.getAbsolutePath();
1168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    @Override
1171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    protected void tearDown() throws Exception {
1172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testFile.delete();
1173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testFile = null;
1174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        testFilePath = null;
1175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project        super.tearDown();
1176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project    }
1177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project
1179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project}
1180