Home | History | Annotate | Download | only in dom
      1 package tests.org.w3c.dom;
      2 
      3 import org.w3c.dom.Node;
      4 import org.w3c.dom.Document;
      5 import org.w3c.dom.DocumentFragment;
      6 import org.w3c.dom.Text;
      7 
      8 import javax.xml.parsers.DocumentBuilder;
      9 
     10 /**
     11  * Create a document fragment with two adjacent text nodes, normalize and see if
     12  * the text nodes were combined.
     13  *
     14  * @author Curt Arnold
     15  * @see <a
     16  *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-F68D095</a>
     17  * @see <a
     18  *      href="http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3">http://www.w3.org/TR/DOM-Level-2-Core/core#ID-B63ED1A3</a>
     19  */
     20 public final class HCNodeDocumentFragmentNormalize extends DOMTestCase {
     21 
     22     DOMDocumentBuilderFactory factory;
     23 
     24     DocumentBuilder builder;
     25 
     26     protected void setUp() throws Exception {
     27         super.setUp();
     28         try {
     29             factory = new DOMDocumentBuilderFactory(DOMDocumentBuilderFactory
     30                     .getConfiguration1());
     31             builder = factory.getBuilder();
     32         } catch (Exception e) {
     33             fail("Unexpected exception" + e.getMessage());
     34         }
     35     }
     36 
     37     protected void tearDown() throws Exception {
     38         factory = null;
     39         builder = null;
     40         super.tearDown();
     41     }
     42 
     43     /**
     44      * Runs the test case.
     45      *
     46      * @throws Throwable
     47      *             Any uncaught exception causes test to fail
     48      */
     49     public void testNodeDocumentFragmentNormalize1() throws Throwable {
     50         Document doc;
     51         DocumentFragment docFragment;
     52         String nodeValue;
     53         Text txtNode;
     54         Node retval;
     55 
     56         doc = (Document) load("hc_staff", builder);
     57         docFragment = doc.createDocumentFragment();
     58         txtNode = doc.createTextNode("foo");
     59         retval = docFragment.appendChild(txtNode);
     60         txtNode = doc.createTextNode("bar");
     61         retval = docFragment.appendChild(txtNode);
     62         docFragment.normalize();
     63         txtNode = (Text) docFragment.getFirstChild();
     64         nodeValue = txtNode.getNodeValue();
     65         assertEquals("normalizedNodeValue", "foobar", nodeValue);
     66         retval = txtNode.getNextSibling();
     67         assertNull("singleChild", retval);
     68     }
     69     public void testNodeDocumentFragmentNormalize2() throws Throwable {
     70         Document doc;
     71         DocumentFragment docFragment;
     72         Text txtNode;
     73 
     74         doc = (Document) load("hc_staff", builder);
     75         docFragment = doc.createDocumentFragment();
     76         txtNode = doc.createTextNode("");
     77         docFragment.appendChild(txtNode);
     78         docFragment.normalize();
     79         txtNode = (Text) docFragment.getFirstChild();
     80         assertNull("noChild", txtNode);
     81     }
     82 }
     83