1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Licensed to the Apache Software Foundation (ASF) under one or more
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  contributor license agreements.  See the NOTICE file distributed with
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  this work for additional information regarding copyright ownership.
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  The ASF licenses this file to You under the Apache License, Version 2.0
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  (the "License"); you may not use this file except in compliance with
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  the License.  You may obtain a copy of the License at
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *     http://www.apache.org/licenses/LICENSE-2.0
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  Unless required by applicable law or agreed to in writing, software
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  distributed under the License is distributed on an "AS IS" BASIS,
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  See the License for the specific language governing permissions and
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *  limitations under the License.
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io;
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayInputStream;
21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.ByteArrayOutputStream;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FilterOutputStream;
23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException;
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport tests.support.Support_OutputStream;
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldFilterOutputStreamTest extends junit.framework.TestCase {
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private java.io.FilterOutputStream os;
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    java.io.ByteArrayOutputStream bos;
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    java.io.ByteArrayInputStream bis;
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    byte[] ibuf = new byte[4096];
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final 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_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_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";
37f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    private final int testLength = fileString.length();
39f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_ConstructorLjava_io_OutputStream() {
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        // Test for method java.io.FilterOutputStream(java.io.OutputStream)
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            bos = new ByteArrayOutputStream();
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os = new FilterOutputStream(bos);
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write('t');
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (java.io.IOException e) {
48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Constructor test failed : " + e.getMessage());
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_close() throws IOException {
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream();
54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.close();
56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(42);
59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (java.io.IOException e) {
60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 1: Unexpected IOException.");
61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        sos.setThrowsException(true);
64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(42);
66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 2: IOException expected.");
67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (java.io.IOException e) {
68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.close();
74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 3: IOException expected.");
75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_flush() throws IOException {
81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream(550);
82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.write(fileString.getBytes(), 0, 500);
84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.flush();
85f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Test 1: Bytes not written after flush;",
86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                500, sos.size());
87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        sos.setThrowsException(true);
89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.flush();
91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 2: IOException expected.");
92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        sos.setThrowsException(false);
96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_write$B() throws IOException {
99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream(testLength);
100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.write(fileString.getBytes());
102f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bis = new ByteArrayInputStream(sos.toByteArray());
104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Test 1: Bytes have not been written.",
105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                bis.available() == testLength);
106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] wbytes = new byte[testLength];
107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bis.read(wbytes, 0, testLength);
108f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Test 2: Incorrect bytes written or read.",
109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fileString.equals(new String(wbytes)));
110f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Support_OutputStream throws an IOException if the internal
113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // buffer is full, which it should be now.
114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(42);
115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 2: IOException expected.");
116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_write$BII() throws IOException {
122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream(testLength);
123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.write(fileString.getBytes(), 10, testLength - 10);
125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bis = new ByteArrayInputStream(sos.toByteArray());
127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Test 1: Bytes have not been written.",
128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                bis.available() == testLength - 10);
129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] wbytes = new byte[testLength - 10];
130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bis.read(wbytes);
131f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertTrue("Test 2: Incorrect bytes written or read.",
132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                fileString.substring(10).equals(new String(wbytes)));
133f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Support_OutputStream throws an IOException if the internal
136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // buffer is full, which it should be eventually.
137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(fileString.getBytes());
138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 2: IOException expected.");
139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_write$BII_Exception() throws IOException {
145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream(testLength);
146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        byte[] buf = new byte[10];
148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(buf, -1, 1);
151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IndexOutOfBoundsException expected.");
152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IndexOutOfBoundsException e) {
153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
154f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        }
155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(buf, 0, -1);
158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IndexOutOfBoundsException expected.");
159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IndexOutOfBoundsException e) {
160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
161f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        }
162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(buf, 10, 1);
165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("IndexOutOfBoundsException expected.");
166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IndexOutOfBoundsException e) {
167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
168f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        }
169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void test_writeI() throws IOException {
172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Support_OutputStream sos = new Support_OutputStream(1);
173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os = new FilterOutputStream(sos);
174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        os.write(42);
175f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        bis = new ByteArrayInputStream(sos.toByteArray());
177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        assertTrue("Test 1: Byte has not been written.",
178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                bis.available() == 1);
179f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes        assertEquals("Test 2: Incorrect byte written or read;",
180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                42, bis.read());
181f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes
182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Support_OutputStream throws an IOException if the internal
184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // buffer is full, which it should be now.
185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            os.write(42);
186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            fail("Test 2: IOException expected.");
187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (IOException e) {
188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            // Expected.
189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    protected void tearDown() {
193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        try {
194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (bos != null)
195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                bos.close();
196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (bis != null)
197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                bis.close();
198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            if (os != null)
199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project                os.close();
200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        } catch (Exception e) {
201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
204