| 1 7 8 package org.netbeans.qa.form; 9 import java.io.BufferedReader ; 10 import java.io.BufferedWriter ; 11 import java.io.File ; 12 import java.io.FileInputStream ; 13 import java.io.FileNotFoundException ; 14 import java.io.FileOutputStream ; 15 import java.io.FileReader ; 16 import java.io.FileWriter ; 17 import java.io.IOException ; 18 import java.nio.MappedByteBuffer ; 19 import java.nio.channels.FileChannel ; 20 import java.util.ArrayList ; 21 import java.util.List ; 22 import java.util.ListIterator ; 23 import junit.framework.*; 24 import org.netbeans.jellytools.JellyTestCase; 25 import org.netbeans.jellytools.actions.ActionNoBlock; 26 import org.netbeans.jellytools.modules.form.FormDesignerOperator; 27 import org.netbeans.jemmy.EventTool; 28 import org.netbeans.jemmy.operators.FrameOperator; 29 import org.netbeans.jemmy.operators.JFileChooserOperator; 30 import org.netbeans.junit.*; 31 32 36 public class OpenForm extends JellyTestCase { 37 38 public OpenForm(java.lang.String testName) { 39 super(testName); 40 } 41 42 public static void main(java.lang.String [] args) { 43 junit.textui.TestRunner.run(suite()); 44 } 45 46 public static Test suite() { 47 TestSuite suite = new NbTestSuite(OpenForm.class); 48 return suite; 49 } 50 51 55 private List getJavaFormList() { 56 String dataDir = getDataDir().getAbsolutePath(); 57 String fileSeparator = System.getProperty("file.separator"); 58 59 FileReader fileReader = null; 60 BufferedReader bufferedReader = null; 61 62 List list = new ArrayList (); 63 64 try { 65 fileReader = new FileReader (dataDir + fileSeparator + "FormList.dat"); 67 bufferedReader = new BufferedReader (fileReader); 68 String line = null; 69 while ((line = bufferedReader.readLine()) != null){ 70 list.add(line); 71 } 72 } catch (FileNotFoundException ex) { 73 ex.printStackTrace(); 74 } catch (IOException ex){ 75 ex.printStackTrace(); 76 } finally { 77 try { 78 if (bufferedReader!= null) { 79 bufferedReader.close(); 80 } 81 } catch (IOException ex) { 82 ex.printStackTrace(); 83 } 84 } 85 return list; 86 } 87 88 public void testOpenForm() { 89 90 System.out.println("XXXXXXXXXXXXX"); 91 System.out.println("xtest.data = " + System.getProperty("xtest.data")); 92 System.out.println("getDataDir = " + getDataDir()); 93 System.out.println("getWorkDirPath = " + getWorkDirPath()); 94 System.out.println("xtest.module = " + System.getProperty("xtest.module")); 95 System.out.println("xtest.home = " + System.getProperty("xtest.home")); 96 System.out.println("xtest.workdir = " + System.getProperty("xtest.workdir")); 97 System.out.println("xtest.attribs = " + System.getProperty("xtest.attribs")); 98 99 System.out.println("XXXXXXXXXXXXX"); 100 String dataDir = getDataDir().getAbsolutePath(); 101 String workdirpath = getWorkDirPath(); 102 String formPath = null; 103 String fileSeparator = System.getProperty("file.separator"); 104 String lineSeparator = System.getProperty("line.separator"); 105 String xtest_sketchpad = System.getProperty("xtest.sketchpad"); 106 107 List list = getJavaFormList(); 108 String prePath = workdirpath.substring(0,workdirpath.indexOf(fileSeparator + "testOpenForm")); 110 111 FileReader fileReader = null; 112 FileWriter fileWriter = null; 113 BufferedReader bufferedReader = null; 114 BufferedWriter bufferedWriter = null; 115 116 try { 117 fileReader = new FileReader (dataDir + fileSeparator + "OpenForm.template"); 118 bufferedReader = new BufferedReader (fileReader); 119 fileWriter = new FileWriter (workdirpath + fileSeparator + "OpenForm.html"); 120 bufferedWriter = new BufferedWriter (fileWriter); 121 122 String line = null; 123 while (!(line = bufferedReader.readLine()).equals("<PUT CONTENT HERE>")) { 124 bufferedWriter.write(line + lineSeparator); 126 } 127 128 int lastindex = 0; 129 String module = null; 130 String directory = null; 131 String filename = null; 132 String filenamenoext = null; 133 String fullPath = null; 134 ActionNoBlock actionNoBlock; 135 JFileChooserOperator jFileChooserOperator; 136 FormDesignerOperator formDesignerOperator = null; 137 FrameOperator frameOperator = null; 138 for (ListIterator listIterator = list.listIterator(); listIterator.hasNext(); ) { 139 142 formPath = (String ) listIterator.next(); 143 144 fullPath = new StringBuffer (prePath).append(fileSeparator).append(formPath).toString(); 145 System.out.println("fullpath: " + fullPath); 146 lastindex = fullPath.lastIndexOf(fileSeparator); 147 148 directory = dataDir + fileSeparator + "OpenForm"; filename = fullPath.substring(lastindex + 1); 151 filenamenoext = filename.substring(0, filename.lastIndexOf(".")); 152 actionNoBlock = new ActionNoBlock("File|Open File...", null); 153 actionNoBlock.perform(); 154 jFileChooserOperator = new JFileChooserOperator(); 155 jFileChooserOperator.setCurrentDirectory(new File (directory)); 156 jFileChooserOperator.selectFile(filename); 157 jFileChooserOperator.approve(); 158 formDesignerOperator = new FormDesignerOperator(filenamenoext); 159 160 161 formDesignerOperator.btPreviewForm().push(); 162 frameOperator = new FrameOperator("Design Preview [" + filenamenoext +"]"); 163 164 165 new EventTool().waitNoEvent(1000); 167 System.out.println("xtest_sketchpad: " + xtest_sketchpad); 168 copy(new File (dataDir + fileSeparator + "OpenForm"+ fileSeparator + filenamenoext + ".png"), new File (xtest_sketchpad + fileSeparator + filenamenoext + ".png")); 169 170 org.netbeans.jemmy.util.PNGEncoder.captureScreen(frameOperator.getSource(), workdirpath + fileSeparator + filenamenoext + ".png"); 171 172 frameOperator.close(); 173 formDesignerOperator.close(); 174 175 bufferedWriter.write("<TABLE width=\"98%\" cellspacing=\"2\" cellpadding=\"5\" border=\"0\">"); 176 bufferedWriter.write("<TR bgcolor=\"#A6CAF0\" align=\"center\">"); 177 bufferedWriter.write("<TD ALIGN=\"LEFT\" colspan=\"2\"> " + "<B>" + filenamenoext + "</B></TD>"); 178 bufferedWriter.write("</TR>"); 179 bufferedWriter.write("<TR bgcolor=\"#A6CAF0\" align=\"center\">"); 180 bufferedWriter.write("<TD ALIGN=\"LEFT\" >" + "<B>" + " Current testing " + "</B></TD>"); 181 bufferedWriter.write("<TD ALIGN=\"LEFT\" >" + "<B>" + " <FONT color=\"#EEEE0E\">Golden file</FONT> " + "</B></TD>"); 182 bufferedWriter.write("</TR>"); 183 bufferedWriter.write("<TR>"); 184 bufferedWriter.write("<TD ALIGN=\"CENTER\"><IMG BORDER=\"2\" TITLE=\"" + filenamenoext + "\" SRC=\"" + filenamenoext + ".png" + "\"></IMG></TD>"); 185 bufferedWriter.write("<TD bgcolor=\"#EEEE0E\" ALIGN=\"CENTER\"><IMG BORDER=\"2\" TITLE=\"" + filenamenoext + "\" SRC=\"" + "../../sketch-pad" + fileSeparator + filenamenoext + ".png" + "\"></IMG></TD>"); 186 bufferedWriter.write("</TR>"); 187 bufferedWriter.write("</TABLE>"); 188 bufferedWriter.write("<HR>"); 189 190 } 191 192 while ((line = bufferedReader.readLine()) != null){ 193 bufferedWriter.write(line + lineSeparator); 195 } 196 197 } catch (FileNotFoundException ex) { 198 ex.printStackTrace(); 199 } catch (IOException ex){ 200 ex.printStackTrace(); 201 } finally { 202 try { 203 if (bufferedReader!= null) { 204 bufferedReader.close(); 205 } 206 if (bufferedWriter!= null) { 207 bufferedWriter.close(); 208 } 209 } catch (IOException ex) { 210 ex.printStackTrace(); 211 } 212 } 213 214 assertTrue("Look at the work directory for particular form's screenshots", true); 215 } 216 217 private void copy(File source, File destination) throws IOException { 218 FileChannel input = null, output = null; 219 try { 220 input = new FileInputStream (source).getChannel(); 221 output = new FileOutputStream (destination).getChannel(); 222 223 long size = input.size(); 224 MappedByteBuffer buffer = input.map(FileChannel.MapMode.READ_ONLY, 0, size); 225 226 output.write(buffer); 227 228 } finally { 229 if (input != null) 230 input.close(); 231 if (output != null) 232 output.close(); 233 } 234 } 235 236 } 237 | Popular Tags |