All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.aliasi.test.unit.xml.SAXWriterTest Maven / Gradle / Ivy

Go to download

This is the original Lingpipe: http://alias-i.com/lingpipe/web/download.html There were not made any changes to the source code.

There is a newer version: 4.1.2-JL1.0
Show newest version
/*
 * LingPipe v. 4.1.0
 * Copyright (C) 2003-2011 Alias-i
 *
 * This program is licensed under the Alias-i Royalty Free License
 * Version 1 WITHOUT ANY WARRANTY, without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the Alias-i
 * Royalty Free License Version 1 for more details.
 * 
 * You should have received a copy of the Alias-i Royalty Free License
 * Version 1 along with this program; if not, visit
 * http://alias-i.com/lingpipe/licenses/lingpipe-license-1.txt or contact
 * Alias-i, Inc. at 181 North 11th Street, Suite 401, Brooklyn, NY 11211,
 * +1 (718) 290-9170.
 */

package com.aliasi.test.unit.xml;

import org.junit.Test;

import static junit.framework.Assert.assertEquals;


import com.aliasi.xml.SAXWriter;

import java.io.ByteArrayOutputStream;
import java.io.CharArrayReader;
import java.io.IOException;

import org.xml.sax.SAXException;
import org.xml.sax.XMLReader;

import org.xml.sax.InputSource;
import org.xml.sax.helpers.XMLReaderFactory;



public class SAXWriterTest  {


    @Test
    public void testCharsets() throws IOException, SAXException {
        assertReadWrite("","UTF-8");
        assertReadWrite("","ASCII");
        assertReadWrite("","ISO-8859-1");
        assertReadWrite("","UTF-16");
        assertReadWrite("","ISO-8859-1");
    }

    @Test
    public void testIgnorableWhitespace() throws IOException, SAXException {
        assertReadWrite("  ",
                        "",
                        "UTF-8");
        assertReadWrite("  ",
                        "",
                        "UTF-8");
    }

    @Test
    public void testIllegalChars() throws IOException, SAXException {
        assertReadWrite("\u2297","UTF-16");
        // encodes \u2297, using ࣹinstead
        assertReadWrite("\u2297",
                        "",
                        "ISO-8859-1");

    }

    @Test
    public void testNamespaces() throws IOException, SAXException {
        assertReadWrite("Hello World.",
                        "ISO-8859-1");
        assertReadWrite("Hello World.",
                        "ISO-8859-1");
        assertReadWrite("Hello World.",
                        "ISO-8859-1");
        // need better test that doesn't depend on ordering
        // assertReadWrite("Hello World.",
        // "ISO-8859-1");
    }

    @Test
    public void testXHTML() throws IOException, SAXException {
        assertReadWrite("
", "

", "ISO-8859-1", true); assertReadWrite("
", "

", "ISO-8859-1", true); } private void assertReadWrite(String sourceString, String charset) throws IOException, SAXException { assertReadWrite(sourceString,charset,false); } private void assertReadWrite(String sourceString, String charset, boolean xhtmlMode) throws IOException, SAXException { assertReadWrite(sourceString,sourceString,charset,xhtmlMode); } private void assertReadWrite(String sourceString, String targetString, String charset) throws IOException, SAXException { assertReadWrite(sourceString,targetString,charset,false); } private void assertReadWrite(String sourceString, String targetString, String charset, boolean xhtmlMode) throws IOException, SAXException { CharArrayReader reader = new CharArrayReader(sourceString.toCharArray()); InputSource in = new InputSource(reader); in.setEncoding(charset); XMLReader xmlReader = XMLReaderFactory.createXMLReader(); ByteArrayOutputStream bytesOut = new ByteArrayOutputStream(); SAXWriter writer = new SAXWriter(bytesOut,charset,xhtmlMode); xmlReader.setContentHandler(writer); xmlReader.setDTDHandler(writer); xmlReader.parse(in); byte[] bytes = bytesOut.toByteArray(); String s = new String(bytes,0,bytes.length,charset); assertEquals("\n" + targetString + " \n!=\n" + s + "\n", targetString ,s); } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy