Index: chrome/test/pyautolib/pyauto.py |
diff --git a/chrome/test/pyautolib/pyauto.py b/chrome/test/pyautolib/pyauto.py |
index 793dd95b33db6998dca35c275dd44bb104e626b8..8fe4a4b3f5618f368db903f0d77392e4a0f7cb29 100755 |
--- a/chrome/test/pyautolib/pyauto.py |
+++ b/chrome/test/pyautolib/pyauto.py |
@@ -2798,6 +2798,111 @@ class PyUITest(pyautolib.PyUITestBase, unittest.TestCase): |
return self._GetResultFromJSONRequest(cmd_dict, windex=windex, |
timeout=timeout) |
+ def AddDomRaisedEventObserver(self, event_name='', tab_index=0, windex=0, |
+ frame_xpath=''): |
+ """Adds a DomRaisedEventObserver associated with the AutomationEventQueue. |
+ |
+ TODO(craigdh): Add documentation for raising an event once it has been |
Nirnimesh
2012/02/28 09:13:09
Move TODO's outside of the docstring, as comments.
craigdh
2012/02/28 22:42:56
Done.
|
+ implemented. |
+ TODO(craigdh): Add a corresponding method for extension views. |
+ |
+ Args: |
+ event_name: The raised event name to watch for. By default all raised |
+ events are observed. |
+ tab_index: index of the tab. |
+ windex: index of the window. |
+ frame_xpath: XPath of the frame to execute the script. Default is no |
+ frame. Example: '//frames[1]'. |
+ |
+ Returns: |
+ The id of the created observer, which can be used with GetQueuedEvent(id) |
+ and RemoveEventObserver(id). |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation call returns an error. |
+ """ |
+ cmd_dict = { |
+ 'command': 'AddDomRaisedEventObserver', |
+ 'event_name': event_name, |
+ 'tab_index' : tab_index, |
+ 'windex' : windex, |
+ 'frame_xpath' : frame_xpath, |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, |
+ windex=windex)['observer_id'] |
+ |
+ def GetQueuedEvent(self, observer_id=-1, blocking=True, timeout=50000): |
Nirnimesh
2012/02/28 09:13:09
why 50 secs? Just use the default automation timeo
craigdh
2012/02/28 22:42:56
Done.
|
+ """Waits for an observed event to occur. |
+ |
+ The returned event is removed from the Event Queue. If there is already a |
+ matching event in the queue it is returned immediately, otherwise the call |
+ blocks until a matching event occurs. If blocking is disabled and no |
+ matching event is in the queue this function will immediately return None. |
+ |
+ Args: |
+ observer_id: The id of the observer to wait for, matches any event by |
+ default. |
+ blocking: If True waits until there is a matching event in the queue, |
+ if False and there is no event waiting in the queue returns |
+ None immediately. |
+ timeout: Time to wait for a matching event, defaults to 50 seconds. |
+ |
+ Returns: |
+ Event response dictionary, or None if blocking is disabled and there is no |
+ matching event in the queue. |
+ SAMPLE: |
Nirnimesh
2012/02/28 09:13:09
Indent 2 spaces to the right
craigdh
2012/02/28 22:42:56
Done.
|
+ { 'observer_id': 1, |
Nirnimesh
2012/02/28 09:13:09
same here
craigdh
2012/02/28 22:42:56
Done.
|
+ 'name': 'login completed', |
+ 'type': 'raised_event'} |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation call returns an error. |
+ """ |
+ cmd_dict = { |
+ 'command': 'GetQueuedEvent', |
+ 'observer_id' : observer_id, |
+ 'blocking' : blocking, |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, windex=None, |
+ timeout=timeout) |
+ |
+ def RemoveEventObserver(self, observer_id): |
+ """Removes an Event Observer from the AutomationEventQueue. |
+ |
+ Args: |
+ observer_id: The id of the observer to remove. |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation call returns an error. |
+ """ |
+ cmd_dict = { |
+ 'command': 'RemoveEventObserver', |
+ 'observer_id' : observer_id, |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
+ |
+ def ClearQueuedEvents(self): |
+ """Removes all events currently in the AutomationEventQueue. |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation call returns an error. |
+ """ |
+ cmd_dict = { |
+ 'command': 'ClearQueuedEvents', |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
+ |
+ def ClearEventObservers(self): |
+ """Removes all Event Observers associated with the AutomationEventQueue. |
+ |
+ Raises: |
+ pyauto_errors.JSONInterfaceError if the automation call returns an error. |
+ """ |
+ cmd_dict = { |
+ 'command': 'ClearEventObservers', |
+ } |
+ return self._GetResultFromJSONRequest(cmd_dict, windex=None) |
+ |
def ExecuteJavascript(self, js, tab_index=0, windex=0, frame_xpath=''): |
"""Executes a script in the specified frame of a tab. |