logo       

CVS Update: xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper: msg#00019

Subject: CVS Update: xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper
aslom       03/07/30 12:04:03

  Added:       addons/java/wrapper/tests/org/xmlpull/v1/wrapper
                        TestXmlPullWrapper.java
  Log:
  moved test
  
  Revision  Changes    Path
  1.1                  
xmlpull-api-v1/addons/java/wrapper/tests/org/xmlpull/v1/wrapper/TestXmlPullWrapper.java
  
  Index: TestXmlPullWrapper.java
  ===================================================================
  /* -*-             c-basic-offset: 4; indent-tabs-mode: nil; -*-  
//------100-columns-wide------>|*/
  // for license see accompanying LICENSE_TESTS.txt file (available also at 
http://www.xmlpull.org)
  
  package org.xmlpull.v1.wrapper;
  
  //import junit.framework.Test;
  import java.io.IOException;
  import java.io.StringReader;
  import java.io.StringWriter;
  import java.io.Writer;
  import junit.framework.TestCase;
  import junit.framework.TestSuite;
  import org.xmlpull.v1.XmlPullParser;
  import org.xmlpull.v1.XmlPullParserException;
  import org.xmlpull.v1.XmlPullParserFactory;
  import org.xmlpull.v1.wrapper.XmlPullParserWrapper;
  import org.xmlpull.v1.wrapper.XmlPullWrapperFactory;
  import org.xmlpull.v1.wrapper.XmlSerializerWrapper;
  
  /**
   * Test some wrapper utility operations.
   *
   * @author <a href="http://www.extreme.indiana.edu/~aslom/";>Aleksander 
Slominski</a>
   */
  public class TestXmlPullWrapper extends TestCase {
      private XmlPullWrapperFactory wrappedFactory;
  
      public static void main (String[] args) {
          junit.textui.TestRunner.run (new TestSuite(TestXmlPullWrapper.class));
      }
  
  
      public TestXmlPullWrapper(String name) {
          super(name);
      }
  
      protected void setUp() throws XmlPullParserException {
          wrappedFactory = wrappedFactory.newInstance();
          wrappedFactory.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, 
true);
          assertEquals(true, 
wrappedFactory.getFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES));
          assertEquals(false, 
wrappedFactory.getFeature(XmlPullParser.FEATURE_VALIDATION));
      }
  
      public void testSimple() throws IOException, XmlPullParserException {
          XmlPullWrapperFactory wrapperFactory = 
XmlPullWrapperFactory.newInstance(
              System.getProperty(XmlPullParserFactory.PROPERTY_NAME),
              XmlPullParserFactory.class);
          wrapperFactory.setNamespaceAware(true);
          XmlSerializerWrapper xs = wrapperFactory.newSerializerWrapper();
          StringWriter sw = new StringWriter();
          xs.setOutput(sw);
          xs.startDocument("UTF-8", Boolean.TRUE);
          xs.startTag("test");
          xs.attribute("fooAttr", "fooValue");
          final String NS = "http://tempuri.org/xmlpull-test";;
          xs.setCurrentNamespaceForElements(NS);
          final String MSG = "World & Universe!";
          xs.element("hello", MSG);
          xs.setCurrentNamespaceForElements(null);
          xs.endTag("test");
          xs.endDocument();
  
          String s = sw.toString();
          //System.out.println(getClass()+" s="+s);
          XmlPullParserWrapper pw = wrapperFactory.newPullParserWrapper();
          pw.setInput(new StringReader(s));
          pw.nextStartTag("test");
          assertEquals(pw.getAttributeValue("fooAttr"), "fooValue");
          pw.nextTag();
          assertTrue(pw.matches(XmlPullParser.START_TAG, NS, "hello"));
          assertEquals(pw.nextText(NS, "hello"), MSG);
          assertTrue(pw.matches(XmlPullParser.END_TAG, null, "hello"));
          pw.nextEndTag("test");
      }
  
  
  
      public void testSerializeEvent() throws IOException, 
