Chromium Code Reviews| Index: content/test/content_browser_test_utils.h |
| diff --git a/content/test/content_browser_test_utils.h b/content/test/content_browser_test_utils.h |
| index 9ea40a5d542e7c4cf95416b650444534ad75bd55..e83af20b936826255b630616feb0798ee1c9a715 100644 |
| --- a/content/test/content_browser_test_utils.h |
| +++ b/content/test/content_browser_test_utils.h |
| @@ -5,7 +5,13 @@ |
| #ifndef CONTENT_TEST_CONTENT_BROWSER_TEST_UTILS_H_ |
| #define CONTENT_TEST_CONTENT_BROWSER_TEST_UTILS_H_ |
| +#include <queue> |
| + |
| #include "base/memory/ref_counted.h" |
| +#include "content/public/browser/notification_details.h" |
| +#include "content/public/browser/notification_observer.h" |
| +#include "content/public/browser/notification_registrar.h" |
| +#include "content/public/browser/notification_source.h" |
| #include "googleurl/src/gurl.h" |
| #include "ui/gfx/native_widget_types.h" |
| @@ -69,6 +75,37 @@ class ShellAddedObserver { |
| DISALLOW_COPY_AND_ASSIGN(ShellAddedObserver); |
| }; |
| +// Watches for responses from the DOMAutomationController and keeps them in a |
|
jam
2012/09/21 20:39:39
this is a duplicate of the same class in ui_test_u
|
| +// queue. Useful for waiting for a message to be received. |
| +class DOMMessageQueue : public content::NotificationObserver { |
| + public: |
| + // Constructs a DOMMessageQueue and begins listening for messages from the |
| + // DOMAutomationController. Do not construct this until the browser has |
| + // started. |
| + DOMMessageQueue(); |
| + virtual ~DOMMessageQueue(); |
| + |
| + // Removes all messages in the message queue. |
| + void ClearQueue(); |
| + |
| + // Wait for the next message to arrive. |message| will be set to the next |
| + // message, if not null. Returns true on success. |
| + bool WaitForMessage(std::string* message) WARN_UNUSED_RESULT; |
| + |
| + // Overridden content::NotificationObserver methods. |
| + virtual void Observe(int type, |
| + const content::NotificationSource& source, |
| + const content::NotificationDetails& details) OVERRIDE; |
| + |
| + private: |
| + content::NotificationRegistrar registrar_; |
| + std::queue<std::string> message_queue_; |
| + bool waiting_for_message_; |
| + scoped_refptr<content::MessageLoopRunner> message_loop_runner_; |
| + |
| + DISALLOW_COPY_AND_ASSIGN(DOMMessageQueue); |
| +}; |
| + |
| #if defined OS_MACOSX |
| void SetWindowBounds(gfx::NativeWindow window, const gfx::Rect& bounds); |
| #endif |