Chromium Code Reviews| Index: headless/test/headless_browser_test.h |
| diff --git a/headless/test/headless_browser_test.h b/headless/test/headless_browser_test.h |
| index ca000dcdbf3f8d40ca7644f66294fb440a59a989..8694b38849a177411b32b0b45e8c300770efc60f 100644 |
| --- a/headless/test/headless_browser_test.h |
| +++ b/headless/test/headless_browser_test.h |
| @@ -6,8 +6,11 @@ |
| #define HEADLESS_TEST_HEADLESS_BROWSER_TEST_H_ |
| #include <memory> |
| +#include <string> |
| + |
| #include "content/public/test/browser_test_base.h" |
| #include "headless/public/headless_browser.h" |
| +#include "headless/public/headless_web_contents.h" |
| namespace base { |
| class RunLoop; |
| @@ -17,7 +20,7 @@ namespace headless { |
| namespace runtime { |
| class EvaluateResult; |
| } |
| -class HeadlessWebContents; |
| +class HeadlessDevToolsClient; |
| // Base class for tests which require a full instance of the headless browser. |
| class HeadlessBrowserTest : public content::BrowserTestBase { |
| @@ -62,6 +65,34 @@ class HeadlessBrowserTest : public content::BrowserTestBase { |
| DISALLOW_COPY_AND_ASSIGN(HeadlessBrowserTest); |
| }; |
| +#define HEADLESS_ASYNC_DEVTOOLED_TEST_F(TEST_FIXTURE_NAME) \ |
| + IN_PROC_BROWSER_TEST_F(TEST_FIXTURE_NAME, RunAsyncTest) { RunTest(); } \ |
| + class AsyncHeadlessBrowserTestNeedsSemicolon##TEST_FIXTURE_NAME {} |
| + |
| +// Base class for tests that require access to a DevToolsClient. Subclasses |
| +// should override the RunDevTooledTest() method, which is called asynchronously |
| +// when the DevToolsClient is ready. |
| +class HeadlessAsyncDevTooledBrowserTest : public HeadlessBrowserTest, |
|
Sami
2016/06/03 11:46:24
Could you add a TODO in HeadlessDevToolsClientTest
Eric Seckler
2016/06/03 13:40:38
Done.
|
| + public HeadlessWebContents::Observer { |
| + public: |
| + HeadlessAsyncDevTooledBrowserTest(); |
| + ~HeadlessAsyncDevTooledBrowserTest() override; |
| + |
| + // HeadlessWebContentsObserver implementation: |
| + void DevToolsTargetReady() override; |
| + |
| + // Implemented by tests and used to send request(s) to DevTools. Subclasses |
| + // need to ensure that FinishAsynchronousTest() is called after response(s) |
| + // are processed (e.g. in a callback). |
| + virtual void RunDevTooledTest() = 0; |
| + |
| + protected: |
| + void RunTest(); |
| + |
| + HeadlessWebContents* web_contents_; |
| + std::unique_ptr<HeadlessDevToolsClient> devtools_client_; |
| +}; |
| + |
| } // namespace headless |
| #endif // HEADLESS_TEST_HEADLESS_BROWSER_TEST_H_ |