XmlPullParserException
      {
  
          //final String XML ="<html 
xmlns=\"http://www.w3.org/1999/xhtml\";><body /></html>";
          final String NS = "http://exmaple.com/foofoo";;
          final String XHTML_NS = "http://www.w3.org/1999/xhtml";;
          final String XML = "<m:blog  xmlns:m='"+NS+"' 
xmlns='"+XHTML_NS+"'><html /></m:blog>";
  
          XmlPullWrapperFactory wf = XmlPullWrapperFactory.newInstance();
          wf.setNamespaceAware(true);
  
          XmlPullParserWrapper pp = wf.newPullParserWrapper();
          pp.setInput( new StringReader(XML) );
  
          XmlSerializerWrapper ser = wf.newSerializerWrapper();
          StringWriter sw = new StringWriter();
          ser.setOutput(sw);
          //ser.setCurrentNamespaceForElements("http://www.w3.org/1999/xhtml";);
          //ser.startTag("p").attribute("class", "abstract").text("Hello");
          //ser.endTag("p");
  
          while (pp.nextToken() != XmlPullParser.END_DOCUMENT) {
              ser.event(pp);
          }
          //System.out.println(getClass()+" sw="+sw);
          String s = sw.toString();
          pp.setInput(new StringReader( s ));
          //assertEquals(
  
          pp.nextStartTag(NS, "blog");
          int start = pp.getNamespaceCount(pp.getDepth() - 1);
          int end = pp.getNamespaceCount(pp.getDepth());
          assertEquals(2, end - start);
          assertEquals("m", pp.getNamespacePrefix(start));
          assertEquals(NS, pp.getNamespaceUri(start));
          assertEquals(null, pp.getNamespacePrefix(start+1));
          assertEquals(XHTML_NS, pp.getNamespaceUri(start+1));
          pp.nextStartTag(XHTML_NS, "html");
  
      }
  
  
      public void testPI() throws IOException, XmlPullParserException {
          final String PI_TARGET = "xml-stylesheet";
          final String PI_DATA = "href='test.css' type='text/css'";
          testPI(PI_TARGET, " ", PI_DATA);
          testPI(PI_TARGET, "\n", PI_DATA);
          testPI(PI_TARGET, "\r", PI_DATA);
          testPI(PI_TARGET, "\t", PI_DATA);
          testPI(PI_TARGET, "  ", PI_DATA);
          testPI(PI_TARGET, "  \n \n\r\n", PI_DATA);
          testPI(PI_TARGET, " ", null);
          testPI(PI_TARGET, "  \n \n\r", null);
          testPI(PI_TARGET, null, null); // TODO FIXME add when next release of 
XPP3 is fixed
      }
  
      public void testPI(final String piTarget,
                         final String s,
                         final String piData)
          throws IOException, XmlPullParserException
      {
          final String PI = piTarget + (s != null ? s : "") + (piData != null ? 
piData : "");
          final String XML_TEST_PI =
              "<tag><?"+PI+"?></tag>";
          final String PI_NORMALIZED = normalized(PI);
  
          XmlPullParserWrapper pw = wrappedFactory.newPullParserWrapper();
          pw.setInput(new StringReader(XML_TEST_PI));
  
          assertEquals(XmlPullParser.START_TAG, pw.next());
          assertEquals("tag", pw.getName());
          assertEquals(XmlPullParser.PROCESSING_INSTRUCTION, pw.nextToken());
          assertEquals(printable(PI_NORMALIZED), printable(pw.getText()));
          assertEquals(PI_NORMALIZED, pw.getText());
          assertEquals(printable(piTarget), printable(pw.getPITarget()));
          assertEquals(piTarget, pw.getPITarget());
          if(piData != null) {
              assertEquals(printable(piData), printable(pw.getPIData()));
              assertEquals(piData, pw.getPIData());
          }
          assertEquals(pw.next(), XmlPullParser.END_TAG);
          assertEquals("tag", pw.getName());
  
          assertEquals(pw.next(), XmlPullParser.END_DOCUMENT);
      }
  
  //    public void testXsdTypes() throws IOException, XmlPullParserException {
  //        XmlSerializerWrapper xs = wrappedFactory.newSerializerWrapper();
  //        Writer out = new StringWriter();
  //        xs.setOutput(out);
  //        xs.startTag("test");
  //        xs.writeStringElement(null, "s1", "foo");
  //        xs.writeStringElement(null, "s2", "");
  //        xs.writeStringElement(null, "s1", null);
  //        xs.writeIntElement(null, "i1", 0);
  //        xs.writeIntElement(null, "i2", 100);
  //        xs.writeIntElement(null, "imax", Integer.MAX_VALUE);
  //        xs.writeIntElement(null, "imin", Integer.MIN_VALUE);
  //        xs.writeDoubleElement(null, "d1", 0.0);
  //        xs.writeDoubleElement(null, "d2", -100.0);
  //        xs.writeFloatElement(null, "f1", 7.54f);
  //        xs.endDocument();
  //        //System.err.println(getClass()+" s="+out.toString());
  //
  //        XmlPullParserWrapper pw = wrappedFactory.newPullParserWrapper();
  //        pw.setInput(new StringReader(out.toString()));
  //        pw.nextStartTag("test");
  //        pw.nextTag();
  //        String s1 = pw.readStringElemet(null, "s1");
  //        assertEquals("foo", s1);
  //        pw.nextTag();
  //        String s2 = pw.readStringElemet(null, "s2");
  //        assertEquals("", s2);
  //        pw.nextTag();
  //        s1 = pw.readStringElemet(null, "s1");
  //        assertEquals(null, s1);
  //        pw.nextTag();
  //        assertEquals(0, pw.readIntElement(null, "i1"));
  //        pw.nextTag();
  //        assertEquals(100, pw.readIntElement(null, "i2"));
  //        pw.nextTag();
  //        assertEquals(Integer.MAX_VALUE, pw.readIntElement(null, "imax"));
  //        pw.nextTag();
  //        assertEquals(Integer.MIN_VALUE, pw.readIntElement(null, "imin"));
  //        pw.nextTag();
  //        assertEquals(0.0, pw.readDoubleElement(null, "d1"), 0.00001);
  //        pw.nextTag();
  //        assertEquals(-100.0, pw.readDoubleElement(null, "d2"), 0.00001);
  //        pw.nextTag();
  //        assertEquals(7.54f, pw.readFloatElement(null, "f1"), 0.0000000001f);
  //    }
  
  
      private static String printable(char ch) {
          if(ch == '\n') {
              return "\\n";
          } else if(ch == '\r') {
              return "\\r";
          } else if(ch == '\t') {
              return "\\t";
          } if(ch > 127 || ch < 32) {
              StringBuffer buf = new StringBuffer("\\u");
              String hex = Integer.toHexString((int)ch);
              for (int i = 0; i < 4-hex.length(); i++)
              {
                  buf.append('0');
              }
              buf.append(hex);
              return buf.toString();
          }
          return ""+ch;
      }
  
      private static String printable(String s) {
          if(s == null) return null;
          StringBuffer buf = new StringBuffer();
          for(int i = 0; i < s.length(); ++i) {
              buf.append(printable(s.charAt(i)));
          }
          s = buf.toString();
          return s;
      }
  
      private static String normalized(String s) {
          if(s == null) return null;
          StringBuffer buf = new StringBuffer();
          boolean seenCR = false;
          for(int i = 0; i < s.length(); ++i) {
              char ch = s.charAt(i);
              if(ch == '\r') {
                  buf.append('\n');
                  seenCR = true;
              } else if(ch == '\n') {
                  if( !seenCR ) {
                      buf.append(ch);
                  }
                  seenCR = false;
              } else {
                  buf.append(ch);
                  seenCR = false;
              }
          }
          s = buf.toString();
          return s;
      }
  
  }
  
  
  
  


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Buy Ink Cartridges or Refill Kits for Your HP, Epson, Canon or Lexmark
Printer at Myinks.com. Free s/h on orders $50 or more to the US & Canada. 
http://www.c1tracking.com/l.asp?cid=5511
http://us.click.yahoo.com/sO0ANB/LIdGAA/ySSFAA/2U_rlB/TM
---------------------------------------------------------------------~->

