add a use_alsa gyp setting
[chromium-blink-merge.git] / content / test / layout_browsertest.h
blob5977cf782a52beb61a90e0e561d079c71a54830a
1 // Copyright (c) 2012 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.
5 #include "base/files/file_path.h"
6 #include "base/files/scoped_temp_dir.h"
7 #include "content/test/content_browser_test.h"
9 class GURL;
11 namespace content {
12 class LayoutTestHttpServer;
13 class WebKitTestController;
15 class InProcessBrowserLayoutTest : public ContentBrowserTest {
16 public:
17 explicit InProcessBrowserLayoutTest(const base::FilePath& test_parent_dir,
18 const base::FilePath& test_case_dir);
19 // Used when running HTTP layout tests. Starts the server in the constructor
20 // and keeps it running through the lifetime of this test. This is done to
21 // avoid flakiness in restarting the server while the port is still in use.
22 // If -1 is passed for |port|, a random number will be used. This is
23 // recommended when possible, in case multiple tests are running at the same
24 // time. For some tests this isn't possible though, because they use resources
25 // that hardcode a specific port.
26 InProcessBrowserLayoutTest(const base::FilePath& test_parent_dir,
27 const base::FilePath& test_case_dir,
28 int port);
29 virtual ~InProcessBrowserLayoutTest();
31 virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
32 virtual void SetUpOnMainThread() OVERRIDE;
33 virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE;
34 // Runs a layout test given its filename relative to the path given to the
35 // constructor.
36 void RunLayoutTest(const std::string& test_case_file_name);
37 // Runs a layout test using the HTTP test server. The second constructor must
38 // have been used.
39 void RunHttpLayoutTest(const std::string& test_case_file_name);
41 private:
42 void RunLayoutTestInternal(const std::string& test_case_file_name,
43 const GURL& url);
44 std::string SaveResults(const std::string& expected,
45 const std::string& actual);
47 base::FilePath layout_test_dir_;
48 base::FilePath test_parent_dir_;
49 base::FilePath test_case_dir_;
50 base::FilePath rebase_result_dir_;
51 base::FilePath rebase_result_chromium_dir_;
52 base::FilePath rebase_result_win_dir_;
53 int port_; // -2 means no port. -1 means random.
54 scoped_ptr<LayoutTestHttpServer> test_http_server_;
56 scoped_ptr<WebKitTestController> test_controller_;
58 DISALLOW_COPY_AND_ASSIGN(InProcessBrowserLayoutTest);
61 } // namespace content