Home | History | Annotate | Download | only in test
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifndef CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
      6 #define CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
      7 
      8 #include "base/macros.h"
      9 #include "base/memory/scoped_ptr.h"
     10 #include "content/public/test/browser_test.h"
     11 #include "content/public/test/browser_test_base.h"
     12 
     13 namespace content {
     14 class WebContents;
     15 }
     16 
     17 namespace chromecast {
     18 namespace shell {
     19 
     20 // This test allows for running an entire browser-process lifecycle per unit
     21 // test, using Chromecast's cast_shell. This starts up the shell, runs a test
     22 // case, then shuts down the entire shell.
     23 // Note that this process takes 7-10 seconds per test case on Chromecast, so
     24 // fewer test cases with more assertions are preferable.
     25 class ChromecastBrowserTest : public content::BrowserTestBase {
     26  protected:
     27   ChromecastBrowserTest();
     28   virtual ~ChromecastBrowserTest();
     29 
     30   // testing::Test implementation:
     31   virtual void SetUp() OVERRIDE;
     32 
     33   // BrowserTestBase implementation:
     34   virtual void RunTestOnMainThreadLoop() OVERRIDE;
     35 
     36  protected:
     37   void NavigateToURL(content::WebContents* window, const GURL& gurl);
     38 
     39   // Creates a new window and loads about:blank.
     40   content::WebContents* CreateBrowser();
     41 
     42   // Returns the window for the test.
     43   content::WebContents* web_contents() const { return web_contents_.get(); }
     44 
     45  private:
     46   scoped_ptr<content::WebContents> web_contents_;
     47 
     48   bool setup_called_;
     49 
     50   DISALLOW_COPY_AND_ASSIGN(ChromecastBrowserTest);
     51 };
     52 
     53 }  // namespace shell
     54 }  // namespace chromecast
     55 
     56 #endif  // CHROMECAST_SHELL_BROWSER_TEST_CHROMECAST_BROWSER_TEST_H_
     57