| OLD | NEW |
| (Empty) |
| 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 | |
| 3 # found in the LICENSE file. | |
| 4 | |
| 5 import pyauto_functional # must be imported before pyauto | |
| 6 import pyauto | |
| 7 | |
| 8 class PyAutoEventsTest(pyauto.PyUITest): | |
| 9 """Tests using the event queue.""" | |
| 10 | |
| 11 def testBasicEvents(self): | |
| 12 """Basic test for the event queue.""" | |
| 13 url = self.GetHttpURLForDataPath('apptest', 'basic.html') | |
| 14 driver = self.NewWebDriver() | |
| 15 event_id = self.AddDomEventObserver(automation_id=4444, recurring=True) | |
| 16 success_id = self.AddDomEventObserver('test success', automation_id=4444) | |
| 17 self.NavigateToURL(url) | |
| 18 self._ExpectEvent(event_id, 'init') | |
| 19 self._ExpectEvent(event_id, 'login ready') | |
| 20 driver.find_element_by_id('login').click() | |
| 21 self._ExpectEvent(event_id, 'login start') | |
| 22 self._ExpectEvent(event_id, 'login done') | |
| 23 self.GetNextEvent(success_id) | |
| 24 | |
| 25 def testDomMutationEvents(self): | |
| 26 """Basic tests for WaitForDomNode.""" | |
| 27 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') | |
| 28 self.NavigateToURL(url) | |
| 29 self.WaitForDomNode('id("login")', expected_value='Log In') | |
| 30 self.NewWebDriver().find_element_by_id('login').click() | |
| 31 self.WaitForDomNode('id("console")', expected_value='.*succeeded.*') | |
| 32 | |
| 33 def testDomMutationGenericXPath(self): | |
| 34 """Test mutation observers with a generic xpath and regexp.""" | |
| 35 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') | |
| 36 self.NavigateToURL(url) | |
| 37 self.WaitForDomNode('//a', expected_value='Log In') | |
| 38 self.NewWebDriver().find_element_by_id('login').click() | |
| 39 self.WaitForDomNode('//div', expected_value='.*succeeded.*') | |
| 40 | |
| 41 def testDomMutationObservers(self): | |
| 42 """Tests for the various types of Dom Mutation observers.""" | |
| 43 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') | |
| 44 self.NavigateToURL(url) | |
| 45 self.GetNextEvent(self.AddDomMutationObserver('add', 'id("login")', | |
| 46 expected_value='Log In')) | |
| 47 success_id = self.AddDomMutationObserver('change', 'id("console")', | |
| 48 expected_value='.*succeeded.*') | |
| 49 self.NewWebDriver().find_element_by_id('login').click() | |
| 50 self.GetNextEvent(self.AddDomMutationObserver('remove', 'id("fail")/a')) | |
| 51 self.GetNextEvent(success_id) | |
| 52 | |
| 53 def testWaitUntilNavigationCompletes(self): | |
| 54 """Basic test for WaitUntilNavigationCompletes.""" | |
| 55 url = self.GetHttpURLForDataPath('apptest', 'dom_mutations.html') | |
| 56 js = """window.onunload = | |
| 57 function() { | |
| 58 window.domAutomationController.send("done"); | |
| 59 }; | |
| 60 window.location.href = "%s";""" % url | |
| 61 self.ExecuteJavascript(js) | |
| 62 self.WaitUntilNavigationCompletes() | |
| 63 self.WaitUntilNavigationCompletes() | |
| 64 self.WaitForDomNode('id("login")') | |
| 65 | |
| 66 def _ExpectEvent(self, event_id, expected_event_name): | |
| 67 """Checks that the next event is expected.""" | |
| 68 e = self.GetNextEvent(event_id) | |
| 69 self.assertEqual(e.get('name'), expected_event_name, | |
| 70 msg="unexpected event: %s" % e) | |
| 71 | |
| 72 | |
| 73 if __name__ == '__main__': | |
| 74 pyauto_functional.Main() | |
| OLD | NEW |