diff options
author | James Graham <james@hoppipolla.co.uk> | 2015-03-27 09:15:38 +0000 |
---|---|---|
committer | James Graham <james@hoppipolla.co.uk> | 2015-04-03 23:28:54 +0100 |
commit | 1a81b18b9f22d7bc1a967d08fcc7fbcf2ee200f5 (patch) | |
tree | 1511d894cf8ebebf86f0390d52dfce549fe8838e /tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py | |
parent | b2a5225831a8eee3ff596dce2be8dc08df4300a0 (diff) | |
download | servo-1a81b18b9f22d7bc1a967d08fcc7fbcf2ee200f5.tar.gz servo-1a81b18b9f22d7bc1a967d08fcc7fbcf2ee200f5.zip |
Update web-platform-tests to revision 0d318188757a9c996e20b82db201fd04de5aa255
Diffstat (limited to 'tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py')
m--------- | tests/wpt/web-platform-tests | 0 | ||||
-rw-r--r-- | tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py | 128 |
2 files changed, 128 insertions, 0 deletions
diff --git a/tests/wpt/web-platform-tests b/tests/wpt/web-platform-tests deleted file mode 160000 -Subproject 29dfb8944e535d439ca94cf7d1b1d9138a8ad11 diff --git a/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py b/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py new file mode 100644 index 00000000000..72810a5fe04 --- /dev/null +++ b/tests/wpt/web-platform-tests/webdriver/javascript/execute_script_test.py @@ -0,0 +1,128 @@ +import os +import sys +import unittest + +sys.path.insert(1, os.path.abspath(os.path.join(__file__, "../.."))) +import base_test + + +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() |