diff options
7 files changed, 295 insertions, 0 deletions
diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java index 6f68338d42..bdd537fe7b 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllBrowserTests.java @@ -33,6 +33,7 @@ public static Test suite() { suite.addTest(Test_org_eclipse_swt_browser_ProgressAdapter.suite()); suite.addTest(Test_org_eclipse_swt_browser_ProgressListener.suite()); suite.addTest(Test_org_eclipse_swt_browser_StatusTextListener.suite()); + suite.addTest(Test_org_eclipse_swt_browser_TitleListener.suite()); suite.addTest(Test_org_eclipse_swt_browser_VisibilityWindowAdapter.suite()); suite.addTest(Test_org_eclipse_swt_browser_VisibilityWindowListener.suite()); suite.addTest(org.eclipse.swt.tests.junit.browser.Test_BrowserSuite.suite()); diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java index c19286dea5..768eb3c050 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/AllTests.java @@ -219,6 +219,7 @@ public AllTests() { addTest(Test_org_eclipse_swt_browser_ProgressAdapter.suite()); addTest(Test_org_eclipse_swt_browser_ProgressListener.suite()); addTest(Test_org_eclipse_swt_browser_StatusTextListener.suite()); + addTest(Test_org_eclipse_swt_browser_TitleListener.suite()); addTest(Test_org_eclipse_swt_browser_VisibilityWindowAdapter.suite()); addTest(Test_org_eclipse_swt_browser_VisibilityWindowListener.suite()); addTest(org.eclipse.swt.tests.junit.browser.Test_BrowserSuite.suite()); diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java index 37be9c9836..654dbc4ef2 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_Browser.java @@ -144,6 +144,23 @@ public void test_addStatusTextListenerLorg_eclipse_swt_browser_StatusTextListene for (int i = 0; i < 100; i++) browser.removeStatusTextListener(listener); } +public void test_addTitleListenerLorg_eclipse_swt_browser_TitleListener() { + shell.setText("test_addTitleLorg_eclipse_swt_browser_TitleListener"); + try { + browser.addTitleListener(null); + fail("No exception thrown for listener == null"); + } + catch (IllegalArgumentException e) { + } + + TitleListener listener = new TitleListener() { + public void changed(TitleEvent event) { + } + }; + for (int i = 0; i < 100; i++) browser.addTitleListener(listener); + for (int i = 0; i < 100; i++) browser.removeTitleListener(listener); +} + public void test_addVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener() { shell.setText("test_addVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener"); try { @@ -191,6 +208,36 @@ public void test_getUrl() { assertTrue(string != null); } +public void test_isBackEnabled() { + shell.setText("test_isBackEnabled"); + + /* back should return the same value that isBackEnabled previously returned */ + assertEquals(browser.isBackEnabled(), browser.back()); + + for (int i = 0; i < 10; i++) { + browser.back(); + runLoopTimer(1); + } + /* going back 10 times in history - expecting false is returned */ + boolean result = browser.isBackEnabled(); + assertFalse(result); +} + +public void test_isForwardEnabled() { + shell.setText("test_isForwardEnabled"); + + /* forward should return the same value that isForwardEnabled previously returned */ + assertEquals(browser.isForwardEnabled(), browser.forward()); + + for (int i = 0; i < 10; i++) { + browser.forward(); + runLoopTimer(1); + } + /* going forward 10 times in history - expecting false is returned */ + boolean result = browser.isForwardEnabled(); + assertFalse(result); +} + public void test_refresh() { shell.setText("test_refresh"); for (int i = 0; i < 10; i++) { @@ -249,6 +296,16 @@ public void test_removeStatusTextListenerLorg_eclipse_swt_browser_StatusTextList // tested in addStatusTextListener } +public void test_removeTitleListenerLorg_eclipse_swt_browser_TitleListener() { + try { + browser.removeTitleListener(null); + fail("No exception thrown for listener == null"); + } + catch (IllegalArgumentException e) { + } + // tested in addTitleListener +} + public void test_removeVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener() { try { browser.removeVisibilityWindowListener(null); @@ -322,16 +379,20 @@ public static java.util.Vector methodNames() { methodNames.addElement("test_addOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener"); methodNames.addElement("test_addProgressListenerLorg_eclipse_swt_browser_ProgressListener"); methodNames.addElement("test_addStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener"); + methodNames.addElement("test_addTitleListenerLorg_eclipse_swt_browser_TitleListener"); methodNames.addElement("test_addVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener"); methodNames.addElement("test_back"); methodNames.addElement("test_forward"); methodNames.addElement("test_getUrl"); + methodNames.addElement("test_isBackEnabled"); + methodNames.addElement("test_isForwardEnabled"); methodNames.addElement("test_refresh"); methodNames.addElement("test_removeCloseWindowListenerLorg_eclipse_swt_browser_CloseWindowListener"); methodNames.addElement("test_removeLocationListenerLorg_eclipse_swt_browser_LocationListener"); methodNames.addElement("test_removeOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener"); methodNames.addElement("test_removeProgressListenerLorg_eclipse_swt_browser_ProgressListener"); methodNames.addElement("test_removeStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener"); + methodNames.addElement("test_removeTitleListenerLorg_eclipse_swt_browser_TitleListener"); methodNames.addElement("test_removeVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener"); methodNames.addElement("test_setTextLjava_lang_String"); methodNames.addElement("test_setUrlLjava_lang_String"); @@ -347,16 +408,20 @@ protected void runTest() throws Throwable { else if (getName().equals("test_addOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener")) test_addOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener(); else if (getName().equals("test_addProgressListenerLorg_eclipse_swt_browser_ProgressListener")) test_addProgressListenerLorg_eclipse_swt_browser_ProgressListener(); else if (getName().equals("test_addStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener")) test_addStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener(); + else if (getName().equals("test_addTitleListenerLorg_eclipse_swt_browser_TitleListener")) test_addTitleListenerLorg_eclipse_swt_browser_TitleListener(); else if (getName().equals("test_addVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener")) test_addVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener(); else if (getName().equals("test_back")) test_back(); else if (getName().equals("test_forward")) test_forward(); else if (getName().equals("test_getUrl")) test_getUrl(); + else if (getName().equals("test_isBackEnabled")) test_isBackEnabled(); + else if (getName().equals("test_isForwardEnabled")) test_isForwardEnabled(); else if (getName().equals("test_refresh")) test_refresh(); else if (getName().equals("test_removeCloseWindowListenerLorg_eclipse_swt_browser_CloseWindowListener")) test_removeCloseWindowListenerLorg_eclipse_swt_browser_CloseWindowListener(); else if (getName().equals("test_removeLocationListenerLorg_eclipse_swt_browser_LocationListener")) test_removeLocationListenerLorg_eclipse_swt_browser_LocationListener(); else if (getName().equals("test_removeOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener")) test_removeOpenWindowListenerLorg_eclipse_swt_browser_OpenWindowListener(); else if (getName().equals("test_removeProgressListenerLorg_eclipse_swt_browser_ProgressListener")) test_removeProgressListenerLorg_eclipse_swt_browser_ProgressListener(); else if (getName().equals("test_removeStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener")) test_removeStatusTextListenerLorg_eclipse_swt_browser_StatusTextListener(); + else if (getName().equals("test_removeTitleListenerLorg_eclipse_swt_browser_TitleListener")) test_removeTitleListenerLorg_eclipse_swt_browser_TitleListener(); else if (getName().equals("test_removeVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener")) test_removeVisibilityWindowListenerLorg_eclipse_swt_browser_VisibilityWindowListener(); else if (getName().equals("test_setTextLjava_lang_String")) test_setTextLjava_lang_String(); else if (getName().equals("test_setUrlLjava_lang_String")) test_setUrlLjava_lang_String(); diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_TitleListener.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_TitleListener.java new file mode 100644 index 0000000000..5024e5c6cf --- /dev/null +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/Test_org_eclipse_swt_browser_TitleListener.java @@ -0,0 +1,71 @@ +/******************************************************************************* + * 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.swt.tests.junit; + + +import junit.framework.*; +import junit.textui.*; +import org.eclipse.swt.*; +import org.eclipse.swt.browser.*; +import org.eclipse.swt.widgets.*; + +/** + * Automated Test Suite for class org.eclipse.swt.browser.TitleListener + * + * @see org.eclipse.swt.browser.TitleListener + */ +public class Test_org_eclipse_swt_browser_TitleListener extends SwtTestCase { + +public Test_org_eclipse_swt_browser_TitleListener(String name) { + super(name); +} + +public static void main(String[] args) { + TestRunner.run(suite()); +} + +protected void setUp() { +} + +protected void tearDown() { +} + +public void test_changedLorg_eclipse_swt_browser_TitleEvent() { + Display display = Display.getCurrent(); + Shell shell = new Shell(display); + Browser browser = new Browser(shell, SWT.NONE); + browser.addTitleListener(new TitleListener() { + public void changed(TitleEvent event) { + } + }); + shell.close(); +} + +public static Test suite() { + TestSuite suite = new TestSuite(); + java.util.Vector methodNames = methodNames(); + java.util.Enumeration e = methodNames.elements(); + while (e.hasMoreElements()) { + suite.addTest(new Test_org_eclipse_swt_browser_TitleListener((String)e.nextElement())); + } + return suite; +} + +public static java.util.Vector methodNames() { + java.util.Vector methodNames = new java.util.Vector(); + methodNames.addElement("test_changedLorg_eclipse_swt_browser_TitleEvent"); + return methodNames; +} + +protected void runTest() throws Throwable { + if (getName().equals("test_changedLorg_eclipse_swt_browser_TitleEvent")) test_changedLorg_eclipse_swt_browser_TitleEvent(); +} +} diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser6.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser6.java new file mode 100644 index 0000000000..29a7eb151a --- /dev/null +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Browser6.java @@ -0,0 +1,139 @@ +/******************************************************************************* + * 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.swt.tests.junit.browser; + +import org.eclipse.swt.widgets.*; +import org.eclipse.swt.layout.*; +import org.eclipse.swt.browser.*; +import org.eclipse.swt.*; + +public class Browser6 { + public static boolean passed = false; + + public static boolean test1(String url) { + System.out.println("URL Loading, verify get title event - args: "+url+" Expected Event Sequence: Title.changed"); + passed = false; + + final Display display = new Display(); + final Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + Browser browser = new Browser(shell, SWT.NONE); + browser.addTitleListener(new TitleListener() { + public void changed(TitleEvent event) { + Browser browser = (Browser)event.widget; + String url = browser.getUrl(); + System.out.println("Title changed <"+event.title+"> for location <"+url+">"); + passed = true; + shell.close(); + } + }); + + shell.open(); + browser.setUrl(url); + + boolean timeout = runLoopTimer(display, shell, 600); + if (timeout) passed = false; + display.dispose(); + return passed; + } + + public static boolean test2(String url, final String expectedTitle) { + System.out.println("URL Loading, verify get title event - args: "+url+" Expected Event Sequence: Title.changed"); + passed = false; + + final Display display = new Display(); + final Shell shell = new Shell(display); + shell.setLayout(new FillLayout()); + Browser browser = new Browser(shell, SWT.NONE); + browser.addTitleListener(new TitleListener() { + public void changed(TitleEvent event) { + Browser browser = (Browser)event.widget; + String url = browser.getUrl(); + System.out.println("Title changed <"+event.title+"> for location <"+url+">"); + if (event.title.equals(expectedTitle)) { + passed = true; + shell.close(); + } + } + }); + browser.addProgressListener(new ProgressListener() { + public void changed(ProgressEvent event) { + } + public void completed(ProgressEvent event) { + shell.close(); + } + }); + shell.open(); + browser.setUrl(url); + + boolean timeout = runLoopTimer(display, shell, 600); + if (timeout) passed = false; + display.dispose(); + return passed; + } + + static boolean runLoopTimer(final Display display, final Shell shell, final int seconds) { + final boolean[] timeout = {false}; + new Thread() { + public void run() { + try { + for (int i = 0; i < seconds; i++) { + Thread.sleep(1000); + if (display.isDisposed() || shell.isDisposed()) return; + } + } + catch (Exception e) {} + timeout[0] = true; + /* wake up the event loop */ + if (!display.isDisposed()) { + display.asyncExec(new Runnable() { + public void run() { + if (!shell.isDisposed()) shell.redraw(); + } + }); + } + } + }.start(); + while (!timeout[0] && !shell.isDisposed()) if (!display.readAndDispatch()) display.sleep(); + return timeout[0]; + } + + public static boolean test() { + int fail = 0; + + String[] urls = {"http://www.eclipse.org", "http://www.google.com", "http://www.ibm.com"}; + for (int i = 0; i < urls.length; i++) { + boolean result = test1(urls[i]); + System.out.print(result ? "." : "E"); + if (!result) fail++; + } + + String pluginPath = System.getProperty("PLUGIN_PATH"); + System.out.println("PLUGIN_PATH <"+pluginPath+">"); + String url; + if (pluginPath == null) url = Browser6.class.getClassLoader().getResource("browser6.html").toString(); + else url = pluginPath + "/data/browser6.html"; + urls = new String[] {url}; + String[] titles = {"This is a test title that must be carefully checked when that page is loaded"}; + for (int i = 0; i < urls.length; i++) { + boolean result = test2(urls[i], titles[i]); + System.out.print(result ? "." : "E"); + if (!result) fail++; + } + + + return fail == 0; + } + + public static void main(String[] argv) { + System.out.println("\r\nTests Finished. SUCCESS: "+test()); + } +}
\ No newline at end of file diff --git a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Test_BrowserSuite.java b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Test_BrowserSuite.java index 5d7000da5e..7a3a760a3b 100644 --- a/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Test_BrowserSuite.java +++ b/tests/org.eclipse.swt.tests/JUnit Tests/org/eclipse/swt/tests/junit/browser/Test_BrowserSuite.java @@ -37,30 +37,41 @@ protected void tearDown() { } public void Browser1() { + System.out.println("** Browser1 **"); boolean result = Browser1.test(); assertTrue(result); } public void Browser2() { + System.out.println("** Browser2 **"); boolean result = Browser2.test(); assertTrue(result); } public void Browser3() { + System.out.println("** Browser3 **"); boolean result = Browser3.test(); assertTrue(result); } public void Browser4() { + System.out.println("** Browser4 **"); boolean result = Browser4.test(); assertTrue(result); } public void Browser5() { + System.out.println("** Browser5 **"); boolean result = Browser5.test(); assertTrue(result); } +public void Browser6() { + System.out.println("** Browser6 **"); + boolean result = Browser6.test(); + assertTrue(result); +} + public static Test suite() { TestSuite suite = new TestSuite(); java.util.Vector methodNames = methodNames(); @@ -78,6 +89,7 @@ public static java.util.Vector methodNames() { methodNames.addElement("Browser3"); methodNames.addElement("Browser4"); methodNames.addElement("Browser5"); + methodNames.addElement("Browser6"); return methodNames; } diff --git a/tests/org.eclipse.swt.tests/data/browser6.html b/tests/org.eclipse.swt.tests/data/browser6.html new file mode 100644 index 0000000000..83275034fd --- /dev/null +++ b/tests/org.eclipse.swt.tests/data/browser6.html @@ -0,0 +1,6 @@ +<html> +<title>This is a test title that must be carefully checked when that page is loaded</title> +<body> +This test is used to automatically check the content of the title tag. +</body> +</html>
\ No newline at end of file |