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
gd.heightHint = SWTUtil.getButtonHeigthHint(fClassToTestButton);
		gd.widthHint = SWTUtil.getButtonWidthHint(fClassToTestButton);		
		fClassToTestButton.setLayoutData(gd);
	}
	private void classToTestButtonPressed() {
		IType type= chooseClassToTestType();
		if (type != null) {
			fClassToTestText.setText(JavaModelUtil.getFullyQualifiedName(type));
			handleFieldChanged(CLASS_TO_TEST);
		}
	}
	private IType chooseClassToTestType() {
		IPackageFragmentRoot root= getPackageFragmentRoot();
		if (root == null) 
			return null;
		IJavaElement[] elements= new IJavaElement[] { root.getJavaProject() };
		IJavaSearchScope scope= SearchEngine.createJavaSearchScope(elements);
		
		IType type= null;
		try {
			SelectionDialog dialog= JavaUI.createTypeDialog(getShell(), getWizard().getContainer(), scope, IJavaElementSearchConstants.CONSIDER_CLASSES, false, null);
			dialog.setTitle(WizardMessages.getString("NewTestClassWizPage.class_to_test.dialog.title")); 
			dialog.setMessage(WizardMessages.getString("NewTestClassWizPage.class_to_test.dialog.message")); 
			dialog.open();
			if (dialog.getReturnCode() != SelectionDialog.OK)
				return type;
			else {
				Object[] resultArray= dialog.getResult();
				if (resultArray != null && resultArray.length > 0)
					type= (IType) resultArray[0];