blob: 5eb9f1fb214494a4e30ea8acbf89bb60654abfa2 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005 IBM Corporation 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:
* IBM Corporation - Initial API and implementation
*******************************************************************************/
package org.eclipse.ui.tests.browser.internal;
import junit.framework.Test;
import junit.framework.TestCase;
import org.eclipse.jface.dialogs.Dialog;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Control;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.ui.PlatformUI;
import org.eclipse.ui.internal.browser.BrowserViewer;
public class ToolbarBrowserTestCase extends TestCase {
protected static Dialog dialog;
protected static Shell shell;
protected static BrowserViewer browser;
class TestToolbarBrowser extends BrowserViewer {
public TestToolbarBrowser(Composite parent, int style) {
super(parent, style);
}
public void testProtectedMethods() {
super.addToHistory("www.eclispe.org");
super.updateBackNextBusy();
super.updateHistory();
super.updateLocation();
}
}
public static Test suite() {
return new OrderedTestSuite(ToolbarBrowserTestCase.class, "ToolbarBrowserTestCase");
}
public void test00Open() throws Exception {
shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
dialog = new Dialog(shell) {
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
browser = new BrowserViewer(composite, BrowserViewer.LOCATION_BAR | BrowserViewer.BUTTON_BAR);
GridData data = new GridData(GridData.FILL_BOTH);
data.widthHint = 400;
data.heightHint = 400;
browser.setLayoutData(data);
return composite;
}
};
dialog.setBlockOnOpen(false);
dialog.open();
boolean b = Display.getCurrent().readAndDispatch();
while (b)
b = Display.getCurrent().readAndDispatch();
}
public void test01SetURL() throws Exception {
runLoopTimer(5);
browser.setURL("http://www.eclipse.org");
runLoopTimer(10);
}
public void test02Home() throws Exception {
browser.home();
runLoopTimer(2);
}
public void test03SetURL() throws Exception {
browser.setURL("http://www.eclipse.org/webtools/index.html");
runLoopTimer(10);
}
public void test04IsBackEnabled() throws Exception {
assertTrue(browser.isBackEnabled());
}
public void test05Back() throws Exception {
assertTrue(browser.back());
runLoopTimer(5);
}
public void test06IsForwardEnabled() throws Exception {
assertTrue(browser.isForwardEnabled());
}
public void test07Forward() throws Exception {
assertTrue(browser.forward());
runLoopTimer(5);
}
public void test08Refresh() throws Exception {
browser.refresh();
}
public void test09GetBrowser() throws Exception {
assertNotNull(browser.getBrowser());
}
public void test10Stop() throws Exception {
browser.stop();
}
public void test11GetURL() throws Exception {
assertNotNull(browser.getURL());
}
public void test12SetFocus() throws Exception {
browser.setFocus();
}
public void test13Close() throws Exception {
dialog.close();
}
TestToolbarBrowser ttb = null;
public void test14ProtectedMethods() {
shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
dialog = new Dialog(shell) {
protected Control createDialogArea(Composite parent) {
Composite composite = (Composite) super.createDialogArea(parent);
ttb = new TestToolbarBrowser(composite, BrowserViewer.LOCATION_BAR | BrowserViewer.BUTTON_BAR);
GridData data = new GridData(GridData.FILL_BOTH);
data.widthHint = 400;
data.heightHint = 400;
ttb.setLayoutData(data);
return composite;
}
};
dialog.setBlockOnOpen(false);
dialog.open();
ttb.testProtectedMethods();
dialog.close();
}
public void test15Listeners() {
BrowserViewer.IBackNextListener listener = new BrowserViewer.IBackNextListener() {
public void updateBackNextBusy() {
// ignore
}
};
listener.updateBackNextBusy();
}
public void test16Listeners() {
BrowserViewer.ILocationListener listener = new BrowserViewer.ILocationListener() {
public void locationChanged(String url) {
// ignore
}
public void historyChanged(String[] history2) {
// ignore
}
};
listener.locationChanged(null);
listener.historyChanged(null);
}
void runLoopTimer(final int seconds) {
final boolean[] exit = {false};
new Thread() {
public void run() {
try {
Thread.sleep(seconds * 1000);
} catch (Exception e) {
// ignore
}
exit[0] = true;
// wake up the event loop
Display display = Display.getDefault();
if (!display.isDisposed()) {
display.asyncExec(new Runnable() {
public void run() {
if (!shell.isDisposed()) shell.redraw();
}
});
}
}
}.start();
shell.open();
Display display = Display.getCurrent();
while (!exit[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep();
}
}