OLD | NEW |
| (Empty) |
1 // Copyright (c) 2011 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/plugin_prefs.h" | |
6 | |
7 #include "base/utf_string_conversions.h" | |
8 #include "chrome/test/base/testing_browser_process.h" | |
9 #include "chrome/test/base/testing_profile.h" | |
10 #include "chrome/test/base/testing_profile_manager.h" | |
11 #include "testing/gtest/include/gtest/gtest.h" | |
12 #include "webkit/plugins/webplugininfo.h" | |
13 | |
14 class PluginPrefsTest : public ::testing::Test { | |
15 public: | |
16 virtual void SetUp() OVERRIDE { | |
17 plugin_prefs_ = new PluginPrefs(); | |
18 } | |
19 | |
20 void SetPolicyEnforcedPluginPatterns( | |
21 const std::set<string16>& disabled, | |
22 const std::set<string16>& disabled_exceptions, | |
23 const std::set<string16>& enabled) { | |
24 plugin_prefs_->SetPolicyEnforcedPluginPatterns( | |
25 disabled, disabled_exceptions, enabled); | |
26 } | |
27 | |
28 protected: | |
29 scoped_refptr<PluginPrefs> plugin_prefs_; | |
30 }; | |
31 | |
32 TEST_F(PluginPrefsTest, DisabledByPolicy) { | |
33 std::set<string16> disabled_plugins; | |
34 disabled_plugins.insert(ASCIIToUTF16("Disable this!")); | |
35 disabled_plugins.insert(ASCIIToUTF16("*Google*")); | |
36 SetPolicyEnforcedPluginPatterns(disabled_plugins, | |
37 std::set<string16>(), | |
38 std::set<string16>()); | |
39 | |
40 EXPECT_EQ(PluginPrefs::NO_POLICY, | |
41 plugin_prefs_->PolicyStatusForPlugin(ASCIIToUTF16("42"))); | |
42 EXPECT_EQ(PluginPrefs::POLICY_DISABLED, | |
43 plugin_prefs_->PolicyStatusForPlugin( | |
44 ASCIIToUTF16("Disable this!"))); | |
45 EXPECT_EQ(PluginPrefs::POLICY_DISABLED, | |
46 plugin_prefs_->PolicyStatusForPlugin(ASCIIToUTF16("Google Earth"))); | |
47 } | |
48 | |
49 TEST_F(PluginPrefsTest, EnabledByPolicy) { | |
50 std::set<string16> enabled_plugins; | |
51 enabled_plugins.insert(ASCIIToUTF16("Enable that!")); | |
52 enabled_plugins.insert(ASCIIToUTF16("PDF*")); | |
53 SetPolicyEnforcedPluginPatterns(std::set<string16>(), | |
54 std::set<string16>(), | |
55 enabled_plugins); | |
56 | |
57 EXPECT_EQ(PluginPrefs::NO_POLICY, | |
58 plugin_prefs_->PolicyStatusForPlugin(ASCIIToUTF16("42"))); | |
59 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
60 plugin_prefs_->PolicyStatusForPlugin(ASCIIToUTF16("Enable that!"))); | |
61 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
62 plugin_prefs_->PolicyStatusForPlugin(ASCIIToUTF16("PDF Reader"))); | |
63 } | |
64 | |
65 TEST_F(PluginPrefsTest, EnabledAndDisabledByPolicy) { | |
66 const string16 k42(ASCIIToUTF16("42")); | |
67 const string16 kEnabled(ASCIIToUTF16("Enabled")); | |
68 const string16 kEnabled2(ASCIIToUTF16("Enabled 2")); | |
69 const string16 kEnabled3(ASCIIToUTF16("Enabled 3")); | |
70 const string16 kException(ASCIIToUTF16("Exception")); | |
71 const string16 kException2(ASCIIToUTF16("Exception 2")); | |
72 const string16 kGoogleMars(ASCIIToUTF16("Google Mars")); | |
73 const string16 kGoogleEarth(ASCIIToUTF16("Google Earth")); | |
74 | |
75 std::set<string16> disabled_plugins; | |
76 std::set<string16> disabled_plugins_exceptions; | |
77 std::set<string16> enabled_plugins; | |
78 | |
79 disabled_plugins.insert(kEnabled); | |
80 disabled_plugins_exceptions.insert(kEnabled); | |
81 enabled_plugins.insert(kEnabled); | |
82 | |
83 disabled_plugins_exceptions.insert(kException); | |
84 | |
85 disabled_plugins.insert(kEnabled2); | |
86 enabled_plugins.insert(kEnabled2); | |
87 | |
88 disabled_plugins.insert(kException2); | |
89 disabled_plugins_exceptions.insert(kException2); | |
90 | |
91 disabled_plugins_exceptions.insert(kEnabled3); | |
92 enabled_plugins.insert(kEnabled3); | |
93 | |
94 SetPolicyEnforcedPluginPatterns(disabled_plugins, | |
95 disabled_plugins_exceptions, | |
96 enabled_plugins); | |
97 | |
98 EXPECT_EQ(PluginPrefs::NO_POLICY, plugin_prefs_->PolicyStatusForPlugin(k42)); | |
99 | |
100 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
101 plugin_prefs_->PolicyStatusForPlugin(kEnabled)); | |
102 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
103 plugin_prefs_->PolicyStatusForPlugin(kEnabled2)); | |
104 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
105 plugin_prefs_->PolicyStatusForPlugin(kEnabled3)); | |
106 | |
107 EXPECT_EQ(PluginPrefs::NO_POLICY, | |
108 plugin_prefs_->PolicyStatusForPlugin(kException)); | |
109 EXPECT_EQ(PluginPrefs::NO_POLICY, | |
110 plugin_prefs_->PolicyStatusForPlugin(kException2)); | |
111 | |
112 disabled_plugins.clear(); | |
113 disabled_plugins_exceptions.clear(); | |
114 enabled_plugins.clear(); | |
115 | |
116 disabled_plugins.insert(ASCIIToUTF16("*")); | |
117 disabled_plugins_exceptions.insert(ASCIIToUTF16("*Google*")); | |
118 enabled_plugins.insert(kGoogleEarth); | |
119 | |
120 SetPolicyEnforcedPluginPatterns(disabled_plugins, | |
121 disabled_plugins_exceptions, | |
122 enabled_plugins); | |
123 | |
124 EXPECT_EQ(PluginPrefs::POLICY_ENABLED, | |
125 plugin_prefs_->PolicyStatusForPlugin(kGoogleEarth)); | |
126 EXPECT_EQ(PluginPrefs::NO_POLICY, | |
127 plugin_prefs_->PolicyStatusForPlugin(kGoogleMars)); | |
128 EXPECT_EQ(PluginPrefs::POLICY_DISABLED, | |
129 plugin_prefs_->PolicyStatusForPlugin(k42)); | |
130 } | |
131 | |
132 TEST_F(PluginPrefsTest, DisableGlobally) { | |
133 MessageLoop message_loop; | |
134 BrowserThread ui_thread(BrowserThread::UI, &message_loop); | |
135 BrowserThread file_thread(BrowserThread::FILE, &message_loop); | |
136 | |
137 TestingBrowserProcess* browser_process = | |
138 static_cast<TestingBrowserProcess*>(g_browser_process); | |
139 TestingProfileManager profile_manager(browser_process); | |
140 ASSERT_TRUE(profile_manager.SetUp()); | |
141 | |
142 TestingProfile* profile_1 = | |
143 profile_manager.CreateTestingProfile("Profile 1"); | |
144 PluginPrefs* plugin_prefs = PluginPrefs::GetForTestingProfile(profile_1); | |
145 ASSERT_TRUE(plugin_prefs); | |
146 | |
147 webkit::WebPluginInfo plugin(ASCIIToUTF16("Foo"), | |
148 FilePath(FILE_PATH_LITERAL("/path/too/foo")), | |
149 ASCIIToUTF16("1.0.0"), | |
150 ASCIIToUTF16("Foo plug-in")); | |
151 PluginPrefs::EnablePluginGlobally(false, plugin.path); | |
152 | |
153 EXPECT_FALSE(plugin_prefs->IsPluginEnabled(plugin)); | |
154 | |
155 TestingProfile* profile_2 = | |
156 profile_manager.CreateTestingProfile("Profile 2"); | |
157 PluginPrefs* plugin_prefs_2 = PluginPrefs::GetForTestingProfile(profile_2); | |
158 ASSERT_TRUE(plugin_prefs); | |
159 EXPECT_FALSE(plugin_prefs_2->IsPluginEnabled(plugin)); | |
160 } | |
OLD | NEW |