Bug 25014 JUnit TestCase Wizard accepts empty string as test case name[junit]
Version: 2.0 Build id: 200210161553 The JUnit TestCase wizard accepts empty string as the test case name when there is no Java class currently selected. Steps for reproducing the error: 1 - Ensure there is no class currently selected in the Package Explorer (e.g. select a package or project); 2 - Activate New JUnit TestCase wizard; 3 - There will be no test case name selected. The "Finish" button will be disabled. Then erase the "Superclass" field content. The "Finish" button will be enabled. This opens a dialog with a message "Creation of element failed. Reason: Invalid name specified: .java" and a new entry is added to the error log. The stack trace will be attached.
org.eclipse.jdt.junit/src/org/eclipse/jdt/internal/junit/wizards/NewTestCaseCreationWizardPage.java
if (param.endsWith((new Character(Signature.C_NAME_END)).toString() ))
							end--;
						
						if (param.startsWith((new Character(Signature.C_UNRESOLVED)).toString() ,start)
							|| param.startsWith((new Character(Signature.C_RESOLVED)).toString() ,start))
							start++;
						String paramName= param.substring(start, end);
						
						if (paramName.indexOf('.') != -1) {
							start += paramName.lastIndexOf('.')+1;
						}
						methodName.append(param.substring(start, end));
						if (param.startsWith( (new Character(Signature.C_ARRAY)).toString() ))
							methodName.append("Array"); 
					}
				}
				/* Should I for examples have methods
				 * 	void foo(java.lang.StringBuffer sb) {}
				 *  void foo(mypackage1.StringBuffer sb) {}
				 *  void foo(mypackage2.StringBuffer sb) {}
				 * I will get in the test class:
				 *  testFooStringBuffer()
				 *  testFooStringBuffer1()
				 *  testFooStringBuffer2()
				 */
				if (newMethodsNames.contains(methodName.toString())) {
					int suffix= 1;
					while (newMethodsNames.contains(methodName.toString() + Integer.toString(suffix)))
						suffix++;
					methodName.append(Integer.toString(suffix));