// Tags: JDK1.3
// Copyright (C) 2003, 2006 Free Software Foundation, Inc.
// 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. */
package gnu.testlet.wonka.lang.String;
import gnu.testlet.Testlet;
import gnu.testlet.TestHarness;
import java.io.UnsupportedEncodingException;
public class getBytes13 implements Testlet
{
protected static final byte[] ABC1 = new byte[] {97, 98, 99};
protected static final byte[] ABC2 = new byte[] {-2, -1, 0, 97, 0, 98, 0, 99};
protected static final byte[] ABC3 = new byte[] { 0, 97, 0, 98, 0, 99};
protected static final byte[] ABC4 = new byte[] {-1, -2, 97, 0, 98, 0, 99, 0};
protected static final byte[] ABC5 = new byte[] {97, 0, 98, 0, 99, 0};
public void test (TestHarness harness)
{
harness.checkPoint("getBytes13");
test1Encoding (harness, "ASCII", "abc", ABC1);
test1Encoding (harness, "Cp1252", "abc", ABC1);
test1Encoding (harness, "ISO8859_1", "abc", ABC1);
test1Encoding (harness, "UTF8", "abc", ABC1);
test1Encoding (harness, "UTF-16", "abc", ABC2);
test1Encoding (harness, "UnicodeBig", "abc", ABC2);
test1Encoding (harness, "UnicodeBigUnmarked", "abc", ABC3);
test1Encoding (harness, "UnicodeLittle", "abc", ABC4);
test1Encoding (harness, "UnicodeLittleUnmarked", "abc", ABC5);
}
protected void
test1Encoding (TestHarness h, String encoding, String s, byte[] ba)
{
String signature = "String.getBytes(\""+encoding+"\")";
try
{
byte[] theBytes = s.getBytes(encoding);
boolean result = areEqual(theBytes, ba);
h.check (result, signature);
if (! result)
{
dumpArray(h, "Got : ", theBytes);
dumpArray(h, "Expected: ", ba);
}
}
catch (UnsupportedEncodingException x)
{
h.debug (x);
h.fail (signature);
}
}
static void dumpArray(TestHarness h, String prefix, byte[] a)
{
StringBuffer result = new StringBuffer(prefix);
for (int i = 0; i < a.length; ++i)
{
if (i > 0)
result.append(' ');
result.append(a[i]);
}
h.debug(result.toString());
}
static boolean areEqual (byte[] a, byte[] b)
{
if (a == null || b == null)
return false;
if (a.length != b.length)
return false;
for (int i = 0; i < a.length; i++)
if (a[i] != b[i])
return false;
return true;
}
}