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.
4
5#ifndef CHROME_BROWSER_UI_WEBUI_BIDI_CHECKER_WEB_UI_TEST_H_
6#define CHROME_BROWSER_UI_WEBUI_BIDI_CHECKER_WEB_UI_TEST_H_
7
8#include "base/command_line.h"
9#include "chrome/test/base/web_ui_browser_test.h"
10
11namespace base {
12class WaitableEvent;
13}
14
15// Base class for BidiChecker-based tests. Preloads the BidiChecker JS library
16// for each test.
17class WebUIBidiCheckerBrowserTest : public WebUIBrowserTest {
18 public:
19  virtual ~WebUIBidiCheckerBrowserTest();
20
21  // testing::Test implementation.
22  virtual void SetUp() OVERRIDE;
23  virtual void TearDown() OVERRIDE;
24
25 protected:
26  WebUIBidiCheckerBrowserTest();
27
28  // Runs the Bidi Checker on the given page URL. |is_rtl| should be true when
29  // the active page locale is RTL.
30  void RunBidiCheckerOnPage(const std::string& page_url, bool is_rtl);
31
32  // Setup test path.
33  virtual void SetUpInProcessBrowserTestFixture() OVERRIDE;
34
35 private:
36  // The command line args used to run the test before being changed in SetUp().
37  base::CommandLine::StringVector argv_;
38};
39
40// Base class for BidiChecker-based tests that run with an LTR UI.
41class WebUIBidiCheckerBrowserTestLTR : public WebUIBidiCheckerBrowserTest {
42 public:
43  void RunBidiCheckerOnPage(const std::string& page_url);
44};
45
46// Base class for BidiChecker-based tests that run with an RTL UI.
47class WebUIBidiCheckerBrowserTestRTL : public WebUIBidiCheckerBrowserTest {
48 public:
49  void RunBidiCheckerOnPage(const std::string& page_url);
50
51 protected:
52  virtual void SetUpOnMainThread() OVERRIDE;
53  virtual void TearDownOnMainThread() OVERRIDE;
54
55  // The app locale before we change it
56  std::string app_locale_;
57};
58
59#endif  // CHROME_BROWSER_UI_WEBUI_BIDI_CHECKER_WEB_UI_TEST_H_
60