Package org.cyberneko.html

Source Code of org.cyberneko.html.LocatorEncodingTest

package org.cyberneko.html;


import java.io.ByteArrayInputStream;
import java.io.IOException;

import junit.framework.TestCase;

import org.apache.xerces.impl.Version;
import org.cyberneko.html.parsers.SAXParser;
import org.xml.sax.Attributes;
import org.xml.sax.ContentHandler;
import org.xml.sax.InputSource;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
import org.xml.sax.ext.Locator2;

/**
* Regression test for <a href="http://sourceforge.net/tracker/?func=detail&atid=952178&aid=3381270&group_id=195122">Bug 3381270</a>.
* @author Marc Guillemot
* @version $Revision: 291 $
*/
public class LocatorEncodingTest extends TestCase  {

    public void test() throws SAXException, IOException {
      if (Version.getVersion().startsWith("Xerces-J 2.2") || Version.getVersion().startsWith("Xerces-J 2.3")) {
        return; // this test makes sense only for more recent Xerces versions
      }
     
      final String content = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<html></html>";
        ByteArrayInputStream input = new ByteArrayInputStream(content.getBytes("UTF-8"));
        SAXParser parser = new SAXParser();
       
        final Locator[] locators = { null };
       
        final ContentHandler contentHandler = new ContentHandler() {
      public void startPrefixMapping(String prefix, String uri) throws SAXException {
      }
     
      public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException {
      }
     
      public void startDocument() throws SAXException {
      }
     
      public void skippedEntity(String name) throws SAXException {
      }
     
      public void setDocumentLocator(Locator locator) {
        locators[0] = locator;
      }
     
      public void processingInstruction(String target, String data)
          throws SAXException {
      }
     
      public void ignorableWhitespace(char[] ch, int start, int length) throws SAXException {
      }
     
      public void endPrefixMapping(String prefix) throws SAXException {
      }
     
      public void endElement(String uri, String localName, String qName) throws SAXException {
      }
     
      public void endDocument() throws SAXException {
      }
     
      public void characters(char[] ch, int start, int length) throws SAXException {
      }
    };
        parser.setContentHandler(contentHandler);
        parser.parse(new InputSource(input));
        assertEquals("UTF8", ((Locator2) locators[0]).getEncoding());
    }
}
TOP

Related Classes of org.cyberneko.html.LocatorEncodingTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.