diff --git a/accessible/tests/mochitest/textattrs/test_general.html b/accessible/tests/mochitest/textattrs/test_general.html index b94b8ff3a2712a..4eebe604a0b4b6 100644 --- a/accessible/tests/mochitest/textattrs/test_general.html +++ b/accessible/tests/mochitest/textattrs/test_general.html @@ -478,14 +478,17 @@ attrs = { "font-family": kAbsentFontFamily }; testTextAttrs(ID, 18, attrs, defAttrs, 18, 22); - attrs = { }; - testTextAttrs(ID, 22, attrs, defAttrs, 22, 27); + // bug 1224498 - this fails with 'cursive' fontconfig lookup + if (!LINUX) { + attrs = { }; + testTextAttrs(ID, 22, attrs, defAttrs, 22, 27); - attrs = { "font-family": kCursiveFontFamily }; - testTextAttrs(ID, 27, attrs, defAttrs, 27, 31); + attrs = { "font-family": kCursiveFontFamily }; + testTextAttrs(ID, 27, attrs, defAttrs, 27, 31); - attrs = { }; - testTextAttrs(ID, 31, attrs, defAttrs, 31, 44); + attrs = { }; + testTextAttrs(ID, 31, attrs, defAttrs, 31, 44); + } ////////////////////////////////////////////////////////////////////////// // area17, "text-decoration" tests diff --git a/devtools/shared/webconsole/test/helper_serviceworker.js b/devtools/shared/webconsole/test/helper_serviceworker.js index fe1b2d1b02fd4b..951067a5e00815 100644 --- a/devtools/shared/webconsole/test/helper_serviceworker.js +++ b/devtools/shared/webconsole/test/helper_serviceworker.js @@ -1,2 +1,19 @@ +console.log('script evaluation'); -console.log("Hello from serviceworker"); +addEventListener('install', function(evt) { + console.log('install event'); +}); + +addEventListener('activate', function(evt) { + console.log('activate event'); +}); + +addEventListener('fetch', function(evt) { + console.log('fetch event: ' + evt.request.url); + evt.respondWith(new Response('Hello world')); +}); + +addEventListener('message', function(evt) { + console.log('message event: ' + evt.data.message); + evt.source.postMessage({ type: 'PONG' }); +}); diff --git a/devtools/shared/webconsole/test/test_console_serviceworker.html b/devtools/shared/webconsole/test/test_console_serviceworker.html index e14c44647e0ba4..c429974f6521c8 100644 --- a/devtools/shared/webconsole/test/test_console_serviceworker.html +++ b/devtools/shared/webconsole/test/test_console_serviceworker.html @@ -14,16 +14,40 @@ diff --git a/devtools/shared/webconsole/utils.js b/devtools/shared/webconsole/utils.js index cd6b529294e8fd..45dc8be7c35593 100644 --- a/devtools/shared/webconsole/utils.js +++ b/devtools/shared/webconsole/utils.js @@ -18,6 +18,11 @@ loader.lazyImporter(this, "Services", "resource://gre/modules/Services.jsm"); loader.lazyImporter(this, "VariablesView", "resource://devtools/client/shared/widgets/VariablesView.jsm"); const DevToolsUtils = require("devtools/shared/DevToolsUtils"); +XPCOMUtils.defineLazyServiceGetter(this, + "swm", + "@mozilla.org/serviceworkers/manager;1", + "nsIServiceWorkerManager"); + // Match the function name from the result of toString() or toSource(). // // Examples: @@ -126,29 +131,6 @@ var WebConsoleUtils = { aTo.style.fontStyle = style.getPropertyCSSValue("font-style").cssText; }, - /** - * Recursively gather a list of window locations given - * a top level window. - * - * @param nsIDOMWindow aWindow - * @return Array - * list of window locations as strings - */ - getLocationsForFrames: function(aWindow) - { - let location = aWindow.location.toString(); - let locations = [location]; - - if (aWindow.frames) { - for (let i = 0; i < aWindow.frames.length; i++) { - let frame = aWindow.frames[i]; - locations = locations.concat(this.getLocationsForFrames(frame)); - } - } - - return locations; - }, - /** * Gets the ID of the inner window of this DOM window. * @@ -994,9 +976,8 @@ ConsoleAPIListener.prototype = // scope, which can be used to determine whether it's controlling // a window. let scope = message.ID; - let locations = WebConsoleUtils.getLocationsForFrames(this.window); - if (!locations.some(loc => loc.startsWith(scope))) { + if (!swm.shouldReportToWindow(this.window, scope)) { return false; } } diff --git a/docshell/base/nsDocShell.cpp b/docshell/base/nsDocShell.cpp index 66688848f6ed82..abe8d5d0a3efd8 100644 --- a/docshell/base/nsDocShell.cpp +++ b/docshell/base/nsDocShell.cpp @@ -13714,6 +13714,13 @@ nsDocShell::SetIsBrowserInsideApp(uint32_t aContainingAppId) return NS_OK; } +NS_IMETHODIMP +nsDocShell::SetIsSignedPackage(const nsAString& aSignedPkg) +{ + mSignedPkg = aSignedPkg; + return NS_OK; +} + /* [infallible] */ NS_IMETHODIMP nsDocShell::GetIsBrowserElement(bool* aIsBrowser) { @@ -13821,6 +13828,9 @@ nsDocShell::GetOriginAttributes() attrs.mInBrowser = true; } + // Bug 1209162 will address the inheritance of each attributes. + attrs.mSignedPkg = mSignedPkg; + return attrs; } diff --git a/docshell/base/nsDocShell.h b/docshell/base/nsDocShell.h index 4b75df163a1a27..75703bec35ed6d 100644 --- a/docshell/base/nsDocShell.h +++ b/docshell/base/nsDocShell.h @@ -1005,6 +1005,10 @@ class nsDocShell final nsString GetInheritedPaymentRequestId(); + // The packageId for a signed packaged iff this docShell is created + // for a signed package. + nsString mSignedPkg; + private: nsCString mForcedCharset; nsCString mParentCharset; diff --git a/docshell/base/nsIDocShell.idl b/docshell/base/nsIDocShell.idl index c960577a9f16c3..7a052406359881 100644 --- a/docshell/base/nsIDocShell.idl +++ b/docshell/base/nsIDocShell.idl @@ -43,7 +43,7 @@ interface nsITabParent; typedef unsigned long nsLoadFlags; -[scriptable, builtinclass, uuid(41b1cf17-b37b-4a62-9df8-5f67cfecab3f)] +[scriptable, builtinclass, uuid(63adb599-6dc9-4746-972e-c22e9018020b)] interface nsIDocShell : nsIDocShellTreeItem { /** @@ -824,6 +824,12 @@ interface nsIDocShell : nsIDocShellTreeItem */ void setIsBrowserInsideApp(in unsigned long containingAppId); + /** + * Indicate that this docshell corresponds to a signed package with + * the given packageId. + */ + void setIsSignedPackage(in AString packageId); + /** * Returns the id of the app associated with this docshell. If this docshell * is an diff --git a/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/unload/009.html b/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/unload/009.html index 09e65ef736f858..0e93e047017a5c 100644 --- a/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/unload/009.html +++ b/testing/web-platform/tests/html/browsers/browsing-the-web/unloading-documents/unload/009.html @@ -6,9 +6,11 @@ diff --git a/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_beforeunload-1.html b/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_beforeunload-1.html index ff577f8de4662f..6f44d8a83ecade 100644 --- a/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_beforeunload-1.html +++ b/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_beforeunload-1.html @@ -1,5 +1,6 @@ diff --git a/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_unload-1.html b/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_unload-1.html index 0c8f2f5749ae97..9a9e304e843ebc 100644 --- a/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_unload-1.html +++ b/testing/web-platform/tests/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/close_unload-1.html @@ -1,5 +1,6 @@ diff --git a/testing/web-platform/tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html b/testing/web-platform/tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html index ffc4a2c0d1603b..a9fe824ef3cd71 100644 --- a/testing/web-platform/tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html +++ b/testing/web-platform/tests/html/browsers/windows/nested-browsing-contexts/frameElement.sub.html @@ -7,7 +7,8 @@
- + + + diff --git a/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html b/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html index a3d5990ea4969b..e67c04fc8dd174 100644 --- a/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html +++ b/testing/web-platform/tests/html/dom/documents/resource-metadata-management/document-lastModified-01.html @@ -25,14 +25,18 @@ var minutes = d.getMinutes() var seconds = d.getSeconds() - test(function() { - var local_time = hours * 60 * 60 + minutes * 60 + seconds; - var m = pattern.exec(last_modified); - var last_modified_time = parseInt(m[1]) * 60 * 60 + parseInt(m[2]) * 60 + parseInt(m[3]); - assert_approx_equals(last_modified_time, local_time, 2, - "Hours and minutes should match local time."); - }, "Date returned by lastModified is in the user's local time zone."); - + // Checking whether d and and new instance of Date have the same timezone. + // Do not run the time zone test in the case daylight saving occurs. + var d2 = new Date(); + if (d2.getTimezoneOffset() == d.getTimezoneOffset()) { + test(function() { + var local_time = hours * 60 * 60 + minutes * 60 + seconds; + var m = pattern.exec(last_modified); + var last_modified_time = parseInt(m[1]) * 60 * 60 + parseInt(m[2]) * 60 + parseInt(m[3]); + assert_approx_equals(last_modified_time, local_time, 2, + "Hours and minutes should match local time."); + }, "Date returned by lastModified is in the user's local time zone."); + } var t = async_test("Date returned by lastModified is current after timeout."); setTimeout(function() { diff --git a/testing/web-platform/tests/html/dom/elements-embedded.js b/testing/web-platform/tests/html/dom/elements-embedded.js index a948b62ff83bda..4966abdcf8ed58 100644 --- a/testing/web-platform/tests/html/dom/elements-embedded.js +++ b/testing/web-platform/tests/html/dom/elements-embedded.js @@ -141,7 +141,7 @@ var embeddedElements = { hreflang: "string", type: "string", - //URLUtils + // HTMLHyperlinkElementUtils href: "url", // Obsolete diff --git a/testing/web-platform/tests/html/dom/elements-text.js b/testing/web-platform/tests/html/dom/elements-text.js index bcfcb8f00ffe73..96c1d923702601 100644 --- a/testing/web-platform/tests/html/dom/elements-text.js +++ b/testing/web-platform/tests/html/dom/elements-text.js @@ -10,7 +10,7 @@ var textElements = { hreflang: "string", type: "string", - // URLUtils + // HTMLHyperlinkElementUtils href: "url", // Obsolete diff --git a/testing/web-platform/tests/html/dom/interfaces.html b/testing/web-platform/tests/html/dom/interfaces.html index cc5945f246119e..69d81ccb0eba31 100644 --- a/testing/web-platform/tests/html/dom/interfaces.html +++ b/testing/web-platform/tests/html/dom/interfaces.html @@ -11,16 +11,6 @@

