Index: chrome/browser/extensions/extension_keybinding_apitest.cc |
diff --git a/chrome/browser/extensions/extension_keybinding_apitest.cc b/chrome/browser/extensions/extension_keybinding_apitest.cc |
index a3796bdf0f9de48701101524fd4e073c3f8070d4..e9de4d154d6d5b724aca1ec5c56555ba0753cc48 100644 |
--- a/chrome/browser/extensions/extension_keybinding_apitest.cc |
+++ b/chrome/browser/extensions/extension_keybinding_apitest.cc |
@@ -54,6 +54,31 @@ class CommandsApiTest : public ExtensionApiTest { |
return extension->permissions_data()->HasAPIPermissionForTab( |
SessionTabHelper::IdForTab(web_contents), APIPermission::kTab); |
} |
+ |
+#if defined(OS_CHROMEOS) |
+ void RunChromeOSConversionTest(const std::string& extension_path) { |
+ // Setup the environment. |
+ ASSERT_TRUE(test_server()->Start()); |
+ ASSERT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
+ ASSERT_TRUE(RunExtensionTest(extension_path)) << message_; |
+ ui_test_utils::NavigateToURL( |
+ browser(), test_server()->GetURL("files/extensions/test_file.txt")); |
+ |
+ ResultCatcher catcher; |
+ |
+ // Send all expected keys (Search+Shift+{Left, Up, Right, Down}). |
+ ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
+ browser(), ui::VKEY_LEFT, false, true, false, true)); |
+ ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
+ browser(), ui::VKEY_UP, false, true, false, true)); |
+ ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
+ browser(), ui::VKEY_RIGHT, false, true, false, true)); |
+ ASSERT_TRUE(ui_test_utils::SendKeyPressSync( |
+ browser(), ui::VKEY_DOWN, false, true, false, true)); |
+ |
+ ASSERT_TRUE(catcher.GetNextResult()); |
+ } |
+#endif // OS_CHROMEOS |
}; |
// Test the basic functionality of the Keybinding API: |
@@ -740,4 +765,11 @@ IN_PROC_BROWSER_TEST_F(CommandsApiTest, MAYBE_ContinuePropagation) { |
ASSERT_TRUE(catcher.GetNextResult()); |
} |
+// Test is only applicable on Chrome OS. |
+#if defined(OS_CHROMEOS) |
+IN_PROC_BROWSER_TEST_F(CommandsApiTest, ChromeOSConversions) { |
+ RunChromeOSConversionTest("keybinding/chromeos_conversions"); |
+} |
+#endif // OS_CHROMEOS |
+ |
} // namespace extensions |