1 7 8 package org.netbeans.modules.xml.xdm.nodes; 9 10 import java.io.File ; 11 import javax.xml.parsers.DocumentBuilder ; 12 import javax.xml.parsers.DocumentBuilderFactory ; 13 import javax.xml.transform.Transformer ; 14 import javax.xml.transform.TransformerFactory ; 15 import javax.xml.transform.dom.DOMSource ; 16 import javax.xml.transform.stream.StreamResult ; 17 import junit.framework.*; 18 import org.netbeans.modules.xml.xdm.Util; 19 import org.netbeans.modules.xml.xdm.XDMModel; 20 21 25 public class TextTest extends TestCase { 26 27 public TextTest(String testName) { 28 super(testName); 29 } 30 31 protected void setUp() throws Exception { 32 baseDocument = Util.getResourceAsDocument("nodes/xdm.xml"); 33 xmlModel = Util.loadXDMModel(baseDocument); 34 text = (Text)xmlModel.getDocument().getChildNodes().item(0). 35 getChildNodes().item(1).getChildNodes().item(0); 36 } 37 38 public static Test suite() { 39 TestSuite suite = new TestSuite(TextTest.class); 40 41 return suite; 42 } 43 44 47 public void testGetNodeValue() { 48 String expResult = "Vidhya Narayanan\n "; 49 String result = text.getNodeValue(); 50 assertEquals(expResult, result); 51 } 52 53 56 public void testGetNodeType() { 57 short expResult = org.w3c.dom.Node.TEXT_NODE; 58 short result = text.getNodeType(); 59 assertEquals("getNodeType must return TEXT_NODE",expResult, result); 60 } 61 62 65 public void testGetNodeName() { 66 String expResult = "#text"; 67 String result = text.getNodeName(); 68 assertEquals("getNodeName must return #text",expResult, result); 69 } 70 71 74 public void testGetNamespaceURI() { 75 76 String result = text.getNamespaceURI(); 77 assertNull(result); 78 } 79 80 83 public void testGetText() { 84 85 String expResult = "Vidhya Narayanan\n "; 86 String result = text.getText(); 87 assertEquals(expResult, result); 88 } 89 90 93 public void testSetText() { 94 String newText = "Another Person"; 95 try { 96 text.setText(newText); 97 assertTrue("setText must throw exception for text node in tree",false); 98 } catch (Exception e) { 99 assertTrue(true); 100 } 101 Text newTextNode = (Text)text.clone(true,false,false); 102 try { 103 newTextNode.setText(newText); 104 assertTrue(true); 105 } catch (Exception e) { 106 assertTrue("setText must not throw exception for text node not in tree",false); 107 } 108 xmlModel.modify(text,newTextNode); 109 text = (Text)xmlModel.getDocument().getChildNodes().item(0). 110 getChildNodes().item(1).getChildNodes().item(0); 111 assertEquals(newText, text.getText()); 112 } 113 114 public void testXmlEscapeText() throws Exception { 115 Element root = (Element) xmlModel.getDocument().getDocumentElement(); 116 String textValue = "<mytext>Am I a \"text\" node or part of a 'text' node&?</mytext"; 117 Text textNode = (Text) xmlModel.getCurrentDocument().createTextNode(textValue); 118 xmlModel.append(root, textNode); 119 xmlModel.flush(); 120 File tempFile = Util.dumpToTempFile(baseDocument); 121 Util.setDocumentContentTo(baseDocument, tempFile); 122 xmlModel.sync(); 123 root = (Element) xmlModel.getCurrentDocument().getDocumentElement(); 124 Text last = (Text) root.getLastChild(); 125 assertEquals("last should be text with same string value", textValue, last.getText().trim()); 126 } 127 128 public void testXmlFragmentText() throws Exception { 129 Element root = (Element) xmlModel.getDocument().getDocumentElement(); 130 String textValue = "I am a \"text\" node or part <doc> of a 'text' node&?<test attr1=\"foo\"></test>"; 131 root = (Element) xmlModel.setXmlFragmentText(root, textValue).get(0); 132 Text first = (Text) root.getChildNodes().item(0); 133 assertEquals("I am a \"text\" node or part <doc> of a 'text' node&?", first.getText()); 134 Element second = (Element) root.getChildNodes().item(1); 135 assertEquals("test", second.getTagName()); 136 assertEquals("foo", second.getAttribute("attr1")); 137 assertEquals(textValue, root.getXmlFragmentText()); 138 } 139 140 156 157 private XDMModel xmlModel; 158 private Text text; 159 private javax.swing.text.Document baseDocument; 160 } 161 | Popular Tags |