1 19 package org.netbeans.xml.test.actions; 20 21 import java.io.IOException ; 22 import javax.swing.text.StyledDocument ; 23 import junit.framework.Test; 24 import junit.framework.TestSuite; 25 import junit.textui.TestRunner; 26 import org.netbeans.jellytools.Bundle; 27 import org.netbeans.jellytools.EditorOperator; 28 import org.netbeans.jellytools.EditorWindowOperator; 29 import org.netbeans.jellytools.NbDialogOperator; 30 import org.netbeans.jellytools.actions.ActionNoBlock; 31 import org.netbeans.jellytools.nodes.Node; 32 import org.netbeans.jemmy.operators.JTextFieldOperator; 33 import org.netbeans.junit.NbTestSuite; 34 import org.netbeans.xml.test.core.XMLTest; 35 import org.netbeans.xml.test.core.wizardoperator.TransformationWizardOperator; 36 37 67 68 72 public class XMLActionsTest extends XMLTest { 73 private static String projectName = "ActionsTestProject"; 74 75 private static boolean generateGoldenFiles = false; 76 77 78 public XMLActionsTest(String testName) { 79 super(testName); 80 } 81 82 83 public void testXMLWellFormed() throws Exception { 85 System.out.println("running testXMLWellFormed"); 86 String fileName = "well.xml"; 87 Node node = WebPagesNode.getInstance(projectName).getChild(fileName, Node.class); 88 StyledDocument doc = openFile(projectName, fileName); 89 checkXML(node); 90 int error = doc.getText(0, doc.getLength()).indexOf("notes")+4; 91 doc.remove(error, 1); 92 checkXML(node); 93 validateXML(node); 94 error = doc.getText(0, doc.getLength()).indexOf("a="); 95 doc.remove(error, 5); 96 validateXML(node); 97 ending(); 98 } 99 100 public void testXMLDTDFormed() throws Exception { 101 final String err = "<!!!>"; 102 System.out.println("running testDTDWellFormed"); 103 String fileName = "DTDformed.xml"; 104 Node node = WebPagesNode.getInstance(projectName).getChild(fileName, Node.class); 105 StyledDocument doc = openFile(projectName, fileName); 106 checkXML(node); 107 int error = doc.getText(0, doc.getLength()).indexOf(err); 108 doc.remove(error, err.length()); 109 checkXML(node); 110 validateXML(node); 111 error = doc.getText(0,doc.getLength()).indexOf("<collection>")-1; 112 doc.insertString(error, "<!DOCTYPE collection SYSTEM 'DTDformed.dtd'>", null); 113 validateXML(node); 114 error = doc.getText(0,doc.getLength()).indexOf("jmeno"); 115 doc.remove(error, 15); 116 validateXML(node); 117 error = doc.getText(0,doc.getLength()).indexOf("alcohol"); 118 doc.insertString(error, "calories = \"nut\" ", null); 119 validateXML(node); 120 ending(); 121 } 122 123 public void testXMLXSDFormed() throws Exception { 124 final String err1 = "shiporders"; 125 final String err2 = "title"; 126 final String err3 = "orderid="; 127 System.out.println("running testXMLXSDFormed"); 128 String fileName = "shiporders.xml"; 129 Node node = WebPagesNode.getInstance(projectName).getChild(fileName, Node.class); 130 StyledDocument doc = openFile(projectName, fileName); 131 checkXML(node); 132 validateXML(node); 133 int error = doc.getText(0, doc.getLength()).indexOf(err1)+err1.length()+1; 134 doc.insertString(error, "xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation='shiporder.xsd'", null); 135 error = doc.getText(0, doc.getLength()).indexOf(err2); 136 doc.insertString(error,"s", null); 137 checkXML(node); 138 doc.remove(error, 1); 139 error = doc.getText(0, doc.getLength()).indexOf(err3)+err3.length()+1; 140 doc.insertString(error, "1", null); 141 checkXML(node); 142 validateXML(node); 143 doc.remove(error+2,1); 144 validateXML(node); 145 ending(); 146 } 147 148 public void testGenerateDTD()throws Exception { 149 System.out.println("running testGenerateDTD"); 150 String fileName = "shiporders.xml"; 151 Node node = WebPagesNode.getInstance(projectName).getChild(fileName, Node.class); 152 generateDTD(node); 153 ref(EditorWindowOperator.getEditor().getText()); 154 ending(); 155 } 156 157 public void testXSLT() throws Exception { 158 System.out.println("runnning testXSLT"); 159 String fileName = "sampleXMLSchema.xml"; 160 String outputName = "transform.xml"; 161 Node node = WebPagesNode.getInstance(projectName).getChild(fileName, Node.class); 162 transformXSLT(node, outputName); 163 node = WebPagesNode.getInstance(projectName).getChild(outputName, Node.class); 164 new ActionNoBlock(null, "Edit").perform(node); Thread.sleep(1000); String text = new EditorOperator(outputName).getText(); 167 text = text.replaceAll("\n", ""); 169 ref(text); 170 ending(); 171 } 172 173 175 public boolean generateGoldenFiles() { 176 return generateGoldenFiles; 177 } 178 179 180 private void checkXML(Node node) throws InterruptedException { 181 new ActionNoBlock(null, Bundle.getString(TOOLS_ACTIONS_BUNDLE, "NAME_Check_XML")).perform(node); 182 writeIn(); 183 } 184 185 private void validateXML(Node node) throws InterruptedException { 186 new ActionNoBlock(null, Bundle.getString(TOOLS_ACTIONS_BUNDLE, "NAME_Validate_XML")).perform(node); 187 writeIn(); 188 } 189 190 private void generateDTD(Node node) throws IOException { 191 final String nameDTD = "newGeneratedDTD"; 192 new ActionNoBlock(null, Bundle.getString(TOOLS_GENERATOR_BUNDLE, "PROP_GenerateDTD")).perform(node); 193 NbDialogOperator dOp = new NbDialogOperator(Bundle.getString(TOOLS_GENERATOR_BUNDLE, "PROP_fileNameTitle")); 194 new JTextFieldOperator(dOp, 0).setText(nameDTD); 195 dOp.ok(); 196 } 197 198 private void transformXSLT(Node node, String outputName) throws InterruptedException { 199 String XSLTName = "XMLSchema2GUI.xslt"; 200 new ActionNoBlock(null, Bundle.getString(XSL_ACTIONS_BUNDLE, "NAME_transform_action")).perform(node); 201 TransformationWizardOperator twiz = new TransformationWizardOperator(Bundle.getString(XSL_TRANSFORM_BUNDLE, "NAME_transform_panel_title")); 202 assertTrue("source dialog is enabled!!", !twiz.source().isEnabled()); 203 twiz.output().addItem(outputName); 204 twiz.skript().addItem(XSLTName); 205 assertEquals("processOutput checkbox doesn't contain 3 possibilities", twiz.processOutput().getItemCount(), 3); 206 twiz.processOutput().selectItem(0); 207 twiz.overwrite().changeSelection(true); 208 twiz.ok(); 209 } 210 211 213 public static Test suite() { 214 TestSuite suite = new NbTestSuite(); 215 initialization(projectName); 216 suite.addTest(new XMLActionsTest("testXMLWellFormed")); 217 suite.addTest(new XMLActionsTest("testXMLDTDFormed")); 218 suite.addTest(new XMLActionsTest("testXMLXSDFormed")); 219 suite.addTest(new XMLActionsTest("testGenerateDTD")); 220 suite.addTest(new XMLActionsTest("testXSLT")); 221 return suite; 222 } 223 224 public static void main(String [] args) throws Exception { 225 TestRunner.run(suite()); 228 } 229 230 } 231 | Popular Tags |