// Copyright (c) 2005 Red Hat, Inc.
// Written by Ito Kazumitsu <kaz@maczuka.gcd.org>
// This file is part of Mauve.
// Mauve is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2, or (at your option)
// any later version.
// Mauve is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with Mauve; see the file COPYING. If not, write to
// the Free Software Foundation, 59 Temple Place - Suite 330,
// Boston, MA 02111-1307, USA.
// Tags: JDK1.1
package gnu.testlet.wonka.io.PrintStream;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
import java.io.*;
public class encodings implements Testlet {
private void test1(TestHarness harness, String encoding, String input,
byte[] expected) {
byte[] output = null;
try {
ByteArrayOutputStream b = new ByteArrayOutputStream();
PrintStream ps = null;
if (encoding == null) {
ps = new PrintStream(b, false);
} else {
ps = new PrintStream(b, false, encoding);
}
ps.print(input);
ps.flush();
output = b.toByteArray();
} catch (UnsupportedEncodingException e) {
//e.printStackTrace();
}
if (output == null && expected == null) {
harness.check(true);
return;
}
if(expected == null) {
harness.fail("encoding '"+encoding+"' is unsupported");
return;
}
boolean result = (output != null && output.length == expected.length);
if (result) {
for (int i = 0; i < output.length; i++) {
if (output[i] != expected[i]) {
result = false;
break;
}
}
}
harness.check(result);
}
public void test(TestHarness harness) {
String input = "abc";
byte[] expected = new byte[] { (byte) 'a', (byte) 'b', (byte) 'c' };
test1(harness, "ISO-8859-1", input, expected);
test1(harness, "??UNSUPPORTED??", input, null);
/*
* The result of setting the system property "file.encoding" is uncertain.
* String saved_encoding = System.getProperty("file.encoding");
* System.setProperty ("file.encoding", "ISO-8859-1"); test1 (harness, null,
* input, expected); System.setProperty ("file.encoding",
* "??UNSUPPORTED??"); test1 (harness, null, input, expected);
* System.setProperty("file.encoding", saved_encoding);
*/
}
}