Chromium Code Reviews| Index: chrome/browser/extensions/extension_install_prompt_unittest.cc |
| diff --git a/chrome/browser/extensions/extension_install_prompt_unittest.cc b/chrome/browser/extensions/extension_install_prompt_unittest.cc |
| index d43e46b9603a828422c711e0c20d20242b6122aa..707cfaf63a3c34e53e50ca0559a1c272104b2fbf 100644 |
| --- a/chrome/browser/extensions/extension_install_prompt_unittest.cc |
| +++ b/chrome/browser/extensions/extension_install_prompt_unittest.cc |
| @@ -9,6 +9,7 @@ |
| #include "content/public/test/test_browser_thread_bundle.h" |
| #include "extensions/common/extension.h" |
| #include "extensions/common/extension_builder.h" |
| +#include "extensions/common/feature_switch.h" |
| #include "extensions/common/permissions/api_permission.h" |
| #include "extensions/common/permissions/api_permission_set.h" |
| #include "extensions/common/permissions/manifest_permission_set.h" |
| @@ -21,11 +22,18 @@ namespace extensions { |
| void VerifyPromptPermissionsCallback( |
| const base::Closure& quit_closure, |
| + size_t regular_permissions_count, |
| + size_t withheld_permissions_count, |
| const ExtensionInstallPrompt::ShowParams& params, |
| ExtensionInstallPrompt::Delegate* delegate, |
| scoped_refptr<ExtensionInstallPrompt::Prompt> install_prompt) { |
| ASSERT_TRUE(install_prompt.get()); |
| - EXPECT_EQ(1u, install_prompt->GetPermissionCount()); |
| + EXPECT_EQ(regular_permissions_count, |
| + install_prompt->GetPermissionCount( |
| + ExtensionInstallPrompt::REGULAR_PERMISSIONS)); |
| + EXPECT_EQ(withheld_permissions_count, |
| + install_prompt->GetPermissionCount( |
| + ExtensionInstallPrompt::WITHHELD_PERMISSIONS)); |
| quit_closure.Run(); |
| } |
| @@ -47,11 +55,46 @@ TEST(ExtensionInstallPromptUnittest, PromptShowsPermissionWarnings) { |
| ExtensionInstallPrompt prompt(NULL /* no web contents in this test */); |
| base::RunLoop run_loop; |
| prompt.set_callback_for_test(base::Bind(&VerifyPromptPermissionsCallback, |
| - run_loop.QuitClosure())); |
| + run_loop.QuitClosure(), |
| + 1u, // regular_permissions_count |
|
Finnur
2014/09/15 11:45:28
nit: Think I'd prefer:
// |regular_permissions_cou
gpdavis
2014/09/15 20:04:07
Done.
Finnur
2014/09/16 10:18:11
... with the period at the end. :)
gpdavis
2014/09/16 19:01:47
Oops! Wasn't sure if that period was meant to be
|
| + 0u)); // withheld_permissions_count |
| prompt.ConfirmPermissions(NULL, // no delegate |
| extension.get(), |
| permission_set.get()); |
| run_loop.Run(); |
| } |
| +TEST(ExtensionInstallPromptUnittest, PromptShowsWithheldPermissions) { |
| + content::TestBrowserThreadBundle thread_bundle; |
| + |
| + // Enable consent flag so that <all_hosts> permissions get withheld. |
| + FeatureSwitch::ScopedOverride enable_scripts_switch( |
| + FeatureSwitch::scripts_require_action(), true); |
| + |
| + ListBuilder permissions; |
| + permissions.Append("http://*/*"); |
| + permissions.Append("http://www.google.com/"); |
| + permissions.Append("tabs"); |
| + scoped_refptr<const Extension> extension = |
| + ExtensionBuilder().SetManifest( |
| + DictionaryBuilder().Set("name", "foo") |
| + .Set("version", "1.0") |
| + .Set("manifest_version", 2) |
| + .Set("description", "Random Ext") |
| + .Set("permissions", permissions)).Build(); |
| + ExtensionInstallPrompt prompt(NULL /* no web contents in this test */); |
| + base::RunLoop run_loop; |
| + |
| + // We expect <all_hosts> to be withheld, but http://www.google.com/ and tabs |
| + // permissions should be granted as regular permissions. |
| + prompt.ConfirmInstall( |
| + NULL, |
| + extension.get(), |
| + base::Bind(&VerifyPromptPermissionsCallback, |
| + run_loop.QuitClosure(), |
| + 2u, // regular_permissions_count |
| + 1u)); // withheld_permissions_count |
| + run_loop.Run(); |
| +} |
| + |
| } // namespace extensions |