| // Copyright 2014 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_ASH_EXTENSIONS_DEFAULT_KEYBOARD_EXTENSION_BROWSER_TEST_H_ |
| #define CHROME_BROWSER_ASH_EXTENSIONS_DEFAULT_KEYBOARD_EXTENSION_BROWSER_TEST_H_ |
| |
| #include "base/files/file_path.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| #include "extensions/common/extension_id.h" |
| #include "url/gurl.h" |
| |
| namespace base { |
| class CommandLine; |
| class FilePath; |
| } // namespace base |
| |
| namespace content { |
| class WebContents; |
| } |
| |
| // See the .cc for default values. |
| struct DefaultKeyboardExtensionBrowserTestConfig { |
| DefaultKeyboardExtensionBrowserTestConfig(); |
| |
| ~DefaultKeyboardExtensionBrowserTestConfig(); |
| |
| // The filename of the base framework. This file should be in |test_dir_|. |
| std::string base_framework_; |
| |
| // The virtual keyboard's extension id. |
| extensions::ExtensionId extension_id_; |
| |
| // Path to the test directory. |
| std::string test_dir_; |
| |
| // URL of the keyboard extension. |
| std::string url_; |
| }; |
| |
| class DefaultKeyboardExtensionBrowserTest : public InProcessBrowserTest { |
| public: |
| // Injects javascript in |file| into the keyboard page and runs the methods in |
| // |file| whose names match the expression "test*". |
| void RunTest(const base::FilePath& file, |
| const DefaultKeyboardExtensionBrowserTestConfig& config); |
| |
| // Returns the WebContents that the keyboard with extension |id| is in. |
| content::WebContents* GetKeyboardWebContents(const std::string& id); |
| |
| // InProcessBrowserTest. |
| // Ensure that the virtual keyboard is enabled. |
| void SetUpCommandLine(base::CommandLine* command_line) override; |
| |
| protected: |
| // Accumulates the javascript and injects it when the test starts. The test |
| // |file| is in directory |dir| relative to the root testing directory. |
| void InjectJavascript(const base::FilePath& dir, const base::FilePath& file); |
| |
| private: |
| std::string utf8_content_; |
| }; |
| |
| #endif // CHROME_BROWSER_ASH_EXTENSIONS_DEFAULT_KEYBOARD_EXTENSION_BROWSER_TEST_H_ |