[prev in list] [next in list] [prev in thread] [next in thread] 

List:       batik-dev
Subject:    cvs commit: xml-batik/test-sources/org/apache/batik/dom CloneElementTest.java
From:       hillion () apache ! org
Date:       2002-05-30 16:42:34
[Download RAW message or body]

hillion     02/05/30 09:42:34

  Modified:    sources/org/apache/batik/dom AbstractElement.java
               test-resources/org/apache/batik/dom unitTesting.xml
  Added:       test-sources/org/apache/batik/dom CloneElementTest.java
  Log:
  - Fixed Element.cloneNode(false) + test.
  
  Revision  Changes    Path
  1.18      +2 -2      xml-batik/sources/org/apache/batik/dom/AbstractElement.java
  
  Index: AbstractElement.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/dom/AbstractElement.java,v
  retrieving revision 1.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- AbstractElement.java	17 May 2002 12:06:29 -0000	1.17
  +++ AbstractElement.java	30 May 2002 16:42:34 -0000	1.18
  @@ -29,7 +29,7 @@
    * This class implements the {@link org.w3c.dom.Element} interface.
    *
    * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
  - * @version $Id: AbstractElement.java,v 1.17 2002/05/17 12:06:29 vhardy Exp $
  + * @version $Id: AbstractElement.java,v 1.18 2002/05/30 16:42:34 hillion Exp $
    */
   public abstract class AbstractElement
       extends    AbstractParentChildNode
  @@ -410,7 +410,7 @@
   	if (attributes != null) {
   	    NamedNodeMap map = attributes;
   	    for (int i = map.getLength() - 1; i >= 0; i--) {
  -		AbstractAttr aa = (AbstractAttr)map.item(i).cloneNode(false);
  +		AbstractAttr aa = (AbstractAttr)map.item(i).cloneNode(true);
   		if (aa instanceof AbstractAttrNS) {
   		    ae.setAttributeNodeNS(aa);
   		} else {
  
  
  
  1.8       +12 -1     xml-batik/test-resources/org/apache/batik/dom/unitTesting.xml
  
  Index: unitTesting.xml
  ===================================================================
  RCS file: /home/cvs/xml-batik/test-resources/org/apache/batik/dom/unitTesting.xml,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- unitTesting.xml	17 May 2002 13:36:11 -0000	1.7
  +++ unitTesting.xml	30 May 2002 16:42:34 -0000	1.8
  @@ -9,7 +9,7 @@
   <!-- ========================================================================= -->
   <!-- @author vincent.hardy@eng.sun.com                                         -->
   <!-- @author shillion@ilog.fr                                                  -->
  -<!-- @version $Id: unitTesting.xml,v 1.7 2002/05/17 13:36:11 hillion Exp $  -->
  +<!-- @version $Id: unitTesting.xml,v 1.8 2002/05/30 16:42:34 hillion Exp $  -->
   <!-- ========================================================================= -->
   <testSuite id="dom.unitTesting" name="org.apache.batik.dom package - Unit Testing">
   
  @@ -26,6 +26,17 @@
           <property name="ParserClassName"
                     class="java.lang.String"
                     value="org.apache.crimson.parser.XMLReaderImpl" />
  +    </test>
  +
  +    <!-- ========================================================================== -->
  +    <!-- cloneNode test                                                          -->
  +    <!-- ========================================================================== -->
  +    <test id="cloneElement"
  +          class="org.apache.batik.dom.svg.CloneElementTest" >
  +        <arg class="java.lang.String"
  +             value="test-resources/org/apache/batik/dom/dummyXML3.xml" />
  +        <arg class="java.lang.String" value="root" />
  +        <arg class="java.lang.String" value="elt2" />
       </test>
   
       <!-- ========================================================================== -->
  
  
  
  1.1                  xml-batik/test-sources/org/apache/batik/dom/CloneElementTest.java
  
  Index: CloneElementTest.java
  ===================================================================
  /*****************************************************************************
   * Copyright (C) The Apache Software Foundation. All rights reserved.        *
   * ------------------------------------------------------------------------- *
   * This software is published under the terms of the Apache Software License *
   * version 1.1, a copy of which has been included with this distribution in  *
   * the LICENSE file.                                                         *
   *****************************************************************************/
  
  package org.apache.batik.dom.svg;
  
  import org.w3c.dom.*;
  
  import java.io.*;
  import java.net.*;
  import org.apache.batik.dom.*;
  import org.apache.batik.dom.util.*;
  import org.apache.batik.util.*;
  
  import org.apache.batik.test.*;
  
  /**
   * This class tests the non-deep cloneNode method for elements.
   *
   * @author <a href="mailto:stephane@hillion.org">Stephane Hillion</a>
   * @version $Id: CloneElementTest.java,v 1.1 2002/05/30 16:42:34 hillion Exp $
   */
  public class CloneElementTest extends AbstractTest {
      protected String testFileName;
      protected String rootTag;
      protected String targetId;
  
      public CloneElementTest(String file, String root, String id) {
          testFileName = file;
          rootTag = root;
          targetId = id;
      }
      
      public TestReport runImpl() throws Exception {
          String parser =
              XMLResourceDescriptor.getXMLParserClassName();
  
          SAXDocumentFactory df =
              new SAXDocumentFactory
              (GenericDOMImplementation.getDOMImplementation(), parser);
  
          File f = (new File(testFileName));
          URL url = f.toURL();
          Document doc = df.createDocument(null,
                                           rootTag,
                                           url.toString(),
                                           url.openStream());
          
          Element e = doc.getElementById(targetId);
  
          if (e == null){
              DefaultTestReport report = new DefaultTestReport(this);
              report.setErrorCode("error.get.element.by.id.failed");
              report.addDescriptionEntry("entry.key.id", targetId);
              report.setPassed(false);
              return report;
          }
  
          Element celt = (Element)e.cloneNode(false);
  
          NamedNodeMap attrs = e.getAttributes();
  
          for (int i = 0; i < attrs.getLength(); i++) {
              Node attr = attrs.item(i);
              String ns = attr.getNamespaceURI();
              String name = (ns == null)
                  ? attr.getNodeName()
                  : attr.getLocalName();
              String val = attr.getNodeValue();
              String val2 = celt.getAttributeNS(ns, name);
              if (!val.equals(val2)) {
                  DefaultTestReport report = new DefaultTestReport(this);
                  report.setErrorCode("error.attr.comparison.failed");
                  report.addDescriptionEntry("entry.attr.name", name);
                  report.addDescriptionEntry("entry.attr.value1", val);
                  report.addDescriptionEntry("entry.attr.value2", val2);
                  report.setPassed(false);
                  return report;
              }
          }
  
          return reportSuccess();
      }
  }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: batik-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: batik-dev-help@xml.apache.org

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic