| 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,
|
| + 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_
|
|
|