blob: 1df64c414a8efd1d8259629e89f954e24137494b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2004 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.wst.xml.tests.encoding.write;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import junit.framework.TestCase;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.sse.core.internal.encoding.CodedStreamCreator;
import org.eclipse.wst.sse.core.internal.encoding.EncodingRule;
public class TestCodedWrite extends TestCase {
/** A table of hex digits */
private static final char[] hexDigit = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
private static StringBuffer sBuff = new StringBuffer(2);
private static String byteToHex(byte bytechar) {
sBuff.setLength(0);
int low = bytechar & 0xF;
int hi = (bytechar >> 4) & 0xF;
sBuff.append(toHex(hi));
sBuff.append(toHex(low));
return sBuff.toString();
}
/**
* Convert a nibble to a hex character
*
* @param nibble
* the nibble to convert.
*/
private static char toHex(int nibble) {
return hexDigit[(nibble & 0xF)];
}
private boolean DEBUG = false;
/**
*
*/
public TestCodedWrite() {
super();
}
/**
* @param name
*/
public TestCodedWrite(String name) {
super(name);
}
public void testSimple() throws UnsupportedEncodingException, CoreException, IOException {
String jsp = "<%@ page contentType=\"text/html; charset=ISO-8859-3\"%>";
CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
codedStreamCreator.set("dummy.jsp", jsp);
ByteArrayOutputStream outputStream = codedStreamCreator.getCodedByteArrayOutputStream(EncodingRule.CONTENT_BASED);
if (DEBUG) {
debugPrint("testSimple", jsp, "ISO-8859-3", outputStream);
}
assertNotNull(outputStream);
}
private void debugPrint(String testname, String originalString, String encoding, ByteArrayOutputStream outputStream) throws UnsupportedEncodingException {
System.out.println();
System.out.println(testname);
byte[] bytes = outputStream.toByteArray();
for (int i = 0; i < bytes.length; i++) {
System.out.print(byteToHex(bytes[i]));
}
System.out.println();
if (encoding == null) {
System.out.println(new String(bytes));
}
else {
System.out.println(new String(bytes, encoding));
}
}
public void testSimpleUTF16BE() throws UnsupportedEncodingException, CoreException, IOException {
String jsp = "<%@ page contentType=\"text/html; charset=UTF-16BE\"%>";
CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
codedStreamCreator.set("dummy.jsp", jsp);
ByteArrayOutputStream outputStream = codedStreamCreator.getCodedByteArrayOutputStream(EncodingRule.CONTENT_BASED);
if (DEBUG) {
debugPrint("testSimpleUTF16BE", jsp, "UTF-16BE", outputStream);
}
assertNotNull(outputStream);
}
public void testSimpler() throws UnsupportedEncodingException, CoreException, IOException {
CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
String xmlString = "<?xml version=\"1.0\" encoding=\"UTF-16\"?><tag>test text</tag>";
codedStreamCreator.set("dummy.xml", xmlString);
ByteArrayOutputStream outputStream = codedStreamCreator.getCodedByteArrayOutputStream(EncodingRule.CONTENT_BASED);
if (DEBUG) {
debugPrint("testSimpler", xmlString, "UTF-16", outputStream);
}
assertNotNull(outputStream);
}
public void testSimplest() throws UnsupportedEncodingException, CoreException, IOException {
CodedStreamCreator codedStreamCreator = new CodedStreamCreator();
String text = "test text";
codedStreamCreator.set("dummy.xml", text);
ByteArrayOutputStream outputStream = codedStreamCreator.getCodedByteArrayOutputStream(EncodingRule.CONTENT_BASED);
if (DEBUG) {
debugPrint("testSimplest", text, null, outputStream);
}
assertNotNull(outputStream);
}
}