1 19 20 package org.netbeans.core.windows.awt; 21 22 import java.io.InputStream ; 23 import junit.framework.*; 24 import org.netbeans.junit.*; 25 import org.openide.cookies.InstanceCookie; 26 27 import org.openide.filesystems.*; 28 import org.openide.loaders.*; 29 30 34 public class ValidateLayerMenuTest extends NbTestCase { 35 36 37 public ValidateLayerMenuTest(String name) { 38 super (name); 39 } 40 41 44 public static void main(java.lang.String [] args) { 45 junit.textui.TestRunner.run(suite()); 46 } 47 48 public static Test suite() { 49 TestSuite suite = new NbTestSuite(ValidateLayerMenuTest.class); 50 51 return suite; 52 } 53 54 58 protected String rootName () { 59 return "Menu"; 60 } 61 62 63 protected boolean skipFile (FileObject fo) { 64 return fo.getPath().startsWith ("Menu/Window/oldRoots") && fo.hasExt ("txt"); 67 } 68 69 protected boolean correctInstance (Object obj) { 70 if (obj instanceof javax.swing.Action ) { 71 return true; 72 } 73 if (obj instanceof org.openide.util.actions.Presenter.Menu) { 74 return true; 75 } 76 if (obj instanceof javax.swing.JSeparator ) { 77 return true; 78 } 79 if (obj instanceof javax.swing.JMenuItem ) { 80 return true; 81 } 82 83 return false; 84 } 85 86 87 91 public void testContentCorrect () throws Exception { 92 java.util.ArrayList errors = new java.util.ArrayList (); 93 94 DataFolder df = DataFolder.findFolder (Repository.getDefault().getDefaultFileSystem().findResource (rootName ())); 95 verifyMenu (df, errors); 96 97 if (!errors.isEmpty()) { 98 fail ("Some files do not provide valid menu elements" + errors); 99 } 100 } 101 102 private void verifyMenu (DataFolder f, java.util.ArrayList errors) throws Exception { 103 DataObject[] arr = f.getChildren(); 104 for (int i = 0; i < arr.length; i++) { 105 if (arr[i] instanceof DataFolder) { 106 verifyMenu ((DataFolder)arr[i], errors); 107 continue; 108 } 109 FileObject file = arr[i].getPrimaryFile (); 110 111 if (skipFile (file)) { 112 continue; 113 } 114 115 Object url = file.getURL(); 116 117 InstanceCookie ic = (InstanceCookie)arr[i].getCookie(InstanceCookie.class); 118 if (ic == null) { 119 errors.add ("\n File " + file + " does not have instance cookie, url: " + url); 120 continue; 121 } 122 123 try { 124 Object obj = ic.instanceCreate(); 125 if (correctInstance (obj)) { 126 continue; 127 } 128 errors.add ("\n File " + arr[i].getPrimaryFile () + " does not provide correct instance: " + obj + " url: " + url); 129 } catch (Exception ex) { 130 errors.add ("\n File " + arr[i].getPrimaryFile () + " cannot be read " + ex + " url: " + url); 131 } 132 } 133 } 134 135 } 136 137 | Popular Tags |