Author: [email protected]
Date: Tue Jun 23 17:40:28 2009
New Revision: 5617
Modified:
trunk/user/src/com/google/gwt/junit/client/GWTTestCase.java
trunk/user/src/com/google/gwt/junit/tools/GWTTestSuite.java
Log:
Allows GWTTestCase#getModuleName() to return null to indicate it should be
run as a normal JUnit tests case even though it extends GWTTestCase. See
the issue for the rationale.
Patch by: bruce
Review by: scottb, amitmanjhi
Issue: 3772
Modified: trunk/user/src/com/google/gwt/junit/client/GWTTestCase.java
==============================================================================
--- trunk/user/src/com/google/gwt/junit/client/GWTTestCase.java (original)
+++ trunk/user/src/com/google/gwt/junit/client/GWTTestCase.java Tue Jun 23
17:40:28 2009
@@ -118,7 +118,8 @@
* return the name of a module that will cause the source for that
subclass to
* be included.
*
- * @return the fully qualified name of a module
+ * @return the fully qualified name of a module, or <code>null</code> to
run
+ * as a non-GWT test case
*/
public abstract String getModuleName();
@@ -220,7 +221,14 @@
throw new IllegalArgumentException("GWTTestCases require a name; \""
+ this.toString()
+ "\" has none. Perhaps you used TestSuite.addTest() instead of
addTestClass()?");
}
- JUnitShell.runTest(getModuleName(), this, testResult);
+
+ String moduleName = getModuleName();
+ if (moduleName != null) {
+ JUnitShell.runTest(moduleName, this, testResult);
+ } else {
+ // Run as a non-GWT test
+ super.runTest();
+ }
}
/**
Modified: trunk/user/src/com/google/gwt/junit/tools/GWTTestSuite.java
==============================================================================
--- trunk/user/src/com/google/gwt/junit/tools/GWTTestSuite.java (original)
+++ trunk/user/src/com/google/gwt/junit/tools/GWTTestSuite.java Tue Jun 23
17:40:28 2009
@@ -76,22 +76,29 @@
} else {
return getModuleSuiteFor(suite.testAt(0));
}
- } else if (test instanceof GWTTestCase) {
+ }
+
+ if (test instanceof GWTTestCase) {
GWTTestCase gwtTest = (GWTTestCase) test;
- TestSuite suite = moduleSuites.get(gwtTest.getModuleName());
- if (suite == null) {
- suite = new TestSuite(gwtTest.getModuleName() + ".gwt.xml");
- moduleSuites.put(gwtTest.getModuleName(), suite);
- super.addTest(suite);
- }
- return suite;
- } else {
- if (nonGWTTestSuite == null) {
- nonGWTTestSuite = new TestSuite("Non-GWT");
- super.addTest(nonGWTTestSuite);
+ String moduleName = gwtTest.getModuleName();
+ if (moduleName != null) {
+ TestSuite suite = moduleSuites.get(moduleName);
+ if (suite == null) {
+ suite = new TestSuite(moduleName + ".gwt.xml");
+ moduleSuites.put(moduleName, suite);
+ super.addTest(suite);
+ }
+ return suite;
+ } else {
+ // Fall-through to group with non-GWT tests.
}
- return nonGWTTestSuite;
}
+
+ if (nonGWTTestSuite == null) {
+ nonGWTTestSuite = new TestSuite("Non-GWT");
+ super.addTest(nonGWTTestSuite);
+ }
+ return nonGWTTestSuite;
}
/**
--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---