| Index: chrome/test/functional/apptest.py
|
| diff --git a/chrome/test/functional/apptest.py b/chrome/test/functional/apptest.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..fb351c08e9cdcb522311735ab62441f00977b5c4
|
| --- /dev/null
|
| +++ b/chrome/test/functional/apptest.py
|
| @@ -0,0 +1,38 @@
|
| +# Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| +# Use of this source code is governed by a BSD-style license that can be
|
| +# found in the LICENSE file.
|
| +
|
| +import json
|
| +
|
| +import pyauto_functional # must be imported before pyauto
|
| +import pyauto
|
| +
|
| +
|
| +class PyAutoEventsTest(pyauto.PyUITest):
|
| +
|
| + def testBasicEvents(self):
|
| + """Basic test for the event queue."""
|
| + url = self.GetHttpURLForDataPath('apptest', 'basic.html')
|
| + driver = self.NewWebDriver()
|
| + event_id = self.AddDomRaisedEventObserver();
|
| + self.NavigateToURL(url)
|
| + self._ExpectEvent(event_id, 'init')
|
| + self._ExpectEvent(event_id, 'login ready')
|
| + driver.find_element_by_id('login').click()
|
| + self._ExpectEvent(event_id, 'login start')
|
| + self._ExpectEvent(event_id, 'login done')
|
| +
|
| + def _ExpectEvent(self, event_id, event_name):
|
| + # TODO(craigdh): Temporary hack to ignore unexpected events generated by
|
| + # chromedriver's use of DomAutomationController. The upcoming revision to
|
| + # RaisedEvents will fix this. Note this isn't polling, just ignoring
|
| + # chromedriver events.
|
| + while True:
|
| + event = json.loads(self.GetNextEvent(event_id).get('name'))
|
| + if event.find('{') == -1:
|
| + break
|
| + self.assertEqual(event, event_name)
|
| +
|
| +
|
| +if __name__ == '__main__':
|
| + pyauto_functional.Main()
|
|
|