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

Side by Side Diff: chrome/browser/extensions/api/commands/command_service_browsertest.cc

Issue 14990002: Make sure keybindings removed don't come back during extension update. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Moving API calls out of ExtensionPrefs class Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
(Empty)
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "chrome/browser/extensions/api/commands/command_service.h"
6 #include "chrome/browser/extensions/extension_apitest.h"
7 #include "chrome/browser/extensions/extension_service.h"
8 #include "chrome/common/extensions/extension_manifest_constants.h"
9 #include "content/public/test/browser_test.h"
10 #include "content/public/test/test_utils.h"
11
12 namespace extensions {
13
14 typedef ExtensionApiTest CommandServiceTest;
15
16 IN_PROC_BROWSER_TEST_F(CommandServiceTest, RemoveShortcutSurvivesUpdate) {
17 base::ScopedTempDir scoped_temp_dir;
18 EXPECT_TRUE(scoped_temp_dir.CreateUniqueTempDir());
19 base::FilePath pem_path = test_data_dir_.
20 AppendASCII("keybinding").AppendASCII("keybinding.pem");
21 base::FilePath path_v1 = PackExtensionWithOptions(
22 test_data_dir_.AppendASCII("keybinding").AppendASCII("update")
23 .AppendASCII("v1"),
24 scoped_temp_dir.path().AppendASCII("v1.crx"),
25 pem_path,
26 base::FilePath());
27 base::FilePath path_v2 = PackExtensionWithOptions(
28 test_data_dir_.AppendASCII("keybinding").AppendASCII("update")
29 .AppendASCII("v2"),
30 scoped_temp_dir.path().AppendASCII("v2.crx"),
31 pem_path,
32 base::FilePath());
33
34 ExtensionService* service = ExtensionSystem::Get(browser()->profile())->
35 extension_service();
36 CommandService* command_service = CommandService::Get(browser()->profile());
37
38 const char kId[] = "pgoakhfeplldmjheffidklpoklkppipp";
39
40 // Install v1 of the extension.
41 ASSERT_TRUE(InstallExtension(path_v1, 1));
42 EXPECT_TRUE(service->GetExtensionById(kId, false) != NULL);
43
44 // Verify it has a command of Alt+Shift+F.
45 ui::Accelerator accelerator =
46 command_service->FindShortcutForCommand(
47 kId, extension_manifest_values::kBrowserActionCommandEvent);
48 EXPECT_EQ(ui::VKEY_F, accelerator.key_code());
49 EXPECT_FALSE(accelerator.IsCtrlDown());
50 EXPECT_TRUE(accelerator.IsShiftDown());
51 EXPECT_TRUE(accelerator.IsAltDown());
52
53 // Remove the keybinding.
54 command_service->RemoveKeybindingPrefs(
55 kId, extension_manifest_values::kBrowserActionCommandEvent);
56
57 // Verify it got removed.
58 accelerator = command_service->FindShortcutForCommand(
59 kId, extension_manifest_values::kBrowserActionCommandEvent);
60 EXPECT_EQ(ui::VKEY_UNKNOWN, accelerator.key_code());
61
62 // Update to version 2.
63 EXPECT_TRUE(UpdateExtension(kId, path_v2, 0));
64 EXPECT_TRUE(service->GetExtensionById(kId, false) != NULL);
65
66 // Verify it is still set to nothing.
67 accelerator = command_service->FindShortcutForCommand(
68 kId, extension_manifest_values::kBrowserActionCommandEvent);
69 EXPECT_EQ(ui::VKEY_UNKNOWN, accelerator.key_code());
70 }
71
72 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/commands/command_service.cc ('k') | chrome/browser/extensions/extension_prefs.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698