fixed JumpTo test suite/method node action
authorLukas Jungmann <jungi@netbeans.org>
Thu, 22 Dec 2011 03:08:04 +0100
changeset 1770978f357edfe42
parent 17708 80d577510857
child 17710 4803a29ed27b
fixed JumpTo test suite/method node action
testng/src/org/netbeans/modules/contrib/testng/output/JumpAction.java
testng/src/org/netbeans/modules/contrib/testng/output/OutputUtils.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGMethodNode.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGSuiteNode.java
testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java
testng/src/org/netbeans/modules/contrib/testng/output/XmlOutputParser.java
testng/test/unit/src/org/netbeans/modules/contrib/testng/output/XmlOutputParserTest.java
     1.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/JumpAction.java	Thu Dec 22 02:04:53 2011 +0100
     1.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/JumpAction.java	Thu Dec 22 03:08:04 2011 +0100
     1.3 @@ -44,6 +44,7 @@
     1.4  import java.awt.event.ActionEvent;
     1.5  import javax.swing.AbstractAction;
     1.6  import javax.swing.Action;
     1.7 +import org.netbeans.modules.gsf.testrunner.api.TestSuite;
     1.8  import org.openide.nodes.Node;
     1.9  import org.openide.util.NbBundle;
    1.10  
    1.11 @@ -70,6 +71,7 @@
    1.12       */
    1.13      public void actionPerformed(ActionEvent e) {
    1.14          if (node instanceof TestNGSuiteNode){
    1.15 +            //TODO: open xml file on a particular line...
    1.16              OutputUtils.openTestsuite((TestNGSuiteNode)node);
    1.17          } else if (node instanceof CallstackFrameNode){
    1.18              OutputUtils.openCallstackFrame(node, callstackFrameInfo);
    1.19 @@ -79,6 +81,17 @@
    1.20      }
    1.21  
    1.22      @Override
    1.23 +    public boolean isEnabled() {
    1.24 +        if (node instanceof TestNGSuiteNode) {
    1.25 +            TestSuite suite = ((TestNGSuiteNode) node).getSuite();
    1.26 +            if ((suite != null) && (suite instanceof TestNGTestSuite)) {
    1.27 +                return ((TestNGTestSuite) suite).getSuiteFO() != null;
    1.28 +            }
    1.29 +        }
    1.30 +        return super.isEnabled();
    1.31 +    }
    1.32 +
    1.33 +    @Override
    1.34      public Object getValue(String key) {
    1.35          if (key.equals(Action.NAME)) {
    1.36              return NbBundle.getMessage(JumpAction.class, "LBL_GotoSource"); //NOI18N
     2.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/OutputUtils.java	Thu Dec 22 02:04:53 2011 +0100
     2.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/OutputUtils.java	Thu Dec 22 03:08:04 2011 +0100
     2.3 @@ -50,6 +50,7 @@
     2.4  import javax.lang.model.element.Element;
     2.5  import javax.lang.model.element.ElementKind;
     2.6  import javax.lang.model.element.ExecutableElement;
     2.7 +import static javax.lang.model.util.ElementFilter.methodsIn;
     2.8  import javax.swing.Action;
     2.9  import org.netbeans.api.extexecution.print.LineConvertors.FileLocator;
    2.10  import org.netbeans.api.java.source.CompilationController;
    2.11 @@ -66,7 +67,6 @@
    2.12  import org.openide.text.Line;
    2.13  import org.openide.text.Line.ShowOpenType;
    2.14  import org.openide.text.Line.ShowVisibilityType;
    2.15 -import static javax.lang.model.util.ElementFilter.*;
    2.16  
    2.17  /**
    2.18   *
    2.19 @@ -135,7 +135,7 @@
    2.20                                  if (element != null && element.getKind() == ElementKind.CLASS && element.getSimpleName().contentEquals(fo.getName())) {
    2.21                                      List<? extends ExecutableElement> methodElements = methodsIn(element.getEnclosedElements());
    2.22                                      for (Element child : methodElements) {
    2.23 -                                        if (child.getSimpleName().contentEquals(node.getTestcase().getName())) {
    2.24 +                                        if (child.getSimpleName().contentEquals(node.getTestcase().getTestName())) {
    2.25                                              long pos = trees.getSourcePositions().getStartPosition(compilationUnitTree, trees.getTree(child));
    2.26                                              line[0] = compilationUnitTree.getLineMap().getLineNumber(pos);
    2.27                                              break;
    2.28 @@ -315,7 +315,7 @@
    2.29  
    2.30          try {
    2.31              DataObject dob = DataObject.find(file);
    2.32 -            EditorCookie ed = dob.getCookie(EditorCookie.class);
    2.33 +            EditorCookie ed = dob.getLookup().lookup(EditorCookie.class);
    2.34              if (ed != null
    2.35                      && /* not true e.g. for *_ja.properties */ file == dob.getPrimaryFile()) {
    2.36                  if (lineNum == -1) {
     3.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGMethodNode.java	Thu Dec 22 02:04:53 2011 +0100
     3.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGMethodNode.java	Thu Dec 22 03:08:04 2011 +0100
     3.3 @@ -74,7 +74,7 @@
     3.4  
     3.5      @Override
     3.6      public Action[] getActions(boolean context) {
     3.7 -        ic.add(new SingleMethod(getTestcase().getClassFileObject(), getTestcase().getName()));
     3.8 +        ic.add(new SingleMethod(getTestcase().getClassFileObject(), getTestcase().getTestName()));
     3.9          ic.add(getTestcase());
    3.10          List<Action> actions = new ArrayList<Action>();
    3.11          Action preferred = getPreferredAction();
     4.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGSuiteNode.java	Thu Dec 22 02:04:53 2011 +0100
     4.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGSuiteNode.java	Thu Dec 22 03:08:04 2011 +0100
     4.3 @@ -46,6 +46,7 @@
     4.4  import javax.swing.Action;
     4.5  import org.netbeans.modules.contrib.testng.actions.DebugTestClassAction;
     4.6  import org.netbeans.modules.gsf.testrunner.api.TestsuiteNode;
     4.7 +import org.openide.filesystems.FileObject;
     4.8  import org.openide.util.actions.SystemAction;
     4.9  import org.openide.util.lookup.AbstractLookup;
    4.10  import org.openide.util.lookup.InstanceContent;
    4.11 @@ -75,7 +76,10 @@
    4.12  
    4.13      @Override
    4.14      public Action[] getActions(boolean context) {
    4.15 -        ic.add(((TestNGTestSuite) getSuite()).getSuiteFO());
    4.16 +        FileObject fo = ((TestNGTestSuite) getSuite()).getSuiteFO();
    4.17 +        if (fo != null) {
    4.18 +            ic.add(fo);
    4.19 +        }
    4.20          List<Action> actions = new ArrayList<Action>();
    4.21          Action preferred = getPreferredAction();
    4.22          if (preferred != null) {
     5.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java	Thu Dec 22 02:04:53 2011 +0100
     5.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/TestNGTestcase.java	Thu Dec 22 03:08:04 2011 +0100
     5.3 @@ -56,14 +56,17 @@
     5.4      private boolean confMethod = false;
     5.5      private String parameters;
     5.6      private List<String> values = new ArrayList<String>();
     5.7 +    private final String testName;
     5.8      private String description;
     5.9  
    5.10      //TODO: there should be subnode for each value instead
    5.11      public TestNGTestcase(String name, String params, String values, TestSession session) {
    5.12          super(values != null ? name + "(" + values+ ")" : name, "TestNG Test", session);
    5.13 +        setClassName(name.substring(0, name.lastIndexOf('.')));
    5.14  //        parameters = params;
    5.15          parameters = values;
    5.16          this.values.add(values);
    5.17 +        testName = name.substring(name.lastIndexOf(".") + 1);
    5.18      }
    5.19  
    5.20      public String getParameters() {
    5.21 @@ -101,4 +104,8 @@
    5.22      public String getDescription() {
    5.23          return description;
    5.24      }
    5.25 +
    5.26 +    public String getTestName() {
    5.27 +        return testName;
    5.28 +    }
    5.29  }
     6.1 --- a/testng/src/org/netbeans/modules/contrib/testng/output/XmlOutputParser.java	Thu Dec 22 02:04:53 2011 +0100
     6.2 +++ b/testng/src/org/netbeans/modules/contrib/testng/output/XmlOutputParser.java	Thu Dec 22 03:08:04 2011 +0100
     6.3 @@ -334,9 +334,8 @@
     6.4  
     6.5      private TestNGTestcase createTestcaseReport(String className, String name, int time) {
     6.6  //        TestNGTestcase tc = new TestNGTestcase(name, "TestNG Test", testSession);
     6.7 -        TestNGTestcase tc = new TestNGTestcase(name, "params", null, testSession);
     6.8 +        TestNGTestcase tc = new TestNGTestcase(className + "." + name, "params", null, testSession);
     6.9          tc.setTimeMillis(time);
    6.10 -        tc.setClassName(className);
    6.11          return tc;
    6.12      }
    6.13  }
     7.1 --- a/testng/test/unit/src/org/netbeans/modules/contrib/testng/output/XmlOutputParserTest.java	Thu Dec 22 02:04:53 2011 +0100
     7.2 +++ b/testng/test/unit/src/org/netbeans/modules/contrib/testng/output/XmlOutputParserTest.java	Thu Dec 22 03:08:04 2011 +0100
     7.3 @@ -74,7 +74,7 @@
     7.4          List<Testcase> testcases = result.getTestcases();
     7.5          assertEquals(3, testcases.size());
     7.6          Testcase[] tcs = testcases.toArray(new Testcase[3]);
     7.7 -        assertEquals("cTest", tcs[1].getName());
     7.8 +        assertEquals("test.FailPassSkipTest.cTest", tcs[1].getName());
     7.9  //        assertEquals(1, result.failures);
    7.10  //        assertEquals(1, result.skips);
    7.11  //        assertEquals(3, result.totalTests);
    7.12 @@ -91,7 +91,7 @@
    7.13          testcases = result.getTestcases();
    7.14          assertEquals(3, testcases.size());
    7.15          tcs = testcases.toArray(new Testcase[3]);
    7.16 -        assertEquals("setUp", tcs[0].getName());
    7.17 +        assertEquals("test.SetUpTest.setUp", tcs[0].getName());
    7.18  //        assertEquals(0, result.failures);
    7.19  //        assertEquals(1, result.skips);
    7.20  //        assertEquals(1, result.totalTests);