HTML IDL tests

- - - - +
- \ No newline at end of file + diff --git a/testing/web-platform/tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html b/testing/web-platform/tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html index a867ab826ab760..8c8e1dbc1bf9a9 100644 --- a/testing/web-platform/tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html +++ b/testing/web-platform/tests/html/infrastructure/common-dom-interfaces/collections/htmlformcontrolscollection.html @@ -18,8 +18,12 @@ - - + + + + + + @@ -50,8 +54,8 @@ //getter - name test(function () { - assert_equals(coll1("r1"), rdo, "HTMLFormControlsCollection(name) should return the 'input' element in radio status."); -}, "HTMLFormControlsCollection(name) must return the named item"); + assert_throws(TypeError(), function() { coll1("r1") }); +}, "HTMLFormControlsCollection is not callable"); test(function () { assert_equals(coll1["r1"], rdo, "HTMLFormControlsCollection[name] should return the 'input' element in radio status."); diff --git a/testing/web-platform/tests/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/script-IDL-event-htmlfor.html b/testing/web-platform/tests/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/script-IDL-event-htmlfor.html index 0c5913944c5230..1a8c4a2f8543bb 100644 --- a/testing/web-platform/tests/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/script-IDL-event-htmlfor.html +++ b/testing/web-platform/tests/html/obsolete/requirements-for-implementations/other-elements-attributes-and-apis/script-IDL-event-htmlfor.html @@ -16,8 +16,8 @@ var script = document.createElement("script"); script.setAttribute("event", "blah"); script.setAttribute("for", "blah"); - assert_equals(script.event, ""); - assert_equals(script.htmlFor, ""); + assert_equals(script.event, "blah"); + assert_equals(script.htmlFor, "blah"); assert_equals(script.getAttribute("event"), "blah"); assert_equals(script.getAttribute("for"), "blah"); }) @@ -27,10 +27,10 @@ script.setAttribute("for", "blah"); script.event = "foo"; script.htmlFor = "foo"; - assert_equals(script.event, ""); - assert_equals(script.htmlFor, ""); - assert_equals(script.getAttribute("event"), "blah"); - assert_equals(script.getAttribute("for"), "blah"); + assert_equals(script.event, "foo"); + assert_equals(script.htmlFor, "foo"); + assert_equals(script.getAttribute("event"), "foo"); + assert_equals(script.getAttribute("for"), "foo"); }) test(function() { var script = document.createElement("script"); @@ -38,10 +38,10 @@ script.setAttribute("for", "blah"); script.event = null; script.htmlFor = null; - assert_equals(script.event, ""); - assert_equals(script.htmlFor, ""); - assert_equals(script.getAttribute("event"), "blah"); - assert_equals(script.getAttribute("for"), "blah"); + assert_equals(script.event, "null"); + assert_equals(script.htmlFor, "null"); + assert_equals(script.getAttribute("event"), "null"); + assert_equals(script.getAttribute("for"), "null"); }) test(function() { var script = document.createElement("script"); @@ -49,9 +49,9 @@ script.setAttribute("for", "blah"); script.event = undefined; script.htmlFor = undefined; - assert_equals(script.event, ""); - assert_equals(script.htmlFor, ""); - assert_equals(script.getAttribute("event"), "blah"); - assert_equals(script.getAttribute("for"), "blah"); + assert_equals(script.event, "undefined"); + assert_equals(script.htmlFor, "undefined"); + assert_equals(script.getAttribute("event"), "undefined"); + assert_equals(script.getAttribute("for"), "undefined"); }) diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html new file mode 100644 index 00000000000000..3f2fbca317c0ec --- /dev/null +++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align-ref.html @@ -0,0 +1,77 @@ + + + + + + + + + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ +
+
+
t א
+
+
+ + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ + + + diff --git a/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align.html b/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align.html new file mode 100644 index 00000000000000..67ab68e5899031 --- /dev/null +++ b/testing/web-platform/tests/html/rendering/non-replaced-elements/flow-content-0/div-align.html @@ -0,0 +1,70 @@ + + + + + + + + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ +
+
+
t א
+
+
+ + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ + +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
t א
+
+ +
+
t א
+
t א
+
+ + + + diff --git a/testing/web-platform/tests/html/semantics/forms/constraints/support/validator.js b/testing/web-platform/tests/html/semantics/forms/constraints/support/validator.js index cd9d96404f5923..e969ce460da773 100644 --- a/testing/web-platform/tests/html/semantics/forms/constraints/support/validator.js +++ b/testing/web-platform/tests/html/semantics/forms/constraints/support/validator.js @@ -285,30 +285,10 @@ var validator = { }, set_dirty: function(ctl) { - document.designMode = "on"; ctl.focus(); var old_value = ctl.value; ctl.value = "a"; ctl.value = old_value; - if ( - // See https://html.spec.whatwg.org/multipage/#input-type-attr-summary - // and https://html.spec.whatwg.org/multipage/#textFieldSelection - ( - ctl.tagName === "INPUT" && ( - ctl.type === "text" || - ctl.type === "search" || - ctl.type === "tel" || - ctl.type === "url" || - ctl.type === "password" - ) - ) || - ctl.tagName === "TEXTAREA" - ) { - ctl.value += "1"; - ctl.setSelectionRange(ctl.value.length - 1, ctl.value.length); - document.execCommand("Delete"); - } - document.designMode = "off"; }, pre_check: function(ctl, item) { diff --git a/testing/web-platform/tests/html/semantics/forms/the-option-element/option-text-recurse.html b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-text-recurse.html index 46baa8e1ce5bbe..cf854f5260bb2a 100644 --- a/testing/web-platform/tests/html/semantics/forms/the-option-element/option-text-recurse.html +++ b/testing/web-platform/tests/html/semantics/forms/the-option-element/option-text-recurse.html @@ -74,4 +74,19 @@ option.appendChild(document.createTextNode("text")); assert_equals(option.text, "text"); }, "option.text should work if the option is in a MathML script element"); + +test(function() { + var option = document.createElement("option"); + option.appendChild(document.createTextNode("te")); + option.appendChild(document.createComment("comment")); + option.appendChild(document.createTextNode("xt")); + assert_equals(option.text, "text"); +}, "option.text should ignore comment children"); +test(function() { + var option = document.createElement("option"); + option.appendChild(document.createTextNode("te")); + option.appendChild(document.createProcessingInstruction("target", "data")); + option.appendChild(document.createTextNode("xt")); + assert_equals(option.text, "text"); +}, "option.text should ignore PI children"); diff --git a/testing/web-platform/tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html b/testing/web-platform/tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html index 429c642a6859c8..c5c8510a4746c9 100644 --- a/testing/web-platform/tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html +++ b/testing/web-platform/tests/html/semantics/forms/the-select-element/common-HTMLOptionsCollection-namedItem.html @@ -5,6 +5,8 @@ HTMLOptionsCollection + +
+ + + + + + +

Input Checkbox Elements

+selected-8 + +selected-9 + +unselected-10 +unselected-11 + +unselected-12 + +unselected-13 +selected-10 + +

Input Radio Elements

+
Group 1:
+selected-11 +
Group 2:
+selected-12 + +
Group 3:
+unselected-14 +selected-13 +
Group 4:
+unselected-15 +selected-14 +
Group 5:
+unselected-16 +unselected-17 + +
Group 6
+selected-15 +unselected-18 + + + diff --git a/testing/web-platform/tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html b/testing/web-platform/tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html index 88cda898ad527c..80a4118dff5fae 100644 --- a/testing/web-platform/tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html +++ b/testing/web-platform/tests/webdriver/element_state/res/element-with-same-color-as-parent-background.html @@ -8,7 +8,7 @@ background: blue; width: 50px; height: 50px; } - + #hidden { margin-top: -50px; } diff --git a/testing/web-platform/tests/webdriver/element_state/res/elements_text.html b/testing/web-platform/tests/webdriver/element_state/res/elements_text.html new file mode 100644 index 00000000000000..45b7c2370121e5 --- /dev/null +++ b/testing/web-platform/tests/webdriver/element_state/res/elements_text.html @@ -0,0 +1,10 @@ + + + +Element location + + +
id
+
name
+ link text + diff --git a/testing/web-platform/tests/webdriver/element_state/res/get-element-attribute-extended.html b/testing/web-platform/tests/webdriver/element_state/res/get-element-attribute-extended.html new file mode 100644 index 00000000000000..1fff60f032394d --- /dev/null +++ b/testing/web-platform/tests/webdriver/element_state/res/get-element-attribute-extended.html @@ -0,0 +1,72 @@ + + +Get Element Attribute Extended + +Span +Span + +
+
+
+

h1 element, id:h1_div1.1_div1

+
+
+ +
+
+
+ Span +
+
+
+ +
+ anchor text 123 + anchor text 123 + + +
+ +
+
+
+ + Span + Span +
+ +
+ + + +
+
+
+
+
+
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
+ + +
diff --git a/testing/web-platform/tests/webdriver/element_state/selected_test.py b/testing/web-platform/tests/webdriver/element_state/selected_test.py new file mode 100644 index 00000000000000..9c80f29f60d0c0 --- /dev/null +++ b/testing/web-platform/tests/webdriver/element_state/selected_test.py @@ -0,0 +1,210 @@ +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + + +class GetElementSelectedTest(base_test.WebDriverBaseTest): + def test_selected_1(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-1") + + self.assertEquals(element.is_selected(), True) + + def test_selected_2(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-2") + + self.assertEquals(element.is_selected(), True) + + def test_selected_3(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-3") + + self.assertEquals(element.is_selected(), True) + + def test_selected_4(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-4") + + self.assertEquals(element.is_selected(), True) + + def test_selected_5(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-5") + + self.assertEquals(element.is_selected(), True) + + def test_selected_6(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-6") + + self.assertEquals(element.is_selected(), True) + + def test_selected_7(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-7") + + self.assertEquals(element.is_selected(), True) + + def test_selected_8(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-8") + + self.assertEquals(element.is_selected(), True) + + def test_selected_9(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-9") + + self.assertEquals(element.is_selected(), True) + + def test_selected_10(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-10") + + self.assertEquals(element.is_selected(), True) + + def test_selected_11(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-11") + + self.assertEquals(element.is_selected(), True) + + def test_selected_12(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-12") + + self.assertEquals(element.is_selected(), True) + + def test_selected_13(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-13") + + self.assertEquals(element.is_selected(), True) + + def test_selected_14(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-14") + + self.assertEquals(element.is_selected(), True) + + def test_selected_15(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("selected-15") + + self.assertEquals(element.is_selected(), True) + + def test_unselected_1(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-1") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_2(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-2") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_3(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-3") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_4(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-4") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_5(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-5") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_6(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-6") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_7(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-7") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_8(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-8") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_9(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-9") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_10(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-10") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_11(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-11") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_12(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-12") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_13(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-13") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_14(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-14") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_15(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-15") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_16(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-16") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_17(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-17") + + self.assertEquals(element.is_selected(), False) + + def test_unselected_18(self): + self.driver.get(self.webserver.where_is("element_state/res/element-selected.html")) + element = self.driver.find_element_by_id("unselected-18") + + self.assertEquals(element.is_selected(), False) + + +if __name__ == "__main__": + unittest.main() diff --git a/testing/web-platform/tests/webdriver/element_state/visibility_test.py b/testing/web-platform/tests/webdriver/element_state/visibility_test.py index 02efadb0aca322..58218a7ff2e0ac 100644 --- a/testing/web-platform/tests/webdriver/element_state/visibility_test.py +++ b/testing/web-platform/tests/webdriver/element_state/visibility_test.py @@ -4,41 +4,41 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions +from selenium.common import exceptions class NaturalNonVisibleElementsTest(base_test.WebDriverBaseTest): def test_0x0_pixel_element_is_not_visible(self): self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels.html")) - el = self.driver.find_element_by_css("div") + el = self.driver.find_element_by_css_selector("div") self.assertFalse(el.is_displayed()) def test_0x0_pixel_text_node_is_visible(self): self.driver.get(self.webserver.where_is("element_state/res/0x0-pixels-text-node.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertTrue(el.is_displayed()) def test_1x1_pixel_element(self): self.driver.get(self.webserver.where_is("element_state/res/1x1-pixels.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertTrue(el.is_displayed()) def test_zero_sized_element_is_shown_if_decendant_has_size(self): self.driver.get(self.webserver.where_is("element_state/res/zero-sized-element-with-sizable-decendant.html")) - parent = self.driver.find_element_by_css("#parent") - child = self.driver.find_element_by_css("#child") + parent = self.driver.find_element_by_css_selector("#parent") + child = self.driver.find_element_by_css_selector("#child") self.assertTrue(parent.is_displayed()) self.assertTrue(child.is_displayed()) def test_input_type_hidden_is_never_visible(self): self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden.html")) - input = self.driver.find_element_by_css("input") + input = self.driver.find_element_by_css_selector("input") self.assertFalse(input.is_displayed()) def test_input_morphs_into_hidden(self): self.driver.get(self.webserver.where_is("element_state/res/input-morphs-into-hidden.html")) - input = self.driver.find_element_by_css("input") + input = self.driver.find_element_by_css_selector("input") self.assertFalse(input.is_displayed()) def test_parent_node_visible_when_all_children_are_absolutely_positioned_and_overflow_is_hidden(self): @@ -51,10 +51,10 @@ def test_parent_of_absolutely_positioned_elements_visible_where_ancestor_overflo self.driver.get(self.webserver.where_is("element_state/res/absolute-children-ancestor-hidden-overflow.html")) - children = self.driver.find_elements_by_css(".child") + children = self.driver.find_elements_by_css_selector(".child") assert all(child.is_displayed() for child in children) - parent = self.driver.find_element_by_css("#parent") + parent = self.driver.find_element_by_css_selector("#parent") assert parent.is_displayed() def test_element_hidden_by_overflow_x_is_not_visible(self): @@ -66,8 +66,8 @@ def test_element_hidden_by_overflow_x_is_not_visible(self): for page in pages: self.driver.get(self.webserver.where_is(page)) - right = self.driver.find_element_by_css("#right") - bottom_right = self.driver.find_element_by_css("#bottom-right") + right = self.driver.find_element_by_css_selector("#right") + bottom_right = self.driver.find_element_by_css_selector("#bottom-right") self.assertFalse(right.is_displayed()) self.assertFalse(bottom_right.is_displayed()) @@ -81,8 +81,8 @@ def test_element_hidden_by_overflow_y_is_not_visible(self): for page in pages: self.driver.get(self.webserver.where_is(page)) - bottom = self.driver.find_element_by_css("#bottom") - bottom_right = self.driver.find_element_by_css("#bottom-right") + bottom = self.driver.find_element_by_css_selector("#bottom") + bottom_right = self.driver.find_element_by_css_selector("#bottom-right") self.assertFalse(bottom.is_displayed()) self.assertFalse(bottom_right.is_displayed()) @@ -104,78 +104,78 @@ def test_element_scrollable_by_overflow_y_is_visible(self): def test_element_outside_viewport(self): self.driver.get(self.webserver.where_is("element_state/res/element-outside-viewport.html")) - hidden = self.driver.find_element_by_css("div") + hidden = self.driver.find_element_by_css_selector("div") self.assertFalse(hidden.is_displayed()) def test_element_dynamically_moved_outside_viewport(self): self.driver.get(self.webserver.where_is("element_state/res/element-dynamically-moved-outside-viewport.html")) - hidden = self.driver.find_element_by_css("div") + hidden = self.driver.find_element_by_css_selector("div") self.assertFalse(hidden.is_displayed()) def test_element_hidden_by_other_element(self): self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-other-element.html")) - overlay = self.driver.find_element_by_css("#overlay") - hidden = self.driver.find_element_by_css("#hidden") + overlay = self.driver.find_element_by_css_selector("#overlay") + hidden = self.driver.find_element_by_css_selector("#hidden") self.assertTrue(overlay.is_displayed()) self.assertFalse(hidden.is_displayed()) def test_element_partially_hidden_by_other_element(self): self.driver.get(self.webserver.where_is("element_state/res/element-partially-hidden-by-other-element.html")) - partial = self.driver.find_element_by_css("#partial") + partial = self.driver.find_element_by_css_selector("#partial") self.assertTrue(partial.is_displayed()) def test_element_hidden_by_z_index(self): self.driver.get(self.webserver.where_is("element_state/res/element-hidden-by-z-index.html")) - overlay = self.driver.find_element_by_css("#overlay") - hidden = self.driver.find_element_by_css("#hidden") + overlay = self.driver.find_element_by_css_selector("#overlay") + hidden = self.driver.find_element_by_css_selector("#hidden") self.assertTrue(overlay.is_displayed()) self.assertFalse(hidden.is_displayed()) def test_element_moved_outside_viewport_by_transform(self): self.driver.get(self.webserver.where_is("element_state/res/element-moved-outside-viewport-by-transform.html")) - el = self.driver.find_element_by_css("div") + el = self.driver.find_element_by_css_selector("div") self.assertFalse(el.is_displayed()) def test_element_moved_behind_other_element_by_transform(self): self.driver.get(self.webserver.where_is("element_state/res/element-moved-behind-other-element-by-transform.html")) - overlay = self.driver.find_element_by_css("#overlay") - hidden = self.driver.find_element_by_css("#hidden") + overlay = self.driver.find_element_by_css_selector("#overlay") + hidden = self.driver.find_element_by_css_selector("#hidden") self.assertTrue(overlay.is_displayed()) self.assertFalse(hidden.is_displayed()) def test_text_with_same_color_as_background(self): self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-background.html")) - p = self.driver.find_element_by_css("p") + p = self.driver.find_element_by_css_selector("p") self.assertFalse(p.is_displayed()) def test_text_with_same_color_as_parent_background(self): self.driver.get(self.webserver.where_is("element_state/res/text-with-same-color-as-parent-background.html")) - p = self.driver.find_element_by_css("p") + p = self.driver.find_element_by_css_selector("p") self.assertFalse(p.is_displayed()) def test_text_with_matching_color_and_background(self): self.driver.get(self.webserver.where_is("element_state/res/text-with-matching-color-and-background.html")) - p = self.driver.find_element_by_css("p") + p = self.driver.find_element_by_css_selector("p") self.assertTrue(p.is_displayed()) def test_element_with_same_color_as_background(self): self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-background.html")) - el = self.driver.find_element_by_css("div") + el = self.driver.find_element_by_css_selector("div") self.assertFalse(el.is_displayed()) def test_element_with_same_color_as_parent_background(self): self.driver.get(self.webserver.where_is("element_state/res/element-with-same-color-as-parent-background.html")) - hidden = self.driver.find_element_by_css("#hidden") + hidden = self.driver.find_element_by_css_selector("#hidden") self.assertFalse(hidden.is_displayed()) class BodyElementIsAlwaysDisplayedTest(base_test.WebDriverBaseTest): def assert_body_is_displayed_on(self, page): self.driver.get(self.webserver.where_is(page)) - body = self.driver.find_element_by_css("body") + body = self.driver.find_element_by_css_selector("body") assert body.is_displayed() def test_implicit(self): @@ -194,86 +194,86 @@ def test_overflow_hidden(self): class DisplayTest(base_test.WebDriverBaseTest): def test_display_block(self): self.driver.get(self.webserver.where_is("element_state/res/display-block.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertTrue(el.is_displayed()) def test_display_none(self): self.driver.get(self.webserver.where_is("element_state/res/display-none.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertFalse(el.is_displayed()) def test_display_none_hides_child_node(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-child.html")) - parent = self.driver.find_element_by_css("#parent") - child = self.driver.find_element_by_css("#child") + parent = self.driver.find_element_by_css_selector("#parent") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(parent.is_displayed()) self.assertFalse(child.is_displayed()) def test_display_none_hides_child_node_link(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-child-link.html")) - child = self.driver.find_element_by_css("#child") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(child.is_displayed()) def test_display_none_hides_child_node_paragraph(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-child-paragraph.html")) - child = self.driver.find_element_by_css("#child") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(child.is_displayed()) def test_display_none_on_parent_takes_presedence(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence.html")) - child = self.driver.find_element_by_css("#child") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(child.is_displayed()) def test_display_none_on_parent_takes_presedence_over_visibility_visible(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-parent-presedence-visibility.html")) - child = self.driver.find_element_by_css("#child") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(child.is_displayed()) def test_display_none_hidden_dynamically(self): self.driver.get(self.webserver.where_is("element_state/res/display-none-dynamic.html")) - hidden = self.driver.find_element_by_css("#hidden") + hidden = self.driver.find_element_by_css_selector("#hidden") self.assertFalse(hidden.is_displayed()) class VisibilityTest(base_test.WebDriverBaseTest): def test_element_state_hidden(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-hidden.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertFalse(el.is_displayed()) def test_element_state_visible(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-visible.html")) - el = self.driver.find_element_by_css("p") + el = self.driver.find_element_by_css_selector("p") self.assertTrue(el.is_displayed()) def test_visibility_hidden_hides_child_node(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-child.html")) - parent = self.driver.find_element_by_css("#parent") - child = self.driver.find_element_by_css("#child") + parent = self.driver.find_element_by_css_selector("#parent") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(parent.is_displayed()) self.assertFalse(child.is_displayed()) def test_visibility_hidden_hides_child_node_link(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-child-link.html")) - parent = self.driver.find_element_by_css("#parent") - child = self.driver.find_element_by_css("#child") + parent = self.driver.find_element_by_css_selector("#parent") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(parent.is_displayed()) self.assertFalse(child.is_displayed()) def test_visibility_hidden_hides_child_node_paragraph(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-child-paragraph.html")) - parent = self.driver.find_element_by_css("#parent") - child = self.driver.find_element_by_css("#child") + parent = self.driver.find_element_by_css_selector("#parent") + child = self.driver.find_element_by_css_selector("#child") self.assertFalse(parent.is_displayed()) self.assertFalse(child.is_displayed()) def test_visibility_hidden_on_child_takes_precedence(self): self.driver.get(self.webserver.where_is("element_state/res/visibility-child-presedence.html")) - child = self.driver.find_element_by_css("#child") + child = self.driver.find_element_by_css_selector("#child") self.assertTrue(child.is_displayed()) def test_visibility_hidden_on_parent_takes_precedence_over_display_block(self): @@ -284,33 +284,33 @@ def test_visibility_hidden_set_dynamically(self): def test_should_show_element_not_visible_with_hidden_attribute(self): self.driver.get(self.webserver.where_is("element_state/res/hidden.html")) - singleHidden = self.driver.find_element_by_css('#singleHidden') + singleHidden = self.driver.find_element_by_css_selector('#singleHidden') self.assertFalse(singleHidden.is_displayed()) def test_should_show_element_not_visible_when_parent_element_has_hidden_attribute(self): self.driver.get(self.webserver.where_is("element_state/res/hidden.html")) - child = self.driver.find_element_by_css('#child') + child = self.driver.find_element_by_css_selector('#child') self.assertFalse(child.is_displayed()) class VisibilityInteractionTest(base_test.WebDriverBaseTest): def test_input_hidden_is_unclickable(self): self.driver.get(self.webserver.where_is("element_state/res/input-type-hidden-unclickable.html")) - input = self.driver.find_element_by_css("input") + input = self.driver.find_element_by_css_selector("input") with self.assertRaises(exceptions.ElementNotVisibleException): input.click() def test_hidden_input_checkbox_is_untogglable(self): self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-checkbox-untogglable.html")) - checkbox = self.driver.find_element_by_css("input") + checkbox = self.driver.find_element_by_css_selector("input") with self.assertRaises(exceptions.ElementNotVisibleException): checkbox.click() def test_typing_in_hidden_input_is_impossible(self): self.driver.get(self.webserver.where_is("element_state/res/hidden-input-type-text-writing.html")) - textfield = self.driver.find_element_by_css("input") + textfield = self.driver.find_element_by_css_selector("input") with self.assertRaises(exceptions.ElementNotVisibleException): textfield.send_keys("Koha is a popular Indian cheese") diff --git a/testing/web-platform/tests/webdriver/javascript/execute_script_test.py b/testing/web-platform/tests/webdriver/javascript/execute_script_test.py index 72810a5fe0402d..dd7cfca946cd64 100644 --- a/testing/web-platform/tests/webdriver/javascript/execute_script_test.py +++ b/testing/web-platform/tests/webdriver/javascript/execute_script_test.py @@ -4,6 +4,7 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test +from selenium.webdriver.remote.webelement import WebElement class ExecuteScriptTest(base_test.WebDriverBaseTest): diff --git a/testing/web-platform/tests/webdriver/modal/alerts_quit_test.py b/testing/web-platform/tests/webdriver/modal/alerts_quit_test.py index 2650a2dc678759..83f7d14500179e 100644 --- a/testing/web-platform/tests/webdriver/modal/alerts_quit_test.py +++ b/testing/web-platform/tests/webdriver/modal/alerts_quit_test.py @@ -4,16 +4,17 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions, wait +from selenium.common import exceptions +from selenium.webdriver.support import wait class AlertsQuitTest(base_test.WebDriverBaseTest): def setUp(self): - self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions=[exceptions.NoSuchAlertException]) + self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions=[exceptions.NoAlertPresentException]) self.driver.get(self.webserver.where_is('modal/res/alerts.html')) def test_can_quit_when_an_alert_is_present(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) self.driver.quit() with self.assertRaises(Exception): diff --git a/testing/web-platform/tests/webdriver/modal/alerts_test.py b/testing/web-platform/tests/webdriver/modal/alerts_test.py index d4182f6d07bbd2..5f6f8a9f57c654 100644 --- a/testing/web-platform/tests/webdriver/modal/alerts_test.py +++ b/testing/web-platform/tests/webdriver/modal/alerts_test.py @@ -4,144 +4,145 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions, wait - +from selenium.common import exceptions +from selenium.webdriver.support import wait class AlertsTest(base_test.WebDriverBaseTest): def setUp(self): - self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoSuchAlertException]) + self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoAlertPresentException]) self.driver.get(self.webserver.where_is('modal/res/alerts.html')) def tearDown(self): try: self.driver.switch_to_alert().dismiss() - except exceptions.NoSuchAlertException: + except exceptions.NoAlertPresentException: pass # Alerts def test_should_allow_user_to_accept_an_alert(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - self.driver.get_current_url() + self.driver.current_url def test_should_allow_user_to_accept_an_alert_with_no_text(self): - self.driver.find_element_by_css('#empty-alert').click() + self.driver.find_element_by_css_selector('#empty-alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - self.driver.get_current_url() + self.driver.current_url def test_should_allow_user_to_dismiss_an_alert(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.dismiss() - self.driver.get_current_url() + self.driver.current_url def test_should_allow_user_to_get_text_of_an_alert(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) - value = alert.get_text() + value = alert.text alert.accept() self.assertEquals('cheese', value) def test_setting_the_value_of_an_alert_throws(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) - with self.assertRaises(exceptions.ElementNotVisibleException): - alert.send_keys('cheese') + with self.assertRaises(exceptions.ElementNotVisibleException): + alert.send_keys('cheese') alert.accept() def test_alert_should_not_allow_additional_commands_if_dismissed(self): - self.driver.find_element_by_css('#alert').click() + self.driver.find_element_by_css_selector('#alert').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - with self.assertRaises(exceptions.NoSuchAlertException): - alert.get_text() + with self.assertRaises(exceptions.NoAlertPresentException): + alert.text # Prompts def test_should_allow_user_to_accept_a_prompt(self): - self.driver.find_element_by_css('#prompt').click() + self.driver.find_element_by_css_selector('#prompt').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - self.wait.until(lambda x: x.find_element_by_css('#text').text == '') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == '') def test_should_allow_user_to_dismiss_a_prompt(self): - self.driver.find_element_by_css('#prompt').click() + self.driver.find_element_by_css_selector('#prompt').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.dismiss() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'null') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null') def test_should_allow_user_to_set_the_value_of_a_prompt(self): - self.driver.find_element_by_css('#prompt').click() + self.driver.find_element_by_css_selector('#prompt').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.send_keys('cheese') alert.accept() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'cheese') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'cheese') def test_should_allow_user_to_get_text_of_a_prompt(self): - self.driver.find_element_by_css('#prompt').click() + self.driver.find_element_by_css_selector('#prompt').click() alert = self.wait.until(lambda x: x.switch_to_alert()) - value = alert.get_text() + value = alert.text alert.accept() self.assertEquals('Enter something', value) def test_prompt_should_not_allow_additional_commands_if_dismissed(self): - self.driver.find_element_by_css('#prompt').click() + self.driver.find_element_by_css_selector('#prompt').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - with self.assertRaises(exceptions.NoSuchAlertException): - alert.get_text() + with self.assertRaises(exceptions.NoAlertPresentException): + alert.text def test_prompt_should_use_default_value_if_no_keys_sent(self): - self.driver.find_element_by_css('#prompt-with-default').click() + self.driver.find_element_by_css_selector('#prompt-with-default').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'This is a default value') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'This is a default value') def test_prompt_should_have_null_value_if_dismissed(self): - self.driver.find_element_by_css('#prompt-with-default').click() + self.driver.find_element_by_css_selector('#prompt-with-default').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.dismiss() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'null') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'null') # Confirmations def test_should_allow_user_to_accept_a_confirm(self): - self.driver.find_element_by_css('#confirm').click() + self.driver.find_element_by_css_selector('#confirm').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'true') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'true') def test_should_allow_user_to_dismiss_a_confirm(self): - self.driver.find_element_by_css('#confirm').click() + self.driver.find_element_by_css_selector('#confirm').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.dismiss() - self.wait.until(lambda x: x.find_element_by_css('#text').text == 'false') + self.wait.until(lambda x: x.find_element_by_css_selector('#text').text == 'false') def test_setting_the_value_of_a_confirm_throws(self): - self.driver.find_element_by_css('#confirm').click() + self.driver.find_element_by_css_selector('#confirm').click() alert = self.wait.until(lambda x: x.switch_to_alert()) with self.assertRaises(exceptions.ElementNotVisibleException): alert.send_keys('cheese') alert.accept() def test_should_allow_user_to_get_text_of_a_confirm(self): - self.driver.find_element_by_css('#confirm').click() + self.driver.find_element_by_css_selector('#confirm').click() alert = self.wait.until(lambda x: x.switch_to_alert()) - value = alert.get_text() + value = alert.text alert.accept() self.assertEquals('cheese', value) def test_confirm_should_not_allow_additional_commands_if_dismissed(self): - self.driver.find_element_by_css('#confirm').click() + self.driver.find_element_by_css_selector('#confirm').click() alert = self.wait.until(lambda x: x.switch_to_alert()) alert.accept() - with self.assertRaises(exceptions.NoSuchAlertException): - alert.get_text() + with self.assertRaises(exceptions.NoAlertPresentException): + alert.text +""" def test_switch_to_missing_alert_fails(self): - with self.assertRaises(exceptions.NoSuchAlertException): + with self.assertRaises(exceptions.NoAlertPresentException): self.driver.switch_to_alert() - +""" if __name__ == '__main__': unittest.main() diff --git a/testing/web-platform/tests/webdriver/navigation/auth_tests.py b/testing/web-platform/tests/webdriver/navigation/auth_tests.py index 068e44fe9f6ad6..52a18cdb8ef59a 100644 --- a/testing/web-platform/tests/webdriver/navigation/auth_tests.py +++ b/testing/web-platform/tests/webdriver/navigation/auth_tests.py @@ -5,14 +5,14 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions +from selenium.common import exceptions from wptserve import server from wptserve.router import any_method from wptserve.handlers import basic_auth_handler class WebDriverAuthTest(unittest.TestCase): - # Set up class to start HTTP Server that responds to + # Set up class to start HTTP Server that responds to # test URLs with various 401 responses @classmethod def setUpClass(cls): diff --git a/testing/web-platform/tests/webdriver/navigation/forward.py b/testing/web-platform/tests/webdriver/navigation/forward.py index 6cc77c2a45856a..67ca83227bf976 100644 --- a/testing/web-platform/tests/webdriver/navigation/forward.py +++ b/testing/web-platform/tests/webdriver/navigation/forward.py @@ -11,12 +11,12 @@ class ForwardTest(base_test.WebDriverBaseTest): def test_forward(self): self.driver.get(self.webserver.where_is('navigation/res/forwardStart.html')) self.driver.get(self.webserver.where_is('navigation/res/forwardNext.html')) - nextbody = self.driver.find_element_by_css("body").text - self.driver.go_back() - currbody = self.driver.find_element_by_css("body").text + nextbody = self.driver.find_element_by_css_selector("body").text + self.driver.back() + currbody = self.driver.find_element_by_css_selector("body").text self.assertNotEqual(nextbody, currbody) - self.driver.go_forward() - currbody = self.driver.find_element_by_css("body").text + self.driver.forward() + currbody = self.driver.find_element_by_css_selector("body").text self.assertEqual(nextbody, currbody) diff --git a/testing/web-platform/tests/webdriver/navigation/forwardToNothing.py b/testing/web-platform/tests/webdriver/navigation/forwardToNothing.py index 057fb9c58284d2..99759681a0d958 100644 --- a/testing/web-platform/tests/webdriver/navigation/forwardToNothing.py +++ b/testing/web-platform/tests/webdriver/navigation/forwardToNothing.py @@ -10,9 +10,9 @@ class ForwardToNothingTest(base_test.WebDriverBaseTest): # Get a static page that must be the same upon refresh def test_forwardToNothing(self): self.driver.get(self.webserver.where_is('navigation/forwardStart.html')) - body = self.driver.find_element_by_css("body").text - self.driver.go_forward() - currbody = self.driver.find_element_by_css("body").text + body = self.driver.find_element_by_css_selector("body").text + self.driver.forward() + currbody = self.driver.find_element_by_css_selector("body").text self.assertEqual(body, currbody) diff --git a/testing/web-platform/tests/webdriver/navigation/get_from_http_test.py b/testing/web-platform/tests/webdriver/navigation/get_from_http_test.py index 714e65f2b4dbdb..d28a0d0b142676 100644 --- a/testing/web-platform/tests/webdriver/navigation/get_from_http_test.py +++ b/testing/web-platform/tests/webdriver/navigation/get_from_http_test.py @@ -10,7 +10,7 @@ class GetFromHttpTest(base_test.WebDriverBaseTest): def testGetUrlWithNoRedirectionOverHttp(self): page = self.webserver.where_is('navigation/res/empty.html') self.driver.get(page) - url = self.driver.get_current_url() + url = self.driver.current_url self.assertEquals(page, url) @@ -18,7 +18,7 @@ def testGetWillFollowTheLocationHeader(self): page = self.webserver.where_is('navigation/redirect') self.driver.get(page) expected = self.webserver.where_is('navigation/res/empty.html') - url = self.driver.get_current_url() + url = self.driver.current_url self.assertEquals(expected, url) @@ -26,7 +26,7 @@ def testGetWillFollowMetaRefreshThatRefreshesInstantly(self): page = self.webserver.where_is('navigation/res/instant-meta-redirect.html') self.driver.get(page) expected = self.webserver.where_is('navigation/res/empty.html') - url = self.driver.get_current_url() + url = self.driver.current_url self.assertEquals(expected, url) @@ -34,14 +34,14 @@ def testGetWillFollowMetaRefreshThatRefreshesAfterOneSecond(self): page = self.webserver.where_is('navigation/res/1s-meta-redirect.html') self.driver.get(page) expected = self.webserver.where_is('navigation/res/empty.html') - url = self.driver.get_current_url() + url = self.driver.current_url self.assertEquals(expected, url) def testGetWillNotFollowMetaRefreshThatRefreshesAfterMoreThanOneSecond(self): page = self.webserver.where_is('navigation/res/60s-meta-redirect.html') self.driver.get(page) - url = self.driver.get_current_url() + url = self.driver.current_url self.assertEquals(page, url) diff --git a/testing/web-platform/tests/webdriver/navigation/invalid_cert_test.py b/testing/web-platform/tests/webdriver/navigation/invalid_cert_test.py index 5f84827966dc34..b980146ee2ca7a 100644 --- a/testing/web-platform/tests/webdriver/navigation/invalid_cert_test.py +++ b/testing/web-platform/tests/webdriver/navigation/invalid_cert_test.py @@ -21,7 +21,7 @@ def testCanNavigateToSiteWithSelfSignedCert(self): 'navigation/res/empty.html').replace('http:', 'https:', 1) self.driver.get(expected) - self.assertEquals(expected, self.driver.get_current_url()) + self.assertEquals(expected, self.driver.current_url) if __name__ == '__main__': diff --git a/testing/web-platform/tests/webdriver/navigation/refresh_page.py b/testing/web-platform/tests/webdriver/navigation/refresh_page.py new file mode 100644 index 00000000000000..1e1899008b0af0 --- /dev/null +++ b/testing/web-platform/tests/webdriver/navigation/refresh_page.py @@ -0,0 +1,27 @@ +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + + +class RefreshPageTest(base_test.WebDriverBaseTest): + # Get a static page that must be the same upon refresh + def test_refreshPage(self): + self.driver.get(self.webserver.where_is('navigation/res/refreshPageStatic.html')) + body = self.driver.find_element_by_css_selector("body").text + self.driver.execute_script("document.getElementById('body').innerHTML=''") + self.driver.refresh() + newbody = self.driver.find_element_by_css_selector("body").text + self.assertEqual(body, newbody) + + self.driver.get(self.webserver.where_is('navigation/res/refreshPageDynamic.html')) + body = self.driver.find_element_by_css_selector("body").text + self.driver.refresh() + newbody = self.driver.find_element_by_css_selector("body").text + self.assertNotEqual(body, newbody) + + +if __name__ == '__main__': + unittest.main() diff --git a/testing/web-platform/tests/webdriver/runtests_p0.py b/testing/web-platform/tests/webdriver/runtests_p0.py new file mode 100644 index 00000000000000..dc52c14be63f5e --- /dev/null +++ b/testing/web-platform/tests/webdriver/runtests_p0.py @@ -0,0 +1,42 @@ +import unittest + +from unittest import TestLoader, TextTestRunner, TestSuite + +from cookie import cookie_test +from navigation import forward +from navigation import forwardToNothing +from navigation import get_from_http_test +from navigation import refresh_page +from element_location import element_location_test +from element_state import visibility_test +from element_state import method_test +from element_state import properties +from javascript import execute_script_test +from user_input import clear_test +from windows import window_manipulation +from windows import tabbing + + + +if __name__ == "__main__": + + loader = TestLoader() + suite = TestSuite(( + loader.loadTestsFromModule(cookie_test), + loader.loadTestsFromModule(forward), + loader.loadTestsFromModule(forwardToNothing), + loader.loadTestsFromModule(element_location_test), + loader.loadTestsFromModule(visibility_test), + loader.loadTestsFromModule(execute_script_test), + loader.loadTestsFromModule(clear_test), + loader.loadTestsFromModule(method_test), + loader.loadTestsFromModule(properties), + loader.loadTestsFromModule(refresh_page), + loader.loadTestsFromModule(get_from_http_test), + loader.loadTestsFromModule(window_manipulation), + loader.loadTestsFromModule(tabbing) + )) + + runner = TextTestRunner(verbosity=2) + runner.run(suite) + unittest.main() diff --git a/testing/web-platform/tests/webdriver/screenshot/__init__.py b/testing/web-platform/tests/webdriver/screenshot/__init__.py new file mode 100644 index 00000000000000..0c8107bebedd89 --- /dev/null +++ b/testing/web-platform/tests/webdriver/screenshot/__init__.py @@ -0,0 +1 @@ +__author__ = 'b-redeg' diff --git a/testing/web-platform/tests/webdriver/screenshot/res/screenshot.html b/testing/web-platform/tests/webdriver/screenshot/res/screenshot.html new file mode 100644 index 00000000000000..057bb9bf5f8568 --- /dev/null +++ b/testing/web-platform/tests/webdriver/screenshot/res/screenshot.html @@ -0,0 +1,5 @@ + + +"img" element with not fully qualified url + +  \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/screenshot/take_screenshot.py b/testing/web-platform/tests/webdriver/screenshot/take_screenshot.py new file mode 100644 index 00000000000000..20ff2bff2aefb0 --- /dev/null +++ b/testing/web-platform/tests/webdriver/screenshot/take_screenshot.py @@ -0,0 +1,15 @@ +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + + +class ScreenShotTest(base_test.WebDriverBaseTest): + # Get a static page that must be the same upon refresh + def test_screenShot(self): + self.driver.get(self.webserver.where_is('screenshot/res/screen.html')) + +if __name__ == '__main__': + unittest.main() diff --git a/testing/web-platform/tests/webdriver/timeouts/implicit_waits_tests.py b/testing/web-platform/tests/webdriver/timeouts/implicit_waits_tests.py index e39723c50c1fe5..5faa0ad122dbc3 100644 --- a/testing/web-platform/tests/webdriver/timeouts/implicit_waits_tests.py +++ b/testing/web-platform/tests/webdriver/timeouts/implicit_waits_tests.py @@ -4,7 +4,7 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions +from selenium.common import exceptions class ImplicitWaitsTests(base_test.WebDriverBaseTest): @@ -12,15 +12,15 @@ def setUp(self): self.driver.get(self.webserver.where_is('timeouts/res/implicit_waits_tests.html')) def test_find_element_by_id(self): - add = self.driver.find_element_by_css("#adder") - self.driver.set_implicit_timeout(3) + add = self.driver.find_element_by_css_selector("#adder") + self.driver.implicitly_wait(3) add.click() - self.driver.find_element_by_css("#box0") # All is well if this doesn't throw. + self.driver.find_element_by_css_selector("#box0") # All is well if this doesn't throw. def test_should_still_fail_to_find_an_element_when_implicit_waits_are_enabled(self): - self.driver.set_implicit_timeout(0.5) + self.driver.implicitly_wait(0.5) try: - self.driver.find_element_by_css("#box0") + self.driver.find_element_by_css_selector("#box0") self.fail("Expected NoSuchElementException to have been thrown") except exceptions.NoSuchElementException as e: pass @@ -28,10 +28,10 @@ def test_should_still_fail_to_find_an_element_when_implicit_waits_are_enabled(se self.fail("Expected NoSuchElementException but got " + str(e)) def test_should_return_after_first_attempt_to_find_one_after_disabling_implicit_waits(self): - self.driver.set_implicit_timeout(3) - self.driver.set_implicit_timeout(0) + self.driver.implicitly_wait(3) + self.driver.implicitly_wait(0) try: - self.driver.find_element_by_css("#box0") + self.driver.find_element_by_css_selector("#box0") self.fail("Expected NoSuchElementException to have been thrown") except exceptions.NoSuchElementException as e: pass @@ -39,24 +39,24 @@ def test_should_return_after_first_attempt_to_find_one_after_disabling_implicit_ self.fail("Expected NoSuchElementException but got " + str(e)) def test_should_implicitly_wait_until_at_least_one_element_is_found_when_searching_for_many(self): - add = self.driver.find_element_by_css("#adder") - self.driver.set_implicit_timeout(2) + add = self.driver.find_element_by_css_selector("#adder") + self.driver.implicitly_wait(2) add.click() add.click() - elements = self.driver.find_elements_by_css(".redbox") + elements = self.driver.find_elements_by_css_selector(".redbox") self.assertTrue(len(elements) >= 1) def test_should_still_fail_to_find_an_element_by_class_when_implicit_waits_are_enabled(self): - self.driver.set_implicit_timeout(0.5) - elements = self.driver.find_elements_by_css(".redbox") + self.driver.implicitly_wait(0.5) + elements = self.driver.find_elements_by_css_selector(".redbox") self.assertEqual(0, len(elements)) def test_should_return_after_first_attempt_to_find_many_after_disabling_implicit_waits(self): - add = self.driver.find_element_by_css("#adder") - self.driver.set_implicit_timeout(1.1) - self.driver.set_implicit_timeout(0) + add = self.driver.find_element_by_css_selector("#adder") + self.driver.implicitly_wait(1.1) + self.driver.implicitly_wait(0) add.click() - elements = self.driver.find_elements_by_css(".redbox") + elements = self.driver.find_elements_by_css_selector(".redbox") self.assertEqual(0, len(elements)) diff --git a/testing/web-platform/tests/webdriver/timeouts/page_load_timeouts_tests.py b/testing/web-platform/tests/webdriver/timeouts/page_load_timeouts_tests.py index 6d8693f6c2e9b1..2f0d3beebaa687 100644 --- a/testing/web-platform/tests/webdriver/timeouts/page_load_timeouts_tests.py +++ b/testing/web-platform/tests/webdriver/timeouts/page_load_timeouts_tests.py @@ -4,7 +4,7 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions +from selenium.common import exceptions class PageLoadTimeoutTest(base_test.WebDriverBaseTest): diff --git a/testing/web-platform/tests/webdriver/user_input/clear_test.py b/testing/web-platform/tests/webdriver/user_input/clear_test.py index 5375725128b999..34e82e15999d20 100644 --- a/testing/web-platform/tests/webdriver/user_input/clear_test.py +++ b/testing/web-platform/tests/webdriver/user_input/clear_test.py @@ -6,45 +6,45 @@ sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) import base_test -from webdriver import exceptions +from selenium.common import exceptions class ElementClearTest(base_test.WebDriverBaseTest): def test_writable_text_input_element_should_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_input_page.html")) - e = self.driver.find_element_by_css("#writableTextInput") + e = self.driver.find_element_by_css_selector("#writableTextInput") e.clear() self.assertEquals("", e.get_attribute("value")) def test_disabled_text_input_element_should_not_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_input_page.html")) - e = self.driver.find_element_by_css("#disabledTextInput") + e = self.driver.find_element_by_css_selector("#disabledTextInput") self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear()) def test_read_only_text_input_element_should_not_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_input_page.html")) - e = self.driver.find_element_by_css("#readOnlyTextInput") + e = self.driver.find_element_by_css_selector("#readOnlyTextInput") self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear()) def test_writable_text_area_element_should_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_writable_textarea_page.html")) - e = self.driver.find_element_by_css("#writableTextArea") + e = self.driver.find_element_by_css_selector("#writableTextArea") e.clear() self.assertEquals("", e.get_attribute("value")) def test_disabled_text_area_element_should_not_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_disabled_textarea_page.html")) - e = self.driver.find_element_by_css("#disabledTextArea") + e = self.driver.find_element_by_css_selector("#disabledTextArea") self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear()) def test_read_only_text_input_element_should_not_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_readonly_textarea_page.html")) - e = self.driver.find_element_by_css("#readOnlyTextArea") + e = self.driver.find_element_by_css_selector("#readOnlyTextArea") self.assertRaises(exceptions.InvalidElementStateException, lambda: e.clear()) def test_content_editable_area_should_clear(self): self.driver.get(self.webserver.where_is("user_input/res/element_clear_contenteditable_page.html")) - e = self.driver.find_element_by_css("#contentEditableElement") + e = self.driver.find_element_by_css_selector("#contentEditableElement") e.clear() self.assertEquals("", e.text) diff --git a/testing/web-platform/tests/webdriver/user_input/click_test.py b/testing/web-platform/tests/webdriver/user_input/click_test.py new file mode 100644 index 00000000000000..c151f9bcdb2cf5 --- /dev/null +++ b/testing/web-platform/tests/webdriver/user_input/click_test.py @@ -0,0 +1,349 @@ +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + +repo_root = os.path.abspath(os.path.join(__file__, "../../..")) +sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver")) +from webdriver import exceptions, wait + + +class ClickTest(base_test.WebDriverBaseTest): + def setUp(self): + self.wait = wait.WebDriverWait(self.driver, 5, ignored_exceptions = [exceptions.NoSuchAlertException]) + self.driver.get(self.webserver.where_is('modal/res/alerts.html')) + + def tearDown(self): + try: + self.driver.switch_to_alert().dismiss() + except exceptions.NoSuchAlertException: + pass + + def test_click_div(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("div") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "div") + + def test_click_p(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("p") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "p") + + def test_click_h1(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("h1") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "h1") + + def test_click_pre(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("pre") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "pre") + + def test_click_ol(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("ol") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "ol") + + def test_click_ul(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("ul") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "ul") + + def test_click_a(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("a") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "a") + + def test_click_img(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("img") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "img") + + def test_click_video(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("video") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "video") + + def test_click_canvas(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("canvas") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "canvas") + + def test_click_progress(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("progress") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "progress") + + def test_click_textarea(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("textarea") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "textarea") + + def test_click_button(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("button") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "button") + + def test_click_svg(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("svg") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "svg") + + def test_click_input_range(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_range") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_range") + + def test_click_input_button(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_button") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_button") + + def test_click_input_submit(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_submit") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_submit") + + def test_click_input_reset(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_reset") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_reset") + + def test_click_input_checkbox(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_checkbox") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_checkbox") + + def test_click_input_radio(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_radio") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_radio") + + def test_click_input_text(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_text") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_text") + + def test_click_input_number(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_number") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_number") + + def test_click_input_tel(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_tel") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_tel") + + def test_click_input_url(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_url") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_url") + + def test_click_input_email(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_email") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_email") + + def test_click_input_search(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_search") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_search") + + def test_click_input_image(self): + self.driver.get(self.webserver.where_is("user_input/res/click.html")) + + element = self.driver.find_element_by_id("input_image") + element.click() + + alert = self.wait.until(lambda x: x.switch_to_alert()) + value = alert.get_text() + alert.accept() + + self.assertEquals(value, "input_image") + +if __name__ == "__main__": + unittest.main() diff --git a/testing/web-platform/tests/webdriver/user_input/res/click.html b/testing/web-platform/tests/webdriver/user_input/res/click.html new file mode 100644 index 00000000000000..3517bfca89766f --- /dev/null +++ b/testing/web-platform/tests/webdriver/user_input/res/click.html @@ -0,0 +1,45 @@ + + + + + + + + + +
div
+

p

+

h1

+
pre
+
    ol
+ + a + + + canvas + progress + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/user_input/res/text-form-landing.html b/testing/web-platform/tests/webdriver/user_input/res/text-form-landing.html new file mode 100644 index 00000000000000..345e60e0409d27 --- /dev/null +++ b/testing/web-platform/tests/webdriver/user_input/res/text-form-landing.html @@ -0,0 +1,8 @@ + + + + Text Form Landing + + + + \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/user_input/res/text-form.html b/testing/web-platform/tests/webdriver/user_input/res/text-form.html new file mode 100644 index 00000000000000..d99ec899dcd446 --- /dev/null +++ b/testing/web-platform/tests/webdriver/user_input/res/text-form.html @@ -0,0 +1,25 @@ + + + Text Form + + + + +

+
+ + + + +
+ + \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/user_input/sendkeys_test.py b/testing/web-platform/tests/webdriver/user_input/sendkeys_test.py new file mode 100644 index 00000000000000..d2edcbabd9ac01 --- /dev/null +++ b/testing/web-platform/tests/webdriver/user_input/sendkeys_test.py @@ -0,0 +1,96 @@ +import os +import sys +import random +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + +repo_root = os.path.abspath(os.path.join(__file__, "../../..")) +sys.path.insert(1, os.path.join(repo_root, "tools", "webdriver")) +from webdriver import exceptions + + +class SendKeysTest(base_test.WebDriverBaseTest): + def setUp(self): + self.driver.get(self.webserver.where_is("user_input/res/text-form.html")) + + def test_send_simple_string(self): + element = self.driver.find_element_by_id("Text1") + element.send_keys("lorem ipsum") + + self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"lorem ipsum") + + def test_send_return(self): + element = self.driver.find_element_by_id("Text1") + returnkey = unichr(int("E006", 16)) + element.send_keys([returnkey]) + + self.assertEquals(u"" + self.driver.get_current_url(), u"" + self.webserver.where_is("user_input/res/text-form-landing.html?e=mc2")) + + def test_send_backspace(self): + element = self.driver.find_element_by_id("Text1") + element.send_keys("world ") + element.send_keys("wide ") + element.send_keys("web ") + element.send_keys("consortium") + + backspace= unichr(int("E003", 16)) + for i in range(0, 11): + element.send_keys([backspace]) + + self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"world wide web") + + def test_send_tab(self): + element1 = self.driver.find_element_by_id("Text1") + element2 = self.driver.find_element_by_id("Text2") + element1.send_keys("typing here") + + tab= unichr(int("E004", 16)) + element1.send_keys([tab]) + + output = self.driver.find_element_by_id("output") + tab_pressed = output.get_attribute("checked") + self.assertEquals(tab_pressed, u"true") + + def test_send_shift(self): + element = self.driver.find_element_by_id("Text1") + element.send_keys("low ") + + shift= unichr(int("E008", 16)) + element.send_keys([shift , "u", "p", shift]) + + self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"low UP") + + def test_send_arrow_keys(self): + element = self.driver.find_element_by_id("Text1") + + element.send_keys("internet") + + backspace= unichr(int("E003", 16)) + left= unichr(int("E012", 16)) + right= unichr(int("E014", 16)) + for i in range(0, 4): + element.send_keys([left]) + + element.send_keys([backspace]) + element.send_keys([right]) + element.send_keys("a") + + self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"intranet") + + def test_select_text_with_shift(self): + element = self.driver.find_element_by_id("Text1") + + element.send_keys("WebDriver") + backspace= unichr(int("E003", 16)) + shift= unichr(int("E008", 16)) + left= unichr(int("E012", 16)) + + element.send_keys([shift, left, left, left, left, left, left, backspace]) + + self.assertEquals(self.driver.find_element_by_id("text").get_text(), u"Web") + + +if __name__ == "__main__": + unittest.main() diff --git a/testing/web-platform/tests/webdriver/webdriver.cfg b/testing/web-platform/tests/webdriver/webdriver.cfg index 98ecde7bd7c402..cb74f56ceaaca9 100644 --- a/testing/web-platform/tests/webdriver/webdriver.cfg +++ b/testing/web-platform/tests/webdriver/webdriver.cfg @@ -21,6 +21,10 @@ mode: compatibility capabilities: {"browserName": "ie"} mode: compatibility +[edge] +capabilities: {"browserName": "edge"} +mode: compatibility + [ios-driver] capabilities: {"browserName": "iphone"} mode: compatibility diff --git a/testing/web-platform/tests/webdriver/windows/__init__.py b/testing/web-platform/tests/webdriver/windows/__init__.py new file mode 100644 index 00000000000000..0c8107bebedd89 --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/__init__.py @@ -0,0 +1 @@ +__author__ = 'b-redeg' diff --git a/testing/web-platform/tests/webdriver/windows/res/win1.html b/testing/web-platform/tests/webdriver/windows/res/win1.html new file mode 100644 index 00000000000000..b8bf7e80b5bb32 --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/res/win1.html @@ -0,0 +1,5 @@ + + +window one + +
win2
\ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/windows/res/win2.html b/testing/web-platform/tests/webdriver/windows/res/win2.html new file mode 100644 index 00000000000000..81a068fa8885cf --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/res/win2.html @@ -0,0 +1,5 @@ + + +window two + +  \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/windows/res/win3.html b/testing/web-platform/tests/webdriver/windows/res/win3.html new file mode 100644 index 00000000000000..d3ee6944b57cfc --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/res/win3.html @@ -0,0 +1,5 @@ + + +window three + +  \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/windows/res/win4.html b/testing/web-platform/tests/webdriver/windows/res/win4.html new file mode 100644 index 00000000000000..ef35f76176902a --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/res/win4.html @@ -0,0 +1,5 @@ + + +window four + +  \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/windows/res/win5.html b/testing/web-platform/tests/webdriver/windows/res/win5.html new file mode 100644 index 00000000000000..673d2a19a1fce3 --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/res/win5.html @@ -0,0 +1,5 @@ + + +window five + +  \ No newline at end of file diff --git a/testing/web-platform/tests/webdriver/windows/tabbing.py b/testing/web-platform/tests/webdriver/windows/tabbing.py new file mode 100644 index 00000000000000..a6b5f99bf37429 --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/tabbing.py @@ -0,0 +1,30 @@ +# -*- mode: python; fill-column: 100; comment-column: 100; -*- + +import os +import sys +import unittest +import time + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test +from selenium.common import exceptions +from selenium.webdriver.common.keys import Keys +from selenium.webdriver.common.action_chains import ActionChains + + +class tabbingTest(base_test.WebDriverBaseTest): + def test_open_close_tab(self): + self.driver.get(self.webserver.where_is("windows/res/win1.html")) + self.driver.find_element_by_tag_name("div").click() + h = self.driver.window_handles + self.assertEquals(2, len(h)) + self.driver.switch_to.window(h[1]) + try: + self.driver.switch_to.window("does not exist") + self.fail("NoSuchWindowException expected") + except exceptions.NoSuchWindowException: + pass + self.driver.close() + +if __name__ == "__main__": + unittest.main() diff --git a/testing/web-platform/tests/webdriver/windows/window_manipulation.py b/testing/web-platform/tests/webdriver/windows/window_manipulation.py new file mode 100644 index 00000000000000..027716727760c0 --- /dev/null +++ b/testing/web-platform/tests/webdriver/windows/window_manipulation.py @@ -0,0 +1,43 @@ +# -*- mode: python; fill-column: 100; comment-column: 100; -*- + +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test +from selenium.common import exceptions + + +class WindowingTest(base_test.WebDriverBaseTest): + def test_maximize(self): + #self.driver.get(self.webserver.where_is("windows/res/win1.html")) + self.driver.maximize_window() + + def test_window_size_manipulation(self): + #self.driver.get(self.webserver.where_is("windows/res/win1.html")) + self.driver.set_window_size(400, 400) + window_size = self.driver.get_window_size() + self.assertTrue("width" in window_size) + self.assertTrue("height" in window_size) + self.assertEquals({"width": 400, "height":400}, window_size) + + """ + todo: make that work + see: https://w3c.github.io/webdriver/webdriver-spec.html#setwindowsize + result = self.driver.set_window_size(100, 100) + self.assertTrue("status" in result) + self.assertEquals(result["status"], 500) + """ + + def test_window_position_manipulation(self): + #self.driver.get(self.webserver.where_is("windows/res/win1.html")) + self.driver.set_window_position(400, 400) + window_position = self.driver.get_window_position() + self.assertTrue("x" in window_position) + self.assertTrue("y" in window_position) + self.assertEquals({"x": 400, "y": 400}, window_position) + + +if __name__ == "__main__": + unittest.main() diff --git a/testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html b/testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html index f5b142b93c4c17..78ed9e4ca2a674 100644 --- a/testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html +++ b/testing/web-platform/tests/websockets/interfaces/WebSocket/close/close-multiple.html @@ -14,9 +14,14 @@ ws.close(); ws.close(); ws.close(); - setTimeout(t.step_func(function() { + var f = t.step_func(function() { + if (i < 1) { + setTimeout(f, 500); + return; + } assert_equals(i, 1); t.done() - }), 50); + }); + setTimeout(f, 500); }); diff --git a/testing/web-platform/tests/webstorage/eventTestHarness.js b/testing/web-platform/tests/webstorage/eventTestHarness.js index 6d1eee9336c2db..893d25058a24b6 100644 --- a/testing/web-platform/tests/webstorage/eventTestHarness.js +++ b/testing/web-platform/tests/webstorage/eventTestHarness.js @@ -33,6 +33,20 @@ function countStorageEvents(callback, expectedNumEvents, times) setTimeout(onTimeout, 20); } +function clearStorage(storageName, callback) +{ + if (window[storageName].length === 0) { + storageEventList = []; + setTimeout(callback, 0); + } else { + window[storageName].clear(); + runAfterNStorageEvents(function() { + storageEventList = []; + callback(); + }, 1); + } +} + function testStorages(testCallback) { testCallback("sessionStorage"); diff --git a/testing/web-platform/tests/webstorage/event_basic.js b/testing/web-platform/tests/webstorage/event_basic.js index 5dfbe032c876a0..fe8446cec6a23f 100644 --- a/testing/web-platform/tests/webstorage/event_basic.js +++ b/testing/web-platform/tests/webstorage/event_basic.js @@ -4,15 +4,11 @@ testStorages(function(storageString) { var storage = window[storageString]; t.add_cleanup(function() { storage.clear() }); - storageEventList = new Array(); - storage.clear(); + clearStorage(storageString, t.step_func(step1)); assert_equals(storage.length, 0, "storage.length"); - runAfterNStorageEvents(t.step_func(step1), 0); - function step1(msg) { - storageEventList = new Array(); storage.setItem('FOO', 'BAR'); runAfterNStorageEvents(t.step_func(step2), 1); diff --git a/testing/web-platform/tests/webstorage/event_body_attribute.js b/testing/web-platform/tests/webstorage/event_body_attribute.js index 8220349f83b962..d6256355622737 100644 --- a/testing/web-platform/tests/webstorage/event_body_attribute.js +++ b/testing/web-platform/tests/webstorage/event_body_attribute.js @@ -4,11 +4,14 @@ testStorages(function(storageString) { var storage = window[storageString]; t.add_cleanup(function() { storage.clear() }); - storage.clear(); + clearStorage(storageString, t.step_func(step0)); assert_equals(storage.length, 0, "storage.length"); - iframe.onload = t.step_func(step1); - iframe.src = "resources/event_body_handler.html"; + function step0(msg) + { + iframe.onload = t.step_func(step1); + iframe.src = "resources/event_body_handler.html"; + } function step1(msg) { diff --git a/testing/web-platform/tests/webstorage/event_case_sensitive.js b/testing/web-platform/tests/webstorage/event_case_sensitive.js index 0b7a9b22a3290b..2729a3bed3c467 100644 --- a/testing/web-platform/tests/webstorage/event_case_sensitive.js +++ b/testing/web-platform/tests/webstorage/event_case_sensitive.js @@ -4,11 +4,14 @@ testStorages(function(storageString) { var storage = window[storageString]; t.add_cleanup(function() { storage.clear() }); - storage.clear(); + clearStorage(storageString, t.step_func(step0)); assert_equals(storage.length, 0, "storage.length"); - storage.foo = "test"; - runAfterNStorageEvents(t.step_func(step1), 1); + function step0(msg) + { + storage.foo = "test"; + runAfterNStorageEvents(t.step_func(step1), 1); + } function step1(msg) { diff --git a/testing/web-platform/tests/webstorage/event_constructor_eventinit.html b/testing/web-platform/tests/webstorage/event_constructor_eventinit.html index 31b238acc1952f..3b4a77cb2cb319 100644 --- a/testing/web-platform/tests/webstorage/event_constructor_eventinit.html +++ b/testing/web-platform/tests/webstorage/event_constructor_eventinit.html @@ -9,21 +9,18 @@

