Chromium Code Reviews| 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; |