diff --git a/groovy.support/manifest.mf b/groovy.support/manifest.mf
--- a/groovy.support/manifest.mf
+++ b/groovy.support/manifest.mf
@@ -3,5 +3,5 @@
OpenIDE-Module: org.netbeans.modules.groovy.support
OpenIDE-Module-Layer: org/netbeans/modules/groovy/support/resources/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/groovy/support/resources/Bundle.properties
-OpenIDE-Module-Specification-Version: 1.28
+OpenIDE-Module-Specification-Version: 1.29
OpenIDE-Module-Needs: javax.script.ScriptEngine.freemarker
diff --git a/groovy.support/nbproject/project.xml b/groovy.support/nbproject/project.xml
--- a/groovy.support/nbproject/project.xml
+++ b/groovy.support/nbproject/project.xml
@@ -74,7 +74,7 @@
1
- 1.28
+ 1.35
diff --git a/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyDebugMethodDebuggerProvider.java b/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyDebugMethodDebuggerProvider.java
--- a/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyDebugMethodDebuggerProvider.java
+++ b/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyDebugMethodDebuggerProvider.java
@@ -56,6 +56,11 @@
public class GroovyDebugMethodDebuggerProvider extends TestMethodDebuggerProvider {
@Override
+ public boolean isTestClass(Node activatedNode) {
+ return TestMethodUtil.isTestClass(activatedNode);
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
return TestMethodUtil.canHandle(activatedNode);
}
diff --git a/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyTestMethodRunnerProvider.java b/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyTestMethodRunnerProvider.java
--- a/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyTestMethodRunnerProvider.java
+++ b/groovy.support/src/org/netbeans/modules/groovy/support/actions/GroovyTestMethodRunnerProvider.java
@@ -56,6 +56,11 @@
public class GroovyTestMethodRunnerProvider extends TestMethodRunnerProvider {
@Override
+ public boolean isTestClass(Node activatedNode) {
+ return TestMethodUtil.isTestClass(activatedNode);
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
return TestMethodUtil.canHandle(activatedNode);
}
diff --git a/groovy.support/src/org/netbeans/modules/groovy/support/actions/TestMethodUtil.java b/groovy.support/src/org/netbeans/modules/groovy/support/actions/TestMethodUtil.java
--- a/groovy.support/src/org/netbeans/modules/groovy/support/actions/TestMethodUtil.java
+++ b/groovy.support/src/org/netbeans/modules/groovy/support/actions/TestMethodUtil.java
@@ -68,6 +68,17 @@
private static final Logger LOGGER = Logger.getLogger(TestMethodUtil.class.getName());
private Reference resolver;
+ static boolean isTestClass(Node activatedNode) {
+ FileObject fo = getFileObjectFromNode(activatedNode);
+ if (fo != null) {
+ if (!isGroovyFile(fo)) {
+ return false;
+ }
+ //TODO add more checks here when action gets enabled?
+ }
+ return false;
+ }
+
static SingleMethod getTestMethod(Document doc, int cursor){
SingleMethod sm = null;
if (doc != null){
diff --git a/gsf.testrunner/apichanges.xml b/gsf.testrunner/apichanges.xml
--- a/gsf.testrunner/apichanges.xml
+++ b/gsf.testrunner/apichanges.xml
@@ -73,6 +73,22 @@
+
+
+ Method to determine if a node is a test class.
+
+
+
+
+
+ Added new method in order to determine if a selected node is a test class.
+ Clients can conditionally enable the "Run/Debug Focused Test Method"
+ popup menu item in a file in editor.
+
+
+
+
+
API to open the configuration dialog when creating tests
diff --git a/gsf.testrunner/manifest.mf b/gsf.testrunner/manifest.mf
--- a/gsf.testrunner/manifest.mf
+++ b/gsf.testrunner/manifest.mf
@@ -3,5 +3,5 @@
OpenIDE-Module: org.netbeans.modules.gsf.testrunner/1
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/gsf/testrunner/Bundle.properties
OpenIDE-Module-Layer: org/netbeans/modules/gsf/testrunner/layer.xml
-OpenIDE-Module-Specification-Version: 1.34
+OpenIDE-Module-Specification-Version: 1.35
diff --git a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodDebuggerAction.java b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodDebuggerAction.java
--- a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodDebuggerAction.java
+++ b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodDebuggerAction.java
@@ -131,11 +131,13 @@
if(debugMethodTask != null && !debugMethodTask.isFinished()) {
return false;
}
- String displayName = activatedNodes[0].getDisplayName();
- if (!displayName.endsWith("Test.java") && !displayName.endsWith("IT.java")) { // NOI18N
- return false;
+ Collection extends TestMethodDebuggerProvider> providers = Lookup.getDefault().lookupAll(TestMethodDebuggerProvider.class);
+ for (TestMethodDebuggerProvider provider : providers) {
+ if (provider.isTestClass(activatedNodes[0])) {
+ return true;
+ }
}
- return true;
+ return false;
}
}
diff --git a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodRunnerAction.java b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodRunnerAction.java
--- a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodRunnerAction.java
+++ b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/TestMethodRunnerAction.java
@@ -127,11 +127,13 @@
if(runMethodTask != null && !runMethodTask.isFinished()) {
return false;
}
- String displayName = activatedNodes[0].getDisplayName();
- if (!displayName.endsWith("Test.java") && !displayName.endsWith("IT.java")) { // NOI18N
- return false;
+ Collection extends TestMethodRunnerProvider> providers = Lookup.getDefault().lookupAll(TestMethodRunnerProvider.class);
+ for (TestMethodRunnerProvider provider : providers) {
+ if (provider.isTestClass(activatedNodes[0])) {
+ return true;
+ }
}
- return true;
+ return false;
}
}
diff --git a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodDebuggerProvider.java b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodDebuggerProvider.java
--- a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodDebuggerProvider.java
+++ b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodDebuggerProvider.java
@@ -75,6 +75,19 @@
public abstract SingleMethod getTestMethod(Document doc, int caret);
+ /**
+ * Return true
if selected {@link Node} is a test class, enabling
+ * the "Debug Focused Test Method" popup menu item in editor. It should return fast.
+ * The default implementation returns true
.
+ * @param activatedNode the selected node.
+ * @return true
if selected {@link Node} is a test class,
+ * false
otherwise.
+ * @since 1.35
+ */
+ public boolean isTestClass(Node activatedNode) {
+ return true;
+ }
+
public final void debugTestMethod(Node activatedNode) {
final Node activeNode = activatedNode;
final Document doc;
diff --git a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodRunnerProvider.java b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodRunnerProvider.java
--- a/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodRunnerProvider.java
+++ b/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/api/TestMethodRunnerProvider.java
@@ -74,6 +74,19 @@
public abstract boolean canHandle(Node activatedNode);
public abstract SingleMethod getTestMethod(Document doc, int caret);
+
+ /**
+ * Return true
if selected {@link Node} is a test class, enabling
+ * the "Run Focused Test Method" popup menu item in editor. It should return fast.
+ * The default implementation returns true
.
+ * @param activatedNode the selected node.
+ * @return true
if selected {@link Node} is a test class,
+ * false
otherwise.
+ * @since 1.35
+ */
+ public boolean isTestClass(Node activatedNode) {
+ return true;
+ }
@NbBundle.Messages({"Search_For_Test_Method=Searching for test method",
"No_Test_Method_Found=No test method found"})
diff --git a/junit/manifest.mf b/junit/manifest.mf
--- a/junit/manifest.mf
+++ b/junit/manifest.mf
@@ -2,6 +2,6 @@
OpenIDE-Module: org.netbeans.modules.junit/2
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/junit/Bundle.properties
OpenIDE-Module-Layer: org/netbeans/modules/junit/resources/layer.xml
-OpenIDE-Module-Specification-Version: 2.58
+OpenIDE-Module-Specification-Version: 2.59
OpenIDE-Module-Needs: javax.script.ScriptEngine.freemarker
AutoUpdate-Show-In-Client: false
diff --git a/junit/nbproject/project.xml b/junit/nbproject/project.xml
--- a/junit/nbproject/project.xml
+++ b/junit/nbproject/project.xml
@@ -131,7 +131,7 @@
1
- 1.26
+ 1.35
diff --git a/junit/src/org/netbeans/modules/junit/actions/JUnitMethodDebuggerProvider.java b/junit/src/org/netbeans/modules/junit/actions/JUnitMethodDebuggerProvider.java
--- a/junit/src/org/netbeans/modules/junit/actions/JUnitMethodDebuggerProvider.java
+++ b/junit/src/org/netbeans/modules/junit/actions/JUnitMethodDebuggerProvider.java
@@ -66,6 +66,15 @@
public class JUnitMethodDebuggerProvider extends TestMethodDebuggerProvider {
private static final Logger LOGGER = Logger.getLogger(JUnitMethodDebuggerProvider.class.getName());
+
+ @Override
+ public boolean isTestClass(Node activatedNode) {
+ String displayName = activatedNode.getDisplayName();
+ if (!displayName.endsWith("Test.java") && !displayName.endsWith("IT.java")) { // NOI18N
+ return false;
+ }
+ return true;
+ }
@Override
public SingleMethod getTestMethod(Document doc, int cursor){
diff --git a/junit/src/org/netbeans/modules/junit/actions/JUnitMethodRunnerProvider.java b/junit/src/org/netbeans/modules/junit/actions/JUnitMethodRunnerProvider.java
--- a/junit/src/org/netbeans/modules/junit/actions/JUnitMethodRunnerProvider.java
+++ b/junit/src/org/netbeans/modules/junit/actions/JUnitMethodRunnerProvider.java
@@ -66,6 +66,15 @@
public class JUnitMethodRunnerProvider extends TestMethodRunnerProvider {
private static final Logger LOGGER = Logger.getLogger(JUnitMethodRunnerProvider.class.getName());
+
+ @Override
+ public boolean isTestClass(Node activatedNode) {
+ String displayName = activatedNode.getDisplayName();
+ if (!displayName.endsWith("Test.java") && !displayName.endsWith("IT.java")) { // NOI18N
+ return false;
+ }
+ return true;
+ }
@Override
public SingleMethod getTestMethod(Document doc, int cursor){
diff --git a/php.project/manifest.mf b/php.project/manifest.mf
--- a/php.project/manifest.mf
+++ b/php.project/manifest.mf
@@ -1,6 +1,6 @@
Manifest-Version: 1.0
AutoUpdate-Show-In-Client: false
-OpenIDE-Module-Specification-Version: 2.87
+OpenIDE-Module-Specification-Version: 2.88
OpenIDE-Module: org.netbeans.modules.php.project
OpenIDE-Module-Layer: org/netbeans/modules/php/project/resources/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/php/project/resources/Bundle.properties
diff --git a/php.project/nbproject/project.xml b/php.project/nbproject/project.xml
--- a/php.project/nbproject/project.xml
+++ b/php.project/nbproject/project.xml
@@ -205,7 +205,7 @@
1
- 1.33
+ 1.35
diff --git a/php.project/src/org/netbeans/modules/php/project/ui/actions/support/TestSingleMethodSupport.java b/php.project/src/org/netbeans/modules/php/project/ui/actions/support/TestSingleMethodSupport.java
--- a/php.project/src/org/netbeans/modules/php/project/ui/actions/support/TestSingleMethodSupport.java
+++ b/php.project/src/org/netbeans/modules/php/project/ui/actions/support/TestSingleMethodSupport.java
@@ -64,6 +64,21 @@
private TestSingleMethodSupport() {
}
+ public static boolean isTestClass(Node activatedNode) {
+ FileObject fileObject = CommandUtils.getFileObject(activatedNode);
+ if (fileObject == null) {
+ return false;
+ }
+ PhpProject project = PhpProjectUtils.getPhpProject(fileObject);
+ if (project == null) {
+ return false;
+ }
+ if(CommandUtils.isUnderTests(project, fileObject, false)) {
+ return true;
+ }
+ return false;
+ }
+
public static boolean canHandle(Node activatedNode) {
FileObject fileObject = CommandUtils.getFileObject(activatedNode);
if (fileObject == null) {
diff --git a/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodDebuggerProvider.java b/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodDebuggerProvider.java
--- a/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodDebuggerProvider.java
+++ b/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodDebuggerProvider.java
@@ -61,6 +61,11 @@
public class PhpTestMethodDebuggerProvider extends TestMethodDebuggerProvider {
@Override
+ public boolean isTestClass(Node activatedNode) {
+ return TestSingleMethodSupport.isTestClass(activatedNode);
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
return TestSingleMethodSupport.canHandle(activatedNode);
}
diff --git a/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodRunnerProvider.java b/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodRunnerProvider.java
--- a/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodRunnerProvider.java
+++ b/php.project/src/org/netbeans/modules/php/project/ui/actions/tests/PhpTestMethodRunnerProvider.java
@@ -61,6 +61,11 @@
public class PhpTestMethodRunnerProvider extends TestMethodRunnerProvider {
@Override
+ public boolean isTestClass(Node activatedNode) {
+ return TestSingleMethodSupport.isTestClass(activatedNode);
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
return TestSingleMethodSupport.canHandle(activatedNode);
}
diff --git a/testng/manifest.mf b/testng/manifest.mf
--- a/testng/manifest.mf
+++ b/testng/manifest.mf
@@ -3,4 +3,4 @@
OpenIDE-Module: org.netbeans.modules.testng
OpenIDE-Module-Layer: org/netbeans/modules/testng/resources/layer.xml
OpenIDE-Module-Localizing-Bundle: org/netbeans/modules/testng/Bundle.properties
-OpenIDE-Module-Specification-Version: 2.9
+OpenIDE-Module-Specification-Version: 2.10
diff --git a/testng/nbproject/project.xml b/testng/nbproject/project.xml
--- a/testng/nbproject/project.xml
+++ b/testng/nbproject/project.xml
@@ -168,7 +168,7 @@
1
- 1.31
+ 1.35
diff --git a/testng/src/org/netbeans/modules/testng/actions/TestNGMethodDebuggerProvider.java b/testng/src/org/netbeans/modules/testng/actions/TestNGMethodDebuggerProvider.java
--- a/testng/src/org/netbeans/modules/testng/actions/TestNGMethodDebuggerProvider.java
+++ b/testng/src/org/netbeans/modules/testng/actions/TestNGMethodDebuggerProvider.java
@@ -68,6 +68,15 @@
private static final Logger LOGGER = Logger.getLogger(TestNGMethodDebuggerProvider.class.getName());
@Override
+ public boolean isTestClass(Node activatedNode) {
+ String displayName = activatedNode.getDisplayName();
+ if (!displayName.endsWith("Test.java")) { // NOI18N
+ return false;
+ }
+ return true;
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
FileObject fileO = CommonTestUtil.getFileObjectFromNode(activatedNode);
if (fileO != null) {
diff --git a/testng/src/org/netbeans/modules/testng/actions/TestNGMethodRunnerProvider.java b/testng/src/org/netbeans/modules/testng/actions/TestNGMethodRunnerProvider.java
--- a/testng/src/org/netbeans/modules/testng/actions/TestNGMethodRunnerProvider.java
+++ b/testng/src/org/netbeans/modules/testng/actions/TestNGMethodRunnerProvider.java
@@ -68,6 +68,15 @@
private static final Logger LOGGER = Logger.getLogger(TestNGMethodRunnerProvider.class.getName());
@Override
+ public boolean isTestClass(Node activatedNode) {
+ String displayName = activatedNode.getDisplayName();
+ if (!displayName.endsWith("Test.java")) { // NOI18N
+ return false;
+ }
+ return true;
+ }
+
+ @Override
public boolean canHandle(Node activatedNode) {
FileObject fileO = CommonTestUtil.getFileObjectFromNode(activatedNode);
if (fileO != null) {