Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(306)

Side by Side Diff: chrome/test/chromedriver/run_py_tests.py

Issue 11746025: [chromedriver]Implement command: title. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Resolved merge conflict. Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/test/chromedriver/commands.cc ('k') | chrome/test/chromedriver/webserver.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """End to end tests for ChromeDriver.""" 6 """End to end tests for ChromeDriver."""
7 7
8 import ctypes 8 import ctypes
9 import optparse 9 import optparse
10 import os 10 import os
11 import sys 11 import sys
12 import unittest 12 import unittest
13 13
14 import chromedriver 14 import chromedriver
15 import webserver
15 16
16 _THIS_DIR = os.path.abspath(os.path.dirname(__file__)) 17 _THIS_DIR = os.path.abspath(os.path.dirname(__file__))
17 sys.path.insert(0, os.path.join(_THIS_DIR, os.pardir, 'pylib')) 18 sys.path.insert(0, os.path.join(_THIS_DIR, os.pardir, 'pylib'))
18 19
20 from common import chrome_paths
19 from common import unittest_util 21 from common import unittest_util
20 22
21 23
22 class ChromeDriverTest(unittest.TestCase): 24 class ChromeDriverTest(unittest.TestCase):
23 """End to end tests for ChromeDriver.""" 25 """End to end tests for ChromeDriver."""
24 26
27 @classmethod
28 def setUpClass(cls):
29 cls._http_server = webserver.WebServer(chrome_paths.GetTestData())
30
31 @classmethod
32 def tearDownClass(cls):
33 cls._http_server.Shutdown()
34
35 @staticmethod
36 def GetHttpUrlForFile(file_path):
37 return ChromeDriverTest._http_server.GetUrl() + file_path
38
39 def setUp(self):
40 self._driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY)
41
42 def tearDown(self):
43 self._driver.Quit()
44
25 def testStartStop(self): 45 def testStartStop(self):
26 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY) 46 pass
27 driver.Quit()
28 47
29 def testLoadUrl(self): 48 def testLoadUrl(self):
30 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY) 49 self._driver.Load(self.GetHttpUrlForFile('/chromedriver/empty.html'))
31 driver.Load('http://www.google.com')
32 driver.Quit()
33 50
34 def testEvaluateScript(self): 51 def testEvaluateScript(self):
35 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY) 52 self.assertEquals(1, self._driver.ExecuteScript('return 1'))
36 self.assertEquals(1, driver.ExecuteScript('return 1')) 53 self.assertEquals(None, self._driver.ExecuteScript(''))
37 self.assertEquals(None, driver.ExecuteScript(''))
38 driver.Quit()
39 54
40 def testEvaluateScriptWithArgs(self): 55 def testEvaluateScriptWithArgs(self):
41 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY)
42 script = ('document.body.innerHTML = "<div>b</div><div>c</div>";' + 56 script = ('document.body.innerHTML = "<div>b</div><div>c</div>";' +
43 'return {stuff: document.querySelectorAll("div")};') 57 'return {stuff: document.querySelectorAll("div")};')
44 stuff = driver.ExecuteScript(script)['stuff'] 58 stuff = self._driver.ExecuteScript(script)['stuff']
45 script = 'return arguments[0].innerHTML + arguments[1].innerHTML'; 59 script = 'return arguments[0].innerHTML + arguments[1].innerHTML';
46 self.assertEquals('bc', driver.ExecuteScript(script, stuff[0], stuff[1])) 60 self.assertEquals(
47 driver.Quit() 61 'bc', self._driver.ExecuteScript(script, stuff[0], stuff[1]))
48 62
49 def testEvaluateInvalidScript(self): 63 def testEvaluateInvalidScript(self):
50 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY)
51 self.assertRaises(chromedriver.ChromeDriverException, 64 self.assertRaises(chromedriver.ChromeDriverException,
52 driver.ExecuteScript, '{{{') 65 self._driver.ExecuteScript, '{{{')
53 driver.Quit()
54 66
55 def testSwitchToFrame(self): 67 def testSwitchToFrame(self):
56 driver = chromedriver.ChromeDriver(_CHROMEDRIVER_LIB, _CHROME_BINARY) 68 self._driver.ExecuteScript(
57 driver.ExecuteScript(
58 'var frame = document.createElement("iframe");' 69 'var frame = document.createElement("iframe");'
59 'frame.id="id";' 70 'frame.id="id";'
60 'frame.name="name";' 71 'frame.name="name";'
61 'document.body.appendChild(frame);') 72 'document.body.appendChild(frame);')
62 self.assertTrue(driver.ExecuteScript('return window.top == window')) 73 self.assertTrue(self._driver.ExecuteScript('return window.top == window'))
63 driver.SwitchToFrame('id') 74 self._driver.SwitchToFrame('id')
64 self.assertTrue(driver.ExecuteScript('return window.top != window')) 75 self.assertTrue(self._driver.ExecuteScript('return window.top != window'))
65 driver.SwitchToMainFrame() 76 self._driver.SwitchToMainFrame()
66 self.assertTrue(driver.ExecuteScript('return window.top == window')) 77 self.assertTrue(self._driver.ExecuteScript('return window.top == window'))
67 driver.SwitchToFrame('name') 78 self._driver.SwitchToFrame('name')
68 self.assertTrue(driver.ExecuteScript('return window.top != window')) 79 self.assertTrue(self._driver.ExecuteScript('return window.top != window'))
69 driver.SwitchToMainFrame() 80 self._driver.SwitchToMainFrame()
70 self.assertTrue(driver.ExecuteScript('return window.top == window')) 81 self.assertTrue(self._driver.ExecuteScript('return window.top == window'))
71 driver.SwitchToFrameByIndex(0) 82 self._driver.SwitchToFrameByIndex(0)
72 self.assertTrue(driver.ExecuteScript('return window.top != window')) 83 self.assertTrue(self._driver.ExecuteScript('return window.top != window'))
73 driver.Quit() 84
85 def testGetTitle(self):
86 script = 'document.title = "title"; return 1;'
87 self.assertEquals(1, self._driver.ExecuteScript(script))
88 self.assertEqual('title', self._driver.GetTitle())
74 89
75 90
76 if __name__ == '__main__': 91 if __name__ == '__main__':
77 parser = optparse.OptionParser() 92 parser = optparse.OptionParser()
78 parser.add_option( 93 parser.add_option(
79 '', '--chromedriver', type='string', default=None, 94 '', '--chromedriver', type='string', default=None,
80 help='Path to a build of the chromedriver library(REQUIRED!)') 95 help='Path to a build of the chromedriver library(REQUIRED!)')
81 parser.add_option( 96 parser.add_option(
82 '', '--chrome', type='string', default=None, 97 '', '--chrome', type='string', default=None,
83 help='Path to a build of the chrome binary') 98 help='Path to a build of the chrome binary')
(...skipping 13 matching lines...) Expand all
97 if options.chrome is not None: 112 if options.chrome is not None:
98 _CHROME_BINARY = os.path.abspath(options.chrome) 113 _CHROME_BINARY = os.path.abspath(options.chrome)
99 else: 114 else:
100 _CHROME_BINARY = None 115 _CHROME_BINARY = None
101 116
102 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule( 117 all_tests_suite = unittest.defaultTestLoader.loadTestsFromModule(
103 sys.modules[__name__]) 118 sys.modules[__name__])
104 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter) 119 tests = unittest_util.FilterTestSuite(all_tests_suite, options.filter)
105 result = unittest.TextTestRunner().run(tests) 120 result = unittest.TextTestRunner().run(tests)
106 sys.exit(len(result.failures) + len(result.errors)) 121 sys.exit(len(result.failures) + len(result.errors))
OLDNEW
« no previous file with comments | « chrome/test/chromedriver/commands.cc ('k') | chrome/test/chromedriver/webserver.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698