OLD | NEW |
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 import pyauto_functional # must be imported before pyauto | 5 import pyauto_functional # must be imported before pyauto |
6 import pyauto | 6 import pyauto |
7 import domselector | 7 import domselector |
8 | 8 |
9 class PyAutoEventsTest(pyauto.PyUITest): | 9 class PyAutoEventsTest(pyauto.PyUITest): |
10 """Tests using the event queue.""" | 10 """Tests using the event queue.""" |
11 | 11 |
12 def testBasicEvents(self): | 12 def testBasicEvents(self): |
13 """Basic test for the event queue.""" | 13 """Basic test for the event queue.""" |
14 url = self.GetHttpURLForDataPath('apptest', 'basic.html') | 14 url = self.GetHttpURLForDataPath('apptest', 'basic.html') |
15 driver = self.NewWebDriver() | 15 driver = self.NewWebDriver() |
16 event_id = self.AddDomEventObserver(automation_id=4444, recurring=True) | 16 event_id = self.AddDomEventObserver(automation_id=4444, recurring=True) |
17 success_id = self.AddDomEventObserver('test success', automation_id=4444) | 17 success_id = self.AddDomEventObserver('test success', automation_id=4444) |
18 self.NavigateToURL(url) | 18 self.NavigateToURL(url) |
19 self._ExpectEvent(event_id, 'init') | 19 self._ExpectEvent(event_id, 'init') |
20 self._ExpectEvent(event_id, 'login ready') | 20 self._ExpectEvent(event_id, 'login ready') |
21 driver.find_element_by_id('login').click() | 21 driver.find_element_by_id('login').click() |
22 self._ExpectEvent(event_id, 'login start') | 22 self._ExpectEvent(event_id, 'login start') |
23 self._ExpectEvent(event_id, 'login done') | 23 self._ExpectEvent(event_id, 'login done') |
24 self.GetNextEvent(success_id) | 24 self.GetNextEvent(success_id) |
25 | 25 |
26 def testDomMutationEvents(self): | 26 def testDomMutationEvents(self): |
27 """Basic tests for Dom Mutation observers.""" | 27 """Basic tests for WaitForDomNode.""" |
| 28 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') |
| 29 self.NavigateToURL(url) |
| 30 self.WaitForDomNode(domselector.CSSSelector('#login'), 'Log In') |
| 31 self.NewWebDriver().find_element_by_id('login').click() |
| 32 self.WaitForDomNode(domselector.XPath('id(\'console\')'), '.*succeeded.*') |
| 33 |
| 34 def testDomMutationObservers(self): |
| 35 """Tests for the various types of Dom Mutation observers.""" |
28 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') | 36 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') |
29 self.NavigateToURL(url) | 37 self.NavigateToURL(url) |
30 self.GetNextEvent(self.AddDomMutationObserver( | 38 self.GetNextEvent(self.AddDomMutationObserver( |
31 'add', domselector.XPath('/html/body'))) | 39 'exists', domselector.XPath('/html/body'))) |
32 self.GetNextEvent(self.AddDomMutationObserver( | 40 self.GetNextEvent(self.AddDomMutationObserver( |
33 'add', domselector.CSSSelector('#login'), expected_value='Log In')) | 41 'add', domselector.CSSSelector('#login'), expected_value='Log In')) |
34 success_id = self.AddDomMutationObserver( | 42 success_id = self.AddDomMutationObserver( |
35 'change', domselector.XPath('id(\'console\')'), | 43 'change', domselector.XPath('id(\'console\')'), |
36 expected_value='.*succeeded.*') | 44 expected_value='.*succeeded.*') |
37 self.NewWebDriver().find_element_by_id('login').click() | 45 self.NewWebDriver().find_element_by_id('login').click() |
38 self.GetNextEvent(self.AddDomMutationObserver( | 46 self.GetNextEvent(self.AddDomMutationObserver( |
39 'remove', domselector.XPath('id(\'fail\')/a'))) | 47 'remove', domselector.XPath('id(\'fail\')/a'))) |
40 self.GetNextEvent(success_id) | 48 self.GetNextEvent(success_id) |
41 | 49 |
42 def _ExpectEvent(self, event_id, expected_event_name): | 50 def _ExpectEvent(self, event_id, expected_event_name): |
43 """Checks that the next event is expected.""" | 51 """Checks that the next event is expected.""" |
44 e = self.GetNextEvent(event_id) | 52 e = self.GetNextEvent(event_id) |
45 self.assertEqual(e.get('name'), expected_event_name, | 53 self.assertEqual(e.get('name'), expected_event_name, |
46 msg="unexpected event: %s" % e) | 54 msg="unexpected event: %s" % e) |
47 | 55 |
48 | 56 |
49 if __name__ == '__main__': | 57 if __name__ == '__main__': |
50 pyauto_functional.Main() | 58 pyauto_functional.Main() |
OLD | NEW |