blob: d6fe6bb4611850e2d7191f675686dccc3ab0c617 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.dialogs;
import java.util.ResourceBundle;
import junit.framework.TestCase;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.jface.dialogs.IDialogConstants;
import org.eclipse.jface.dialogs.MessageDialog;
import org.eclipse.jface.resource.JFaceResources;
import org.eclipse.ui.internal.WorkbenchMessages;
import org.eclipse.ui.tests.util.DialogCheck;
public class UIMessageDialogs extends TestCase {
private static final String DUMMY_RESOURCE = "Dummy.resource";
private static final String DUMMY_PROJECT = "DummyProject";
private static final String DUMMY_ABSOLUTE_PATH = "C:\\Dummypath\\Dummy.resource";
private static final String DUMMY_RELATIVE_PATH = "\\" + DUMMY_PROJECT + "\\" + DUMMY_RESOURCE;
public UIMessageDialogs(String name) {
super(name);
}
private Shell getShell() {
return DialogCheck.getShell();
}
/**
* Returns the given string from the Text Editor's resource bundle.
* Should call org.eclipse.ui.texteditor.EditorMessages directly,
* but it has package visibility.
*/
private String getEditorString(String id) {
ResourceBundle bundle = ResourceBundle.getBundle("org.eclipse.ui.texteditor.EditorMessages");
assertNotNull("EditorMessages", bundle);
String string = bundle.getString(id);
assertNotNull(id, string);
return string;
}
/*
* Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openConfirm.
* The method will return the dialog instead of opening.
* @param title the dialog's title, or <code>null</code> if none.
* @param message the message.
* @return Dialog the confirm dialog.
*/
private MessageDialog getConfirmDialog(String title, String message) {
return new MessageDialog(
getShell(),
title,
null,
message,
MessageDialog.QUESTION,
new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
0);
}
/*
* Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openError.
* The method will return the dialog instead of opening.
* @param title the dialog's title, or <code>null</code> if none.
* @param message the message.
* @return MessageDialog the error confirm dialog.
*/
private MessageDialog getErrorDialog(String title, String message) {
return new MessageDialog(
getShell(),
title,
null,
message,
MessageDialog.ERROR,
new String[] {IDialogConstants.OK_LABEL},
0);
}
/*
* Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openInformation.
* The method will return the dialog instead of opening.
* @param title the dialog's title, or <code>null</code> if none.
* @param message the message.
* @return MessageDialog the information dialog.
*/
private MessageDialog getInformationDialog(String title, String message) {
return new MessageDialog(
getShell(),
title,
null,
message,
MessageDialog.INFORMATION,
new String[] { IDialogConstants.OK_LABEL },
0);
}
/*
* Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::openQuestion.
* The method will return the dialog instead of opening.
* @param title the dialog's title, or <code>null</code> if none.
* @param message the message.
* @return MessageDialog the question dialog.
*/
private MessageDialog getQuestionDialog(String title, String message) {
return new MessageDialog(
getShell(),
title,
null,
message,
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL},
0);
}
/*
* Convenience method simliar to org.eclipse.jface.dialogs.MessageDialog::getWarningDialog.
* The method will return the dialog instead of opening.
* @param title the dialog's title, or <code>null</code> if none.
* @param message the message.
* @return MessageDialog the confirm dialog.
*/
private MessageDialog getWarningDialog(String title, String message) {
return new MessageDialog(
getShell(),
title,
null,
message,
MessageDialog.WARNING,
new String[] {IDialogConstants.OK_LABEL},
0);
}
public void testAbortPageFlipping() {
Dialog dialog = getWarningDialog(
JFaceResources.getString("AbortPageFlippingDialog.title"),
JFaceResources.getString("AbortPageFlippingDialog.message") );
DialogCheck.assertDialog(dialog, this);
}
public void testCloseFileDeleted() {
Dialog dialog = getConfirmDialog(
getEditorString("Editor.error.activated.deleted.close.title"),
getEditorString("Editor.error.activated.deleted.close.message") );
DialogCheck.assertDialog(dialog, this);
}
public void testCopyOverwrite() {
Dialog dialog = getQuestionDialog(
WorkbenchMessages.getString("CopyResourceAction.resourceExists"),
WorkbenchMessages.format("CopyResourceAction.overwriteQuestion", new Object[] {DUMMY_RELATIVE_PATH}) );
DialogCheck.assertDialog(dialog, this);
}
public void testDeleteProject() {
String title = WorkbenchMessages.getString("DeleteResourceAction.titleProject");
String msg = WorkbenchMessages.format("DeleteResourceAction.confirmProject1", new Object[] {DUMMY_PROJECT, DUMMY_ABSOLUTE_PATH});
Dialog dialog = new MessageDialog(
getShell(),
title,
null, // accept the default window icon
msg,
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testDeleteReadOnlyCheck() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("DeleteResourceAction.checkDelete"),
null,
WorkbenchMessages.format("DeleteResourceAction.readOnlyQuestion", new Object[] {DUMMY_RESOURCE}),
MessageDialog.QUESTION,
new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.YES_TO_ALL_LABEL,
IDialogConstants.NO_LABEL,
IDialogConstants.CANCEL_LABEL },
0);
DialogCheck.assertDialog(dialog, this);
}
public void testDeleteResource() {
Dialog dialog = getQuestionDialog(
WorkbenchMessages.getString("DeleteResourceAction.title"),
WorkbenchMessages.format("DeleteResourceAction.confirm1", new Object[] {DUMMY_RESOURCE}) );
DialogCheck.assertDialog(dialog, this);
}
public void testDeleteResources() {
Dialog dialog = getQuestionDialog(
WorkbenchMessages.getString("DeleteResourceAction.title"),
WorkbenchMessages.format("DeleteResourceAction.confirmN", new Object[] {DUMMY_RESOURCE}) );
DialogCheck.assertDialog(dialog, this);
}
public void testDropOverwrite() {
Dialog dialog = new MessageDialog(
getShell(),
ResourceNavigatorMessagesCopy.getString("DropAdapter.question"),
null,
ResourceNavigatorMessagesCopy.format("DropAdapter.overwriteQuery", new Object[] {DUMMY_RELATIVE_PATH}),
MessageDialog.QUESTION,
new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.YES_TO_ALL_LABEL,
IDialogConstants.NO_LABEL,
IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testErrorClosing() {
Dialog dialog = getQuestionDialog(
WorkbenchMessages.getString("Error"),
WorkbenchMessages.getString("ErrorClosingNoArg") );
DialogCheck.assertDialog(dialog, this);
}
public void testFileChanged() {
MessageDialog dialog = getQuestionDialog(
getEditorString("Editor.error.activated.outofsync.title"),
getEditorString("Editor.error.activated.outofsync.message") );
DialogCheck.assertDialog(dialog, this);
}
public void testFileExtensionEmpty() {
Dialog dialog = getInformationDialog(
WorkbenchMessages.getString("FileEditorPreference.extensionEmptyTitle"),
WorkbenchMessages.getString("FileEditorPreference.extensionEmptyMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testFileNameWrong() {
Dialog dialog = getInformationDialog(
WorkbenchMessages.getString("FileEditorPreference.fileNameInvalidTitle"),
WorkbenchMessages.getString("FileEditorPreference.fileNameInvalidMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testFileTypeExists() {
Dialog dialog = getInformationDialog(
WorkbenchMessages.getString("FileEditorPreference.existsTitle"),
WorkbenchMessages.getString("FileEditorPreference.existsMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testInvalidType_1() {
Dialog dialog = getWarningDialog(
WorkbenchMessages.getString("FileExtension.invalidTitle"),
WorkbenchMessages.getString("FileExtension.invalidMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testInvalidType_2() {
Dialog dialog = getWarningDialog(
WorkbenchMessages.getString("FileExtension.invalidType"),
WorkbenchMessages.getString("FileExtension.invalidTypeMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testMoveReadOnlyCheck() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("MoveResourceAction.title"),
null,
WorkbenchMessages.format("MoveResourceAction.checkMoveMessage", new Object[] {DUMMY_RESOURCE}),
MessageDialog.QUESTION,
new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.YES_TO_ALL_LABEL,
IDialogConstants.NO_LABEL,
IDialogConstants.CANCEL_LABEL },
0);
DialogCheck.assertDialog(dialog, this);
}
/*
public void testNoBuilders() {
Dialog dialog = getWarningDialog(
WorkbenchMessages.getString("BuildAction.warning"),
WorkbenchMessages.getString("BuildAction.noBuilders") );
DialogCheck.assertDialog(dialog, this);
}
*/
/*
public void testNoGlobalBuildersDialog() {
Dialog dialog = getWarningDialog(
WorkbenchMessages.getString("GlobalBuildAction.warning"),
WorkbenchMessages.getString("GlobalBuildAction.noBuilders") );
DialogCheck.assertDialog(dialog, this);
}
*/
public void testNoPropertyPage() {
Dialog dialog = getInformationDialog(
WorkbenchMessages.getString("PropertyDialog.messageTitle"),
WorkbenchMessages.format("PropertyDialog.noPropertyMessage", new Object[] {"DummyPropertyPage"}) );
DialogCheck.assertDialog(dialog, this);
}
public void testNoSelectedExportResources() {
Dialog dialog = getInformationDialog(
DataTransferMessagesCopy.getString("DataTransfer.information"),
DataTransferMessagesCopy.getString("FileExport.noneSelected") );
DialogCheck.assertDialog(dialog, this);
}
public void testNoSelectedImportResources() {
Dialog dialog = getInformationDialog(
DataTransferMessagesCopy.getString("DataTransfer.information"),
DataTransferMessagesCopy.getString("FileImport.noneSelected") );
DialogCheck.assertDialog(dialog, this);
}
public void testOperationNotAvailable() {
Dialog dialog = getInformationDialog(
WorkbenchMessages.getString("Information"),
WorkbenchMessages.getString("PluginActino.operationNotAvailableMessage") );
DialogCheck.assertDialog(dialog, this);
}
public void testOverwritePerspective() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("SavePerspective.overwriteTitle"),
null,
WorkbenchMessages.format("SavePerspective.overwriteQuestion", new Object[] {"Dummy Perspective"}),
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testRefreshDeleteProject() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("RefreshAction.dialogTitle"),
null,
WorkbenchMessages.format("RefreshAction.locationDeletedMessage", new Object[] {DUMMY_PROJECT, "c:\\dummypath\\" + DUMMY_PROJECT}),
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL},
0);
DialogCheck.assertDialogTexts(dialog, this);
DialogCheck.assertDialog(dialog, this);
}
public void testRenameOverwrite() {
Dialog dialog = getQuestionDialog(
WorkbenchMessages.getString("RenameResourceAction.resourceExists"),
WorkbenchMessages.format("RenameResourceAction.overwriteQuestion", new Object[] {DUMMY_RELATIVE_PATH}) );
DialogCheck.assertDialog(dialog, this);
}
public void testResetPerspective() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("ResetPerspective.title"),
null,
WorkbenchMessages.format("ResetPerspective.message", new Object[] {"Dummy Perspective"}),
MessageDialog.QUESTION,
new String[] {IDialogConstants.OK_LABEL, IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testSaveAsOverwrite() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("Question"),
null,
WorkbenchMessages.format("SaveAsDialog.overwriteQuestion", new Object[] {DUMMY_RELATIVE_PATH}),
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testSaveChanges() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("Save_Resource"),
null,
WorkbenchMessages.format("EditorManager.saveChangesQuestion", new Object[] {DUMMY_RESOURCE}),
MessageDialog.QUESTION,
new String[] {IDialogConstants.YES_LABEL, IDialogConstants.NO_LABEL, IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testSaveFileDeleted() {
MessageDialog dialog = new MessageDialog(
getShell(),
getEditorString("Editor.error.activated.deleted.save.title"),
null,
getEditorString("Editor.error.activated.deleted.save.message"),
MessageDialog.QUESTION,
new String[] {
getEditorString("Editor.error.activated.deleted.save.button.save"),
getEditorString("Editor.error.activated.deleted.save.button.close")},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testUpdateConflict() {
MessageDialog dialog = getQuestionDialog(
getEditorString("Editor.error.save.outofsync.title"),
getEditorString("Editor.error.save.outofsync.message") );
DialogCheck.assertDialog(dialog, this);
}
public void testWizardClosing() {
Dialog dialog = new MessageDialog(
getShell(),
JFaceResources.getString("WizardClosingDialog.title"),
null,
JFaceResources.getString("WizardClosingDialog.message"),
MessageDialog.QUESTION,
new String[] {IDialogConstants.OK_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
public void testWizardOverwrite() {
Dialog dialog = new MessageDialog(
getShell(),
WorkbenchMessages.getString("Question"),
null,
WorkbenchMessages.format("WizardDataTransfer.existsQuestion", new Object[] {DUMMY_ABSOLUTE_PATH}),
MessageDialog.QUESTION,
new String[] {
IDialogConstants.YES_LABEL,
IDialogConstants.YES_TO_ALL_LABEL,
IDialogConstants.NO_LABEL,
IDialogConstants.CANCEL_LABEL},
0);
DialogCheck.assertDialog(dialog, this);
}
}