To unsubscribe from this group, send an email to:
xmlpull-dev-unsubscribe@xxxxxxxxxxxxxxx

 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 





<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

Recently Viewed:
boot-loaders.gr...    php.pear.genera...    debugging.valgr...    kde.redhat.user...    text.xml.xsl.ge...    culture.languag...    hardware.microc...    java.servicemix...    redhat.release....    web.zope.plone....    user-groups.lin...    opendarwin.webk...    video.mjpeg.use...    sysutils.bcfg2....    encryption.gpg....    lx-office.devel...    xfree86.forum/2...    mail.mutt.devel...    acpi.devel/2003...    qnx.openqnx.dev...    network.irc.irs...    freebsd.devel.m...   
Home | blog view | USPTO Patent Archive | advertise | OSDir is an inevitable website. super tiny logo

Free Magazines

Cisco News
Receive a free quarterly e-newsletter with exclusive articles on how Cisco IT uses its own products and solutions to enable the business.
subscribe

Systems Management News, the newspaper for IT systems administration and data center managers! Each issue of Systems Management News is chock-full of news and analysis to help you understand what's happening in your field.
subscribe

The Enterprise Newsweekly eWeek is the essential technology information source for builders of e-business.
subscribe

Oracle Magazine Oracle Magazine contains technology strategy articles, sample code, tips, Oracle and partner news, how to articles for developers and DBAs, and more. Oracle (NASDAQ: ORCL) is the world's largest enterprise software company.
subscribe

Total Telecom Total Telecom is "The Economist of the communications industry".
subscribe