Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(46)

Side by Side Diff: chrome/browser/extensions/extension_keybinding_apitest.cc

Issue 667833004: Fix extension command service to check if user has modified key before overwrite on update. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "base/command_line.h" 5 #include "base/command_line.h"
6 #include "base/strings/stringprintf.h"
Finnur 2014/10/22 09:43:03 Remove?
6 #include "chrome/browser/extensions/active_tab_permission_granter.h" 7 #include "chrome/browser/extensions/active_tab_permission_granter.h"
7 #include "chrome/browser/extensions/api/commands/command_service.h" 8 #include "chrome/browser/extensions/api/commands/command_service.h"
8 #include "chrome/browser/extensions/browser_action_test_util.h" 9 #include "chrome/browser/extensions/browser_action_test_util.h"
9 #include "chrome/browser/extensions/extension_action.h" 10 #include "chrome/browser/extensions/extension_action.h"
10 #include "chrome/browser/extensions/extension_action_manager.h" 11 #include "chrome/browser/extensions/extension_action_manager.h"
11 #include "chrome/browser/extensions/extension_apitest.h" 12 #include "chrome/browser/extensions/extension_apitest.h"
12 #include "chrome/browser/extensions/tab_helper.h" 13 #include "chrome/browser/extensions/tab_helper.h"
13 #include "chrome/browser/sessions/session_tab_helper.h" 14 #include "chrome/browser/sessions/session_tab_helper.h"
14 #include "chrome/browser/ui/browser.h" 15 #include "chrome/browser/ui/browser.h"
15 #include "chrome/browser/ui/tabs/tab_strip_model.h" 16 #include "chrome/browser/ui/tabs/tab_strip_model.h"
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after
644 CommandService* command_service = CommandService::Get(browser()->profile()); 645 CommandService* command_service = CommandService::Get(browser()->profile());
645 646
646 // Install v1 of the extension. 647 // Install v1 of the extension.
647 ASSERT_TRUE(InstallExtension(path_v1, 1)); 648 ASSERT_TRUE(InstallExtension(path_v1, 1));
648 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) != 649 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) !=
649 NULL); 650 NULL);
650 651
651 // Verify it has a command of Alt+Shift+F. 652 // Verify it has a command of Alt+Shift+F.
652 ui::Accelerator accelerator = command_service->FindCommandByName( 653 ui::Accelerator accelerator = command_service->FindCommandByName(
653 kId, manifest_values::kBrowserActionCommandEvent).accelerator(); 654 kId, manifest_values::kBrowserActionCommandEvent).accelerator();
655
Finnur 2014/10/22 09:43:03 nit: remove this linebreak.
654 EXPECT_EQ(ui::VKEY_F, accelerator.key_code()); 656 EXPECT_EQ(ui::VKEY_F, accelerator.key_code());
655 EXPECT_FALSE(accelerator.IsCtrlDown()); 657 EXPECT_FALSE(accelerator.IsCtrlDown());
656 EXPECT_TRUE(accelerator.IsShiftDown()); 658 EXPECT_TRUE(accelerator.IsShiftDown());
657 EXPECT_TRUE(accelerator.IsAltDown()); 659 EXPECT_TRUE(accelerator.IsAltDown());
658 660
659 // Simulate the user setting the keybinding to Alt+Shift+G. 661 // Simulate the user setting the keybinding to Alt+Shift+G.
660 command_service->UpdateKeybindingPrefs( 662 command_service->UpdateKeybindingPrefs(
661 kId, manifest_values::kBrowserActionCommandEvent, kAltShiftG); 663 kId, manifest_values::kBrowserActionCommandEvent, kAltShiftG);
662 664
663 // Update to version 2 with different keybinding assigned. 665 // Update to version 2 with different keybinding assigned.
664 EXPECT_TRUE(UpdateExtension(kId, path_v2_reassigned, 0)); 666 EXPECT_TRUE(UpdateExtension(kId, path_v2_reassigned, 0));
665 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) != 667 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) !=
666 NULL); 668 NULL);
667 669
668 // Verify it has a command of Alt+Shift+G. 670 // Verify it has a command of Alt+Shift+G.
669 accelerator = command_service->FindCommandByName( 671 accelerator = command_service->FindCommandByName(
670 kId, manifest_values::kBrowserActionCommandEvent).accelerator(); 672 kId, manifest_values::kBrowserActionCommandEvent).accelerator();
671 EXPECT_EQ(ui::VKEY_G, accelerator.key_code()); 673 EXPECT_EQ(ui::VKEY_G, accelerator.key_code());
672 EXPECT_FALSE(accelerator.IsCtrlDown()); 674 EXPECT_FALSE(accelerator.IsCtrlDown());
673 EXPECT_TRUE(accelerator.IsShiftDown()); 675 EXPECT_TRUE(accelerator.IsShiftDown());
674 EXPECT_TRUE(accelerator.IsAltDown()); 676 EXPECT_TRUE(accelerator.IsAltDown());
675 } 677 }
676 678
679 // Test that Media keys do not overwrite previous settings
680 IN_PROC_BROWSER_TEST_F(CommandsApiTest,
681 MediaKeyShortcutChangedOnUpdateAfterBeingReassignedByUser ) {
Finnur 2014/10/22 09:43:03 nit: Adhere to the 80 cols rule.
682 base::ScopedTempDir scoped_temp_dir;
683 EXPECT_TRUE(scoped_temp_dir.CreateUniqueTempDir());
684 base::FilePath pem_path = test_data_dir_.
685 AppendASCII("keybinding").AppendASCII("keybinding.pem");
686 base::FilePath path_v1 = PackExtensionWithOptions(
687 test_data_dir_.AppendASCII("keybinding").AppendASCII("update")
688 .AppendASCII("mk_v1"),
689 scoped_temp_dir.path().AppendASCII("mk_v1.crx"),
690 pem_path,
691 base::FilePath());
692 base::FilePath path_v2_reassigned = PackExtensionWithOptions(
693 test_data_dir_.AppendASCII("keybinding").AppendASCII("update")
694 .AppendASCII("mk_v2"),
695 scoped_temp_dir.path().AppendASCII("mk_v2.crx"),
696 pem_path,
697 base::FilePath());
698
699 ExtensionRegistry* registry = ExtensionRegistry::Get(browser()->profile());
700 CommandService* command_service = CommandService::Get(browser()->profile());
701
702 // Install v1 of the extension.
703 ASSERT_TRUE(InstallExtension(path_v1, 1));
704 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) !=
705 NULL);
706
707 // Verify it has a command of MediaPlayPause
708 ui::Accelerator accelerator = command_service->FindCommandByName(
709 kId, manifest_values::kMediaKeyTestCommand).accelerator();
710
Finnur 2014/10/22 09:43:03 nit: Same here -- don't need the line break.
711 EXPECT_EQ(ui::VKEY_MEDIA_PLAY_PAUSE, accelerator.key_code());
712 EXPECT_FALSE(accelerator.IsCtrlDown());
713 EXPECT_FALSE(accelerator.IsShiftDown());
714 EXPECT_FALSE(accelerator.IsAltDown());
715
716 // Simulate the user setting the keybinding to Alt+Shift+G.
717 command_service->UpdateKeybindingPrefs(
718 kId, manifest_values::kMediaKeyTestCommand, kAltShiftG);
719
720 // Update to version 2 with different keybinding assigned.
721 EXPECT_TRUE(UpdateExtension(kId, path_v2_reassigned, 0));
722 EXPECT_TRUE(registry->GetExtensionById(kId, ExtensionRegistry::ENABLED) !=
723 NULL);
724
725 // Verify it has a command of Alt+Shift+G.
726 accelerator = command_service->FindCommandByName(
727 kId, manifest_values::kMediaKeyTestCommand).accelerator();
728
729 EXPECT_EQ(ui::VKEY_G, accelerator.key_code());
730 EXPECT_FALSE(accelerator.IsCtrlDown());
731 EXPECT_TRUE(accelerator.IsShiftDown());
732 EXPECT_TRUE(accelerator.IsAltDown());
733 }
734
677 IN_PROC_BROWSER_TEST_F(CommandsApiTest, 735 IN_PROC_BROWSER_TEST_F(CommandsApiTest,
678 ShortcutRemovedOnUpdateAfterBeingReassignedByUser) { 736 ShortcutRemovedOnUpdateAfterBeingReassignedByUser) {
679 base::ScopedTempDir scoped_temp_dir; 737 base::ScopedTempDir scoped_temp_dir;
680 EXPECT_TRUE(scoped_temp_dir.CreateUniqueTempDir()); 738 EXPECT_TRUE(scoped_temp_dir.CreateUniqueTempDir());
681 base::FilePath pem_path = test_data_dir_. 739 base::FilePath pem_path = test_data_dir_.
682 AppendASCII("keybinding").AppendASCII("keybinding.pem"); 740 AppendASCII("keybinding").AppendASCII("keybinding.pem");
683 base::FilePath path_v1 = PackExtensionWithOptions( 741 base::FilePath path_v1 = PackExtensionWithOptions(
684 test_data_dir_.AppendASCII("keybinding").AppendASCII("update") 742 test_data_dir_.AppendASCII("keybinding").AppendASCII("update")
685 .AppendASCII("v1"), 743 .AppendASCII("v1"),
686 scoped_temp_dir.path().AppendASCII("v1.crx"), 744 scoped_temp_dir.path().AppendASCII("v1.crx"),
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
772 #define MAYBE_ChromeOSConversions DISABLED_ChromeOSConversions 830 #define MAYBE_ChromeOSConversions DISABLED_ChromeOSConversions
773 #else 831 #else
774 #define MAYBE_ChromeOSConversions ChromeOSConversions 832 #define MAYBE_ChromeOSConversions ChromeOSConversions
775 #endif 833 #endif
776 IN_PROC_BROWSER_TEST_F(CommandsApiTest, MAYBE_ChromeOSConversions) { 834 IN_PROC_BROWSER_TEST_F(CommandsApiTest, MAYBE_ChromeOSConversions) {
777 RunChromeOSConversionTest("keybinding/chromeos_conversions"); 835 RunChromeOSConversionTest("keybinding/chromeos_conversions");
778 } 836 }
779 #endif // OS_CHROMEOS 837 #endif // OS_CHROMEOS
780 838
781 } // namespace extensions 839 } // namespace extensions
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698