OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "chrome/browser/extensions/api/developer_private/developer_private_api.
h" | 5 #include "chrome/browser/extensions/api/developer_private/developer_private_api.
h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <utility> | 8 #include <utility> |
9 | 9 |
10 #include "base/files/file_util.h" | 10 #include "base/files/file_util.h" |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
108 | 108 |
109 std::vector<std::unique_ptr<TestExtensionDir>> test_extension_dirs_; | 109 std::vector<std::unique_ptr<TestExtensionDir>> test_extension_dirs_; |
110 | 110 |
111 DISALLOW_COPY_AND_ASSIGN(DeveloperPrivateApiUnitTest); | 111 DISALLOW_COPY_AND_ASSIGN(DeveloperPrivateApiUnitTest); |
112 }; | 112 }; |
113 | 113 |
114 bool DeveloperPrivateApiUnitTest::RunFunction( | 114 bool DeveloperPrivateApiUnitTest::RunFunction( |
115 const scoped_refptr<UIThreadExtensionFunction>& function, | 115 const scoped_refptr<UIThreadExtensionFunction>& function, |
116 const base::ListValue& args) { | 116 const base::ListValue& args) { |
117 return extension_function_test_utils::RunFunction( | 117 return extension_function_test_utils::RunFunction( |
118 function.get(), base::WrapUnique(args.DeepCopy()), browser(), | 118 function.get(), args.CreateDeepCopy(), browser(), |
119 extension_function_test_utils::NONE); | 119 extension_function_test_utils::NONE); |
120 } | 120 } |
121 | 121 |
122 const Extension* DeveloperPrivateApiUnitTest::LoadUnpackedExtension() { | 122 const Extension* DeveloperPrivateApiUnitTest::LoadUnpackedExtension() { |
123 const char kManifest[] = | 123 const char kManifest[] = |
124 "{" | 124 "{" |
125 " \"name\": \"foo\"," | 125 " \"name\": \"foo\"," |
126 " \"version\": \"1.0\"," | 126 " \"version\": \"1.0\"," |
127 " \"manifest_version\": 2," | 127 " \"manifest_version\": 2," |
128 " \"permissions\": [\"*://*/*\"]" | 128 " \"permissions\": [\"*://*/*\"]" |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 return extension.get(); | 171 return extension.get(); |
172 } | 172 } |
173 | 173 |
174 void DeveloperPrivateApiUnitTest::TestExtensionPrefSetting( | 174 void DeveloperPrivateApiUnitTest::TestExtensionPrefSetting( |
175 const base::Callback<bool()>& has_pref, | 175 const base::Callback<bool()>& has_pref, |
176 const std::string& key, | 176 const std::string& key, |
177 const std::string& extension_id) { | 177 const std::string& extension_id) { |
178 scoped_refptr<UIThreadExtensionFunction> function( | 178 scoped_refptr<UIThreadExtensionFunction> function( |
179 new api::DeveloperPrivateUpdateExtensionConfigurationFunction()); | 179 new api::DeveloperPrivateUpdateExtensionConfigurationFunction()); |
180 | 180 |
181 base::ListValue args; | |
182 base::DictionaryValue* parameters = new base::DictionaryValue(); | |
183 parameters->SetString("extensionId", extension_id); | |
184 parameters->SetBoolean(key, true); | |
185 args.Append(parameters); | |
186 | |
187 EXPECT_FALSE(has_pref.Run()) << key; | 181 EXPECT_FALSE(has_pref.Run()) << key; |
188 | 182 |
189 EXPECT_FALSE(RunFunction(function, args)) << key; | 183 { |
190 EXPECT_EQ(std::string("This action requires a user gesture."), | 184 auto parameters = base::MakeUnique<base::DictionaryValue>(); |
191 function->GetError()); | 185 parameters->SetString("extensionId", extension_id); |
| 186 parameters->SetBoolean(key, true); |
192 | 187 |
193 ExtensionFunction::ScopedUserGestureForTests scoped_user_gesture; | 188 base::ListValue args; |
194 function = new api::DeveloperPrivateUpdateExtensionConfigurationFunction(); | 189 args.Append(std::move(parameters)); |
195 EXPECT_TRUE(RunFunction(function, args)) << key; | 190 EXPECT_FALSE(RunFunction(function, args)) << key; |
196 EXPECT_TRUE(has_pref.Run()) << key; | 191 EXPECT_EQ("This action requires a user gesture.", function->GetError()); |
197 | 192 |
198 parameters->SetBoolean(key, false); | 193 ExtensionFunction::ScopedUserGestureForTests scoped_user_gesture; |
199 function = new api::DeveloperPrivateUpdateExtensionConfigurationFunction(); | 194 function = new api::DeveloperPrivateUpdateExtensionConfigurationFunction(); |
200 EXPECT_TRUE(RunFunction(function, args)) << key; | 195 EXPECT_TRUE(RunFunction(function, args)) << key; |
201 EXPECT_FALSE(has_pref.Run()) << key; | 196 EXPECT_TRUE(has_pref.Run()) << key; |
| 197 } |
| 198 |
| 199 { |
| 200 auto parameters = base::MakeUnique<base::DictionaryValue>(); |
| 201 parameters->SetString("extensionId", extension_id); |
| 202 parameters->SetBoolean(key, false); |
| 203 |
| 204 base::ListValue args; |
| 205 args.Append(std::move(parameters)); |
| 206 |
| 207 ExtensionFunction::ScopedUserGestureForTests scoped_user_gesture; |
| 208 function = new api::DeveloperPrivateUpdateExtensionConfigurationFunction(); |
| 209 EXPECT_TRUE(RunFunction(function, args)) << key; |
| 210 EXPECT_FALSE(has_pref.Run()) << key; |
| 211 } |
202 } | 212 } |
203 | 213 |
204 testing::AssertionResult DeveloperPrivateApiUnitTest::TestPackExtensionFunction( | 214 testing::AssertionResult DeveloperPrivateApiUnitTest::TestPackExtensionFunction( |
205 const base::ListValue& args, | 215 const base::ListValue& args, |
206 api::developer_private::PackStatus expected_status, | 216 api::developer_private::PackStatus expected_status, |
207 int expected_flags) { | 217 int expected_flags) { |
208 scoped_refptr<UIThreadExtensionFunction> function( | 218 scoped_refptr<UIThreadExtensionFunction> function( |
209 new api::DeveloperPrivatePackDirectoryFunction()); | 219 new api::DeveloperPrivatePackDirectoryFunction()); |
210 if (!RunFunction(function, args)) | 220 if (!RunFunction(function, args)) |
211 return testing::AssertionFailure() << "Could not run function."; | 221 return testing::AssertionFailure() << "Could not run function."; |
(...skipping 348 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 .Append( | 570 .Append( |
561 DictionaryBuilder().Set("extensionId", extension->id()).Build()) | 571 DictionaryBuilder().Set("extensionId", extension->id()).Build()) |
562 .Build(); | 572 .Build(); |
563 function = new api::DeveloperPrivateDeleteExtensionErrorsFunction(); | 573 function = new api::DeveloperPrivateDeleteExtensionErrorsFunction(); |
564 EXPECT_TRUE(RunFunction(function, *args)) << function->GetError(); | 574 EXPECT_TRUE(RunFunction(function, *args)) << function->GetError(); |
565 // No more errors! | 575 // No more errors! |
566 EXPECT_TRUE(error_console->GetErrorsForExtension(extension->id()).empty()); | 576 EXPECT_TRUE(error_console->GetErrorsForExtension(extension->id()).empty()); |
567 } | 577 } |
568 | 578 |
569 } // namespace extensions | 579 } // namespace extensions |
OLD | NEW |