| Index: headless/lib/headless_web_contents_browsertest.cc
|
| diff --git a/headless/lib/headless_web_contents_browsertest.cc b/headless/lib/headless_web_contents_browsertest.cc
|
| index 863bcdc1ce0ebacbbc40e5cca2fc864eb4d76f31..aaa5491882b03110142178172184bd9ff6f69123 100644
|
| --- a/headless/lib/headless_web_contents_browsertest.cc
|
| +++ b/headless/lib/headless_web_contents_browsertest.cc
|
| @@ -16,19 +16,39 @@ namespace headless {
|
|
|
| class HeadlessWebContentsTest : public HeadlessBrowserTest {};
|
|
|
| +class NavigationObserver : public HeadlessWebContents::Observer {
|
| + public:
|
| + NavigationObserver(HeadlessWebContentsTest* browser_test)
|
| + : browser_test_(browser_test), navigation_succeeded_(false) {}
|
| + ~NavigationObserver() override {}
|
| +
|
| + void DocumentOnLoadCompletedInMainFrame() override {
|
| + browser_test_->FinishAsynchronousTest();
|
| + }
|
| +
|
| + void DidFinishNavigation(bool success) override {
|
| + navigation_succeeded_ = success;
|
| + }
|
| +
|
| + bool navigation_succeeded() const { return navigation_succeeded_; }
|
| +
|
| + private:
|
| + HeadlessWebContentsTest* browser_test_; // Not owned.
|
| + bool navigation_succeeded_;
|
| +};
|
| +
|
| IN_PROC_BROWSER_TEST_F(HeadlessWebContentsTest, Navigation) {
|
| EXPECT_TRUE(embedded_test_server()->Start());
|
| std::unique_ptr<HeadlessWebContents> web_contents =
|
| - browser()->CreateWebContents(gfx::Size(800, 600));
|
| - EXPECT_TRUE(NavigateAndWaitForLoad(
|
| - web_contents.get(), embedded_test_server()->GetURL("/hello.html")));
|
| -}
|
| + browser()->CreateWebContents(
|
| + embedded_test_server()->GetURL("/hello.html"), gfx::Size(800, 600));
|
| + NavigationObserver observer(this);
|
| + web_contents->AddObserver(&observer);
|
|
|
| -IN_PROC_BROWSER_TEST_F(HeadlessWebContentsTest, NavigationWithBadURL) {
|
| - std::unique_ptr<HeadlessWebContents> web_contents =
|
| - browser()->CreateWebContents(gfx::Size(800, 600));
|
| - GURL bad_url("not_valid");
|
| - EXPECT_FALSE(web_contents->OpenURL(bad_url));
|
| + RunAsynchronousTest();
|
| +
|
| + EXPECT_TRUE(observer.navigation_succeeded());
|
| + web_contents->RemoveObserver(&observer);
|
| }
|
|
|
| } // namespace headless
|
|
|