event_Constructor

diff --git a/testing/web-platform/tests/webstorage/event_local_key.html b/testing/web-platform/tests/webstorage/event_local_key.html index b2e89e25ad9499..84512da2d2d5b7 100644 --- a/testing/web-platform/tests/webstorage/event_local_key.html +++ b/testing/web-platform/tests/webstorage/event_local_key.html @@ -4,40 +4,35 @@ WebStorage Test: localStorage event - key -

event_local_key

diff --git a/testing/web-platform/tests/webstorage/event_local_newvalue.html b/testing/web-platform/tests/webstorage/event_local_newvalue.html index 67a6a5d218c3d3..2b743c37bfc7ea 100644 --- a/testing/web-platform/tests/webstorage/event_local_newvalue.html +++ b/testing/web-platform/tests/webstorage/event_local_newvalue.html @@ -4,40 +4,35 @@ WebStorage Test: localStorage event - newValue -

event_local_newValue

diff --git a/testing/web-platform/tests/webstorage/event_local_oldvalue.html b/testing/web-platform/tests/webstorage/event_local_oldvalue.html index d84d9e0a6e5125..87c79aa07d4058 100644 --- a/testing/web-platform/tests/webstorage/event_local_oldvalue.html +++ b/testing/web-platform/tests/webstorage/event_local_oldvalue.html @@ -4,40 +4,35 @@ WebStorage Test: localStorage event - oldValue -

event_local_oldValue

diff --git a/testing/web-platform/tests/webstorage/event_local_removeitem.html b/testing/web-platform/tests/webstorage/event_local_removeitem.html index ba911254d59b22..7b81ea2bac1f8b 100644 --- a/testing/web-platform/tests/webstorage/event_local_removeitem.html +++ b/testing/web-platform/tests/webstorage/event_local_removeitem.html @@ -9,10 +9,11 @@ diff --git a/testing/web-platform/tests/webstorage/event_local_storagearea.html b/testing/web-platform/tests/webstorage/event_local_storagearea.html index 33788de88a5bb0..db4b114a951a43 100644 --- a/testing/web-platform/tests/webstorage/event_local_storagearea.html +++ b/testing/web-platform/tests/webstorage/event_local_storagearea.html @@ -4,41 +4,36 @@ WebStorage Test: localStorage event - storageArea -

event_local_storageArea

diff --git a/testing/web-platform/tests/webstorage/event_local_storageeventinit.html b/testing/web-platform/tests/webstorage/event_local_storageeventinit.html index 1c0321e58ecb5f..3a7e5d18f47926 100644 --- a/testing/web-platform/tests/webstorage/event_local_storageeventinit.html +++ b/testing/web-platform/tests/webstorage/event_local_storageeventinit.html @@ -9,20 +9,18 @@

event_local_StorageEventInit

diff --git a/testing/web-platform/tests/webstorage/event_local_url.html b/testing/web-platform/tests/webstorage/event_local_url.html index ec2d04d0d99ff1..7345ce3736bbb2 100644 --- a/testing/web-platform/tests/webstorage/event_local_url.html +++ b/testing/web-platform/tests/webstorage/event_local_url.html @@ -4,45 +4,40 @@ WebStorage Test: localStorage event - url -

event_local_url

diff --git a/testing/web-platform/tests/webstorage/event_session_key.html b/testing/web-platform/tests/webstorage/event_session_key.html index 7e628390ffd9c5..62600aa3942b33 100644 --- a/testing/web-platform/tests/webstorage/event_session_key.html +++ b/testing/web-platform/tests/webstorage/event_session_key.html @@ -4,40 +4,35 @@ WebStorage Test: sessionStorage event - key -

event_session_key

diff --git a/testing/web-platform/tests/webstorage/event_session_newvalue.html b/testing/web-platform/tests/webstorage/event_session_newvalue.html index a2824983f1f751..1f367988e0812f 100644 --- a/testing/web-platform/tests/webstorage/event_session_newvalue.html +++ b/testing/web-platform/tests/webstorage/event_session_newvalue.html @@ -4,23 +4,20 @@ WebStorage Test: sessionStorage event - newValue -

event_session_newValue

diff --git a/testing/web-platform/tests/webstorage/event_session_oldvalue.html b/testing/web-platform/tests/webstorage/event_session_oldvalue.html index cd61b45fdcdf5c..00400df252432e 100644 --- a/testing/web-platform/tests/webstorage/event_session_oldvalue.html +++ b/testing/web-platform/tests/webstorage/event_session_oldvalue.html @@ -4,40 +4,35 @@ WebStorage Test: sessionStorage event - oldValue -

event_session_oldValue

diff --git a/testing/web-platform/tests/webstorage/event_session_removeitem.html b/testing/web-platform/tests/webstorage/event_session_removeitem.html index 268cfeb42a0b7e..7b3c6446ed95a5 100644 --- a/testing/web-platform/tests/webstorage/event_session_removeitem.html +++ b/testing/web-platform/tests/webstorage/event_session_removeitem.html @@ -9,10 +9,11 @@ diff --git a/testing/web-platform/tests/webstorage/event_session_storagearea.html b/testing/web-platform/tests/webstorage/event_session_storagearea.html index 023866218c2a07..d2c2ba437e8e8b 100644 --- a/testing/web-platform/tests/webstorage/event_session_storagearea.html +++ b/testing/web-platform/tests/webstorage/event_session_storagearea.html @@ -4,40 +4,36 @@ WebStorage Test: sessionStorage event - storageArea -

event_session_storageArea

diff --git a/testing/web-platform/tests/webstorage/event_session_storageeventinit.html b/testing/web-platform/tests/webstorage/event_session_storageeventinit.html index 454a03d3ea14f1..69539df41a401d 100644 --- a/testing/web-platform/tests/webstorage/event_session_storageeventinit.html +++ b/testing/web-platform/tests/webstorage/event_session_storageeventinit.html @@ -9,20 +9,17 @@

event_session_StorageEventInit

diff --git a/testing/web-platform/tests/webstorage/event_session_url.html b/testing/web-platform/tests/webstorage/event_session_url.html index 9e312a882ee252..85250acc2b9d19 100644 --- a/testing/web-platform/tests/webstorage/event_session_url.html +++ b/testing/web-platform/tests/webstorage/event_session_url.html @@ -4,45 +4,40 @@ WebStorage Test: sessionStorage event - url -

event_session_url

diff --git a/testing/web-platform/tests/webstorage/event_setattribute.js b/testing/web-platform/tests/webstorage/event_setattribute.js index a143cd6b2ea116..9d8e328fcaff77 100644 --- a/testing/web-platform/tests/webstorage/event_setattribute.js +++ b/testing/web-platform/tests/webstorage/event_setattribute.js @@ -4,16 +4,17 @@ testStorages(function(storageString) { var storage = window[storageString]; t.add_cleanup(function() { storage.clear() }); - storageEventList = new Array(); - storage.clear(); + clearStorage(storageString, t.step_func(step0)); assert_equals(storage.length, 0, "storage.length"); - iframe.onload = t.step_func(step1); - iframe.src = "resources/event_setattribute_handler.html"; + function step0(msg) + { + iframe.onload = t.step_func(step1); + iframe.src = "resources/event_setattribute_handler.html"; + } function step1(msg) { - storageEventList = new Array(); storage.setItem('FOO', 'BAR'); runAfterNStorageEvents(t.step_func(step2), 1); diff --git a/testing/web-platform/tests/webstorage/idlharness.html b/testing/web-platform/tests/webstorage/idlharness.html index 094e12616eee0a..454e441d6f968d 100644 --- a/testing/web-platform/tests/webstorage/idlharness.html +++ b/testing/web-platform/tests/webstorage/idlharness.html @@ -31,7 +31,7 @@

Web Storage IDL tests

readonly attribute unsigned long length; DOMString? key(unsigned long index); getter DOMString? getItem(DOMString key); - setter creator void setItem(DOMString key, DOMString value); + setter void setItem(DOMString key, DOMString value); deleter void removeItem(DOMString key); void clear(); }; diff --git a/testing/web-platform/tests/webstorage/resources/local_set_item_remove_iframe.html b/testing/web-platform/tests/webstorage/resources/local_set_item_remove_iframe.html index 7a4962f8e58fd8..7451594c898c40 100644 --- a/testing/web-platform/tests/webstorage/resources/local_set_item_remove_iframe.html +++ b/testing/web-platform/tests/webstorage/resources/local_set_item_remove_iframe.html @@ -2,7 +2,7 @@