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 aba521dc53d4fdb25a7682cd5824f75a2a6c6ddf..e65dc1ec954144e7abc3f5253ccfa58892274f12 100644 |
--- a/chrome/browser/extensions/extension_keybinding_apitest.cc |
+++ b/chrome/browser/extensions/extension_keybinding_apitest.cc |
@@ -3,6 +3,7 @@ |
// found in the LICENSE file. |
#include "base/command_line.h" |
+#include "base/strings/stringprintf.h" |
Finnur
2014/10/22 09:43:03
Remove?
|
#include "chrome/browser/extensions/active_tab_permission_granter.h" |
#include "chrome/browser/extensions/api/commands/command_service.h" |
#include "chrome/browser/extensions/browser_action_test_util.h" |
@@ -651,6 +652,7 @@ IN_PROC_BROWSER_TEST_F(CommandsApiTest, |
// Verify it has a command of Alt+Shift+F. |
ui::Accelerator accelerator = command_service->FindCommandByName( |
kId, manifest_values::kBrowserActionCommandEvent).accelerator(); |
+ |
Finnur
2014/10/22 09:43:03
nit: remove this linebreak.
|
EXPECT_EQ(ui::VKEY_F, accelerator.key_code()); |
EXPECT_FALSE(accelerator.IsCtrlDown()); |
EXPECT_TRUE(accelerator.IsShiftDown()); |
@@ -674,6 +676,62 @@ IN_PROC_BROWSER_TEST_F(CommandsApiTest, |
EXPECT_TRUE(accelerator.IsAltDown()); |
} |
+// Test that Media keys do not overwrite previous settings |
+IN_PROC_BROWSER_TEST_F(CommandsApiTest, |
+ MediaKeyShortcutChangedOnUpdateAfterBeingReassignedByUser) { |
Finnur
2014/10/22 09:43:03
nit: Adhere to the 80 cols rule.
|
+ base::ScopedTempDir scoped_temp_dir; |
+ EXPECT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); |
+ base::FilePath pem_path = test_data_dir_. |
+ AppendASCII("keybinding").AppendASCII("keybinding.pem"); |
+ base::FilePath path_v1 = PackExtensionWithOptions( |
+ test_data_dir_.AppendASCII("keybinding").AppendASCII("update") |
+ .AppendASCII("mk_v1"), |
+ scoped_temp_dir.path().AppendASCII("mk_v1.crx"), |
+ pem_path, |
+ base::FilePath()); |
+ base::FilePath path_v2_reassigned = PackExtensionWithOptions( |
+ test_data_dir_.AppendASCII("keybinding").AppendASCII("update") |
+ .AppendASCII("mk_v2"), |
+ scoped_temp_dir.path().AppendASCII("mk_v2.crx"), |
+ pem_path, |
+ base::FilePath()); |
+ |
+ ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile()); |
+ CommandService* command_service = CommandService::Get(browser()->profile()); |
+ |
+ // Install v1 of the extension. |
+ ASSERT_TRUE(InstallExtension(path_v1, 1)); |
+ EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) != |
+ NULL); |
+ |
+ // Verify it has a command of MediaPlayPause |
+ ui::Accelerator accelerator = command_service->FindCommandByName( |
+ kId, manifest_values::kMediaKeyTestCommand).accelerator(); |
+ |
Finnur
2014/10/22 09:43:03
nit: Same here -- don't need the line break.
|
+ EXPECT_EQ(ui::VKEY_MEDIA_PLAY_PAUSE, accelerator.key_code()); |
+ EXPECT_FALSE(accelerator.IsCtrlDown()); |
+ EXPECT_FALSE(accelerator.IsShiftDown()); |
+ EXPECT_FALSE(accelerator.IsAltDown()); |
+ |
+ // Simulate the user setting the keybinding to Alt+Shift+G. |
+ command_service->UpdateKeybindingPrefs( |
+ kId, manifest_values::kMediaKeyTestCommand, kAltShiftG); |
+ |
+ // Update to version 2 with different keybinding assigned. |
+ EXPECT_TRUE(UpdateExtension(kId, path_v2_reassigned, 0)); |
+ EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) != |
+ NULL); |
+ |
+ // Verify it has a command of Alt+Shift+G. |
+ accelerator = command_service->FindCommandByName( |
+ kId, manifest_values::kMediaKeyTestCommand).accelerator(); |
+ |
+ EXPECT_EQ(ui::VKEY_G, accelerator.key_code()); |
+ EXPECT_FALSE(accelerator.IsCtrlDown()); |
+ EXPECT_TRUE(accelerator.IsShiftDown()); |
+ EXPECT_TRUE(accelerator.IsAltDown()); |
+} |
+ |
IN_PROC_BROWSER_TEST_F(CommandsApiTest, |
ShortcutRemovedOnUpdateAfterBeingReassignedByUser) { |
base::ScopedTempDir scoped_temp_dir; |