OLD | NEW |
---|---|
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 <string> | 5 #include <string> |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/message_loop/message_loop.h" | 9 #include "base/message_loop/message_loop.h" |
10 #include "chrome/browser/extensions/extension_action.h" | 10 #include "chrome/browser/extensions/extension_action.h" |
11 #include "chrome/browser/extensions/extension_action_manager.h" | 11 #include "chrome/browser/extensions/extension_action_manager.h" |
12 #include "chrome/browser/extensions/extension_service.h" | 12 #include "chrome/browser/extensions/extension_service.h" |
13 #include "chrome/browser/extensions/page_action_controller.h" | |
14 #include "chrome/browser/extensions/tab_helper.h" | 13 #include "chrome/browser/extensions/tab_helper.h" |
15 #include "chrome/browser/extensions/test_extension_system.h" | 14 #include "chrome/browser/extensions/test_extension_system.h" |
16 #include "chrome/browser/sessions/session_tab_helper.h" | 15 #include "chrome/browser/sessions/session_tab_helper.h" |
17 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 16 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
18 #include "chrome/test/base/testing_profile.h" | 17 #include "chrome/test/base/testing_profile.h" |
19 #include "extensions/common/extension.h" | 18 #include "extensions/common/extension.h" |
20 #include "extensions/common/extension_builder.h" | 19 #include "extensions/common/extension_builder.h" |
21 #include "extensions/common/value_builder.h" | 20 #include "extensions/common/value_builder.h" |
22 | 21 |
23 #if defined(OS_CHROMEOS) | 22 #if defined(OS_CHROMEOS) |
24 #include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" | 23 #include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h" |
25 #include "chrome/browser/chromeos/settings/cros_settings.h" | 24 #include "chrome/browser/chromeos/settings/cros_settings.h" |
26 #include "chrome/browser/chromeos/settings/device_settings_service.h" | 25 #include "chrome/browser/chromeos/settings/device_settings_service.h" |
27 #endif | 26 #endif |
28 | 27 |
29 namespace extensions { | 28 namespace extensions { |
30 namespace { | 29 namespace { |
31 | 30 |
32 class PageActionControllerTest : public ChromeRenderViewHostTestHarness { | 31 class LocationBarControllerUnitTest : public ChromeRenderViewHostTestHarness { |
33 protected: | 32 protected: |
34 virtual void SetUp() OVERRIDE { | 33 virtual void SetUp() OVERRIDE { |
35 ChromeRenderViewHostTestHarness::SetUp(); | 34 ChromeRenderViewHostTestHarness::SetUp(); |
36 #if defined OS_CHROMEOS | 35 #if defined OS_CHROMEOS |
37 test_user_manager_.reset(new chromeos::ScopedTestUserManager()); | 36 test_user_manager_.reset(new chromeos::ScopedTestUserManager()); |
38 #endif | 37 #endif |
39 TabHelper::CreateForWebContents(web_contents()); | 38 TabHelper::CreateForWebContents(web_contents()); |
40 // Create an ExtensionService so the PageActionController can find its | 39 // Create an ExtensionService so the LocationBarController can find its |
41 // extensions. | 40 // extensions. |
42 CommandLine command_line(CommandLine::NO_PROGRAM); | 41 CommandLine command_line(CommandLine::NO_PROGRAM); |
43 Profile* profile = | 42 Profile* profile = |
44 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); | 43 Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
45 extension_service_ = static_cast<TestExtensionSystem*>( | 44 extension_service_ = static_cast<TestExtensionSystem*>( |
46 ExtensionSystem::Get(profile))->CreateExtensionService( | 45 ExtensionSystem::Get(profile))->CreateExtensionService( |
47 &command_line, base::FilePath(), false); | 46 &command_line, base::FilePath(), false); |
48 } | 47 } |
49 | 48 |
50 virtual void TearDown() OVERRIDE { | 49 virtual void TearDown() OVERRIDE { |
(...skipping 10 matching lines...) Expand all Loading... | |
61 ExtensionService* extension_service_; | 60 ExtensionService* extension_service_; |
62 | 61 |
63 private: | 62 private: |
64 #if defined OS_CHROMEOS | 63 #if defined OS_CHROMEOS |
65 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; | 64 chromeos::ScopedTestDeviceSettingsService test_device_settings_service_; |
66 chromeos::ScopedTestCrosSettings test_cros_settings_; | 65 chromeos::ScopedTestCrosSettings test_cros_settings_; |
67 scoped_ptr<chromeos::ScopedTestUserManager> test_user_manager_; | 66 scoped_ptr<chromeos::ScopedTestUserManager> test_user_manager_; |
68 #endif | 67 #endif |
69 }; | 68 }; |
70 | 69 |
71 TEST_F(PageActionControllerTest, NavigationClearsState) { | 70 // Test that navigating clears all state in a page action. |
71 TEST_F(LocationBarControllerUnitTest, NavigationClearsState) { | |
72 scoped_refptr<const Extension> extension = | 72 scoped_refptr<const Extension> extension = |
73 ExtensionBuilder() | 73 ExtensionBuilder() |
74 .SetManifest(DictionaryBuilder() | 74 .SetManifest(DictionaryBuilder() |
75 .Set("name", "Extension with page action") | 75 .Set("name", "Extension with page action") |
76 .Set("version", "1.0.0") | 76 .Set("version", "1.0.0") |
77 .Set("manifest_version", 2) | 77 .Set("manifest_version", 2) |
78 .Set("permissions", ListBuilder() | 78 .Set("permissions", ListBuilder() |
79 .Append("tabs")) | 79 .Append("tabs")) |
80 .Set("page_action", DictionaryBuilder() | 80 .Set("page_action", DictionaryBuilder() |
81 .Set("default_title", "Hello"))) | 81 .Set("default_title", "Hello"))) |
(...skipping 19 matching lines...) Expand all Loading... | |
101 EXPECT_EQ(extension->GetResourceURL("popup.html"), | 101 EXPECT_EQ(extension->GetResourceURL("popup.html"), |
102 page_action.GetPopupUrl(tab_id())); | 102 page_action.GetPopupUrl(tab_id())); |
103 | 103 |
104 // Should discard the settings, and go back to the defaults. | 104 // Should discard the settings, and go back to the defaults. |
105 NavigateAndCommit(GURL("http://www.yahoo.com")); | 105 NavigateAndCommit(GURL("http://www.yahoo.com")); |
106 | 106 |
107 EXPECT_EQ("Hello", page_action.GetTitle(tab_id())); | 107 EXPECT_EQ("Hello", page_action.GetTitle(tab_id())); |
108 EXPECT_EQ(GURL(), page_action.GetPopupUrl(tab_id())); | 108 EXPECT_EQ(GURL(), page_action.GetPopupUrl(tab_id())); |
109 }; | 109 }; |
110 | 110 |
111 // TODO(devlin): We should really have more tests for this. | |
112 // NavigationClearsState doesn't test at all that the LocationBarController | |
113 // actually *returns* the proper PageActions in GetCurrentActions. Do we do | |
114 // this elsewhere? | |
Finnur
2014/08/27 16:00:15
Not sure. Probably not.
| |
115 | |
111 } // namespace | 116 } // namespace |
112 } // namespace extensions | 117 } // namespace extensions |
OLD | NEW |