/******************************************************************************* * Copyright (c) 2012, 2014 Tasktop Technologies and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * 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 } } }