blob: 7154b089e853777f5905098863ccb61e8d5aabf9 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2012, 2014 Tasktop Technologies and others.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* https://www.eclipse.org/legal/epl-2.0
*
* SPDX-License-Identifier: EPL-2.0
*
* Tasktop Technologies - initial API and implementation
*******************************************************************************/
package org.eclipse.mylyn.commons.tests.workbench.browser;
import junit.framework.TestCase;
import org.eclipse.mylyn.commons.sdk.util.CommonTestUtil;
import org.eclipse.mylyn.commons.workbench.WorkbenchUtil;
import org.eclipse.mylyn.commons.workbench.browser.WebBrowserDialog;
import org.eclipse.swt.browser.Browser;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Text;
public class WebBrowserDialogTest extends TestCase {
private class TestWebBrowserDialog extends WebBrowserDialog {
private Composite parent;
public TestWebBrowserDialog(Shell parentShell, String dialogTitle, Image dialogTitleImage,
String dialogMessage, int dialogImageType, String[] dialogButtonLabels, int defaultIndex) {
super(parentShell, dialogTitle, dialogTitleImage, dialogMessage, dialogImageType, dialogButtonLabels,
defaultIndex);
}
@Override
public Control createCustomArea(Composite parent) {
this.parent = parent;
return super.createCustomArea(parent);
}
public Composite getParent() {
return parent;
}
}
public void testCreate() {
if (CommonTestUtil.skipBrowserTests()) {
System.err.println("Skipping WebBrowserDialogTest.testCreate()");
return;
}
TestWebBrowserDialog dialog = new TestWebBrowserDialog(WorkbenchUtil.getShell(), "title", null, "message", 0,
new String[0], 0);
dialog.create();
assertEquals(3, dialog.getParent().getChildren().length);
assertEquals(Text.class, dialog.getParent().getChildren()[0].getClass());
assertEquals(Browser.class, dialog.getParent().getChildren()[1].getClass());
assertEquals(Label.class, dialog.getParent().getChildren()[2].getClass());
}
public void testSetShow() {
if (CommonTestUtil.skipBrowserTests()) {
System.err.println("Skipping WebBrowserDialogTest.testSetShow()");
return;
}
TestWebBrowserDialog dialog = new TestWebBrowserDialog(WorkbenchUtil.getShell(), "title", null, "message", 0,
new String[0], 0);
dialog.setShowLocation(false);
dialog.setShowStatus(false);
dialog.create();
assertEquals(1, dialog.getParent().getChildren().length);
assertEquals(Browser.class, dialog.getParent().getChildren()[0].getClass());
}
public void testSetShowAfterCreate() {
if (CommonTestUtil.skipBrowserTests()) {
System.err.println("Skipping WebBrowserDialogTest.testSetShowAfterCreate()");
return;
}
WebBrowserDialog dialog = new WebBrowserDialog(WorkbenchUtil.getShell(), "title", null, "message", 0,
new String[0], 0);
dialog.create();
try {
dialog.setShowLocation(false);
fail("Expected exception");
} catch (IllegalStateException e) {
// expected
}
try {
dialog.setShowStatus(false);
fail("Expected exception");
} catch (IllegalStateException e) {
// expected
}
}
}