diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-01 18:03:57 +0530 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-04-01 18:03:57 +0530 |
commit | 7ea01868fcb81d5b42a33eb6989ef8c044114430 (patch) | |
tree | a14b4f23f6a0bba47b23e725269be2e6125145a7 /tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py | |
parent | 95819a4334526751168de0b9868dbd76e27b0d57 (diff) | |
parent | 78369e95cf7ed0813cb9342747caa4984ae7c527 (diff) | |
download | servo-7ea01868fcb81d5b42a33eb6989ef8c044114430.tar.gz servo-7ea01868fcb81d5b42a33eb6989ef8c044114430.zip |
Auto merge of #10315 - jgraham:update-wpt, r=Ms2ger
Update web-platform-tests to 5582e4d2bfcfd1fa9f105406b143170ee2af7db1
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10315)
<!-- Reviewable:end -->
Diffstat (limited to 'tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py')
-rw-r--r-- | tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py b/tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py new file mode 100644 index 00000000000..dd7cfca946c --- /dev/null +++ b/tests/wpt/web-platform-tests/old-tests/webdriver/javascript/execute_script_test.py @@ -0,0 +1,129 @@ +import os +import sys +import unittest + +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): + def test_ecmascript_translates_null_return_to_none(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("return null;") + self.assertIsNone(result) + + def test_ecmascript_translates_undefined_return_to_none(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("var undef; return undef;") + self.assertIsNone(result) + + def test_can_return_numbers_from_scripts(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + self.assertEquals(1, self.driver.execute_script("return 1;")) + self.assertEquals(3.14, self.driver.execute_script("return 3.14;")) + + def test_can_return_strings_from_scripts(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + self.assertEquals("hello, world!", + self.driver.execute_script("return 'hello, world!'")) + + def test_can_return_booleans_from_scripts(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + self.assertTrue(self.driver.execute_script("return true;")) + self.assertFalse(self.driver.execute_script("return false;")) + + def test_can_return_an_array_of_primitives(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + + result = self.driver.execute_script("return [1, false, null, 3.14]") + self.assertListEqual([1, False, None, 3.14], result) + + def test_can_return_nested_arrays(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("return [[1, 2, [3]]]") + + self.assertIsInstance(result, list) + self.assertEquals(1, len(result)) + + result = result[0] + self.assertListEqual([1, 2], result[:2]) + self.assertListEqual([3], result[2]) + + def test_can_return_object_literals(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + + result = self.driver.execute_script("return {}") + self.assertDictEqual({}, result) + + result = self.driver.execute_script("return {a: 1, b: false, c: null}") + self.assertDictEqual({ + "a": 1, + "b": False, + "c": None + }, result) + + def test_can_return_complex_object_literals(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("return {a:{b: 'hello'}}") + self.assertIsInstance(result, dict) + self.assertIsInstance(result['a'], dict) + self.assertDictEqual({"b": "hello"}, result["a"]) + + def test_dom_element_return_value_is_translated_to_a_web_element(self): + self.driver.get(self.webserver.where_is( + "javascript/res/return_document_body.html")) + + result = self.driver.execute_script("return document.body") + self.assertEquals(result.text, "Hello, world!") + + def test_return_an_array_of_dom_elements(self): + self.driver.get(self.webserver.where_is( + "javascript/res/return_array_of_dom_elements.html")) + + result = self.driver.execute_script( + "var nodes = document.getElementsByTagName('div');" + "return [nodes[0], nodes[1]]") + + self.assertIsInstance(result, list) + self.assertEquals(2, len(result)) + self.assertEquals("a", result[0].text) + self.assertEquals("b", result[1].text) + + def test_node_list_return_value_is_translated_to_list_of_web_elements(self): + self.driver.get(self.webserver.where_is( + "javascript/res/return_array_of_dom_elements.html")) + + result = self.driver.execute_script( + "return document.getElementsByTagName('div');") + + self.assertIsInstance(result, list) + self.assertEquals(2, len(result)) + self.assertEquals("a", result[0].text) + self.assertEquals("b", result[1].text) + + def test_return_object_literal_with_dom_element_property(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("return {a: document.body}") + self.assertIsInstance(result, dict) + self.assertEquals("body", result["a"].tag_name) + + def test_scripts_execute_in_anonymous_function_and_do_not_pollute_global_scope(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + self.driver.execute_script("var x = 1;") + self.assertEquals("undefined", self.driver.execute_script("return typeof x;")); + + def test_scripts_can_modify_context_window_object(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + self.driver.execute_script("window.x = 1;") + self.assertEquals("number", self.driver.execute_script("return typeof x;")); + self.assertEquals(1, self.driver.execute_script("return x;")); + + def test_that_ecmascript_returns_document_title(self): + self.driver.get(self.webserver.where_is("javascript/res/execute_script_test.html")) + result = self.driver.execute_script("return document.title;") + self.assertEquals("executeScript test", result) + + +if __name__ == "__main__": + unittest.main() |