| // Copyright 2014 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef CHROME_BROWSER_CHROMEOS_EXTENSIONS_VIRTUAL_KEYBOARD_BROWSERTEST_H_ |
| #define CHROME_BROWSER_CHROMEOS_EXTENSIONS_VIRTUAL_KEYBOARD_BROWSERTEST_H_ |
| |
| #include "base/files/file_path.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| #include "url/gurl.h" |
| |
| namespace base { |
| class CommandLine; |
| class FilePath; |
| } |
| |
| namespace content { |
| class RenderViewHost; |
| class WebContents; |
| } |
| |
| // See the .cc for default values. |
| struct VirtualKeyboardBrowserTestConfig { |
| VirtualKeyboardBrowserTestConfig(); |
| |
| ~VirtualKeyboardBrowserTestConfig(); |
| |
| // The filename of the base framework. This file should be in |test_dir_|. |
| std::string base_framework_; |
| |
| // The virtual keyboard's extension id. |
| std::string extension_id_; |
| |
| // Path to the test directory. |
| std::string test_dir_; |
| |
| // URL of the keyboard extension. |
| std::string url_; |
| }; |
| |
| class VirtualKeyboardBrowserTest : 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 VirtualKeyboardBrowserTestConfig& config); |
| |
| void ShowVirtualKeyboard(); |
| |
| // Returns the render view host that the keyboard with extension |id| is in. |
| content::RenderViewHost* GetKeyboardRenderViewHost(const std::string& id); |
| |
| // InProcessBrowserTest. |
| // Ensure that the virtual keyboard is enabled. |
| virtual 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_CHROMEOS_EXTENSIONS_VIRTUAL_KEYBOARD_BROWSERTEST_H_ |