Chromium Code Reviews| Index: chrome/common/extensions/manifest_handlers/automation_unittest.cc |
| diff --git a/chrome/common/extensions/manifest_handlers/automation_unittest.cc b/chrome/common/extensions/manifest_handlers/automation_unittest.cc |
| index 7a3062d0cf96797a595ed08fb39dff584c280b20..825437fb1218de468c77a79fe6d065e913c31774 100644 |
| --- a/chrome/common/extensions/manifest_handlers/automation_unittest.cc |
| +++ b/chrome/common/extensions/manifest_handlers/automation_unittest.cc |
| @@ -7,7 +7,11 @@ |
| #include "chrome/common/extensions/manifest_tests/extension_manifest_test.h" |
| #include "extensions/common/error_utils.h" |
| #include "extensions/common/manifest_constants.h" |
| +#include "extensions/common/permissions/permissions_data.h" |
| +#include "grit/extensions_strings.h" |
| +#include "grit/generated_resources.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#include "ui/base/l10n/l10n_util.h" |
| namespace extensions { |
| @@ -30,6 +34,10 @@ TEST_F(AutomationManifestTest, AsBooleanFalse) { |
| LoadAndExpectSuccess("automation_boolean_false.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(0u, warnings.size()); |
|
Devlin
2014/07/18 22:38:51
nit: EXPECT_EQ(), and can inline:
EXPECT_EQ(
0
Devlin
2014/07/21 19:45:35
Didn't like these ones? ;)
aboxhall
2014/07/21 22:44:10
Don't know what happened there!
Made it an EXPECT
|
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_FALSE(info); |
| } |
| @@ -39,12 +47,17 @@ TEST_F(AutomationManifestTest, AsBooleanTrue) { |
| LoadAndExpectSuccess("automation_boolean_true.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ("Read and modify your data on www.google.com", |
| + base::UTF16ToUTF8(warnings[0])); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_FALSE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -53,12 +66,17 @@ TEST_F(AutomationManifestTest, InteractTrue) { |
| LoadAndExpectSuccess("automation_interact_true.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ("Read and modify your data on www.google.com", |
| + base::UTF16ToUTF8(warnings[0])); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_TRUE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -72,12 +90,17 @@ TEST_F(AutomationManifestTest, Matches) { |
| URLPattern::PARSE_ERROR_MISSING_SCHEME_SEPARATOR))); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ("Read and modify your data on www.google.com and www.twitter.com", |
| + base::UTF16ToUTF8(warnings[0])); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_FALSE(info->interact); |
| - EXPECT_TRUE(info->specified_matches); |
| EXPECT_FALSE(info->matches.is_empty()); |
| EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.google.com/"))); |
| @@ -89,18 +112,45 @@ TEST_F(AutomationManifestTest, Matches) { |
| EXPECT_FALSE(info->matches.MatchesURL(GURL("http://www.bing.com"))); |
| } |
| +TEST_F(AutomationManifestTest, MatchesAndPermissions) { |
| + scoped_refptr<Extension> extension = |
| + LoadAndExpectSuccess("automation_matches_and_permissions.json"); |
| + ASSERT_TRUE(extension.get()); |
| + |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(2u, warnings.size()); |
| + EXPECT_EQ("Read and modify your data on www.google.com", |
| + base::UTF16ToUTF8(warnings[0])); |
| + EXPECT_EQ("Read and modify your data on www.twitter.com", |
| + base::UTF16ToUTF8(warnings[1])); |
| + |
| + const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| + ASSERT_TRUE(info); |
| + |
| + EXPECT_FALSE(info->desktop); |
| + EXPECT_FALSE(info->interact); |
| + EXPECT_FALSE(info->matches.is_empty()); |
| + |
| + EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com/"))); |
| + EXPECT_TRUE(info->matches.MatchesURL(GURL("http://www.twitter.com"))); |
| +} |
| + |
| TEST_F(AutomationManifestTest, EmptyMatches) { |
| scoped_refptr<Extension> extension = |
| LoadAndExpectWarning("automation_empty_matches.json", |
| automation_errors::kErrorNoMatchesProvided); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(0u, warnings.size()); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_FALSE(info->interact); |
| - EXPECT_TRUE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -120,12 +170,15 @@ TEST_F(AutomationManifestTest, NoValidMatches) { |
| EXPECT_EQ(automation_errors::kErrorNoMatchesProvided, |
| extension->install_warnings()[1].message); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(0u, warnings.size()); |
|
Devlin
2014/07/18 22:38:51
nit: EXPECT_EQ and inline
aboxhall
2014/07/21 22:44:10
Partially done, as above.
|
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_FALSE(info->interact); |
| - EXPECT_TRUE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -134,12 +187,17 @@ TEST_F(AutomationManifestTest, DesktopFalse) { |
| LoadAndExpectSuccess("automation_desktop_false.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ("Read and modify your data on www.google.com", |
| + base::UTF16ToUTF8(warnings[0])); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_FALSE(info->desktop); |
| EXPECT_FALSE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -148,12 +206,17 @@ TEST_F(AutomationManifestTest, DesktopTrue) { |
| LoadAndExpectSuccess("automation_desktop_true.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), |
| + warnings[0]); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_TRUE(info->desktop); |
| EXPECT_TRUE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -161,13 +224,17 @@ TEST_F(AutomationManifestTest, Desktop_InteractTrue) { |
| scoped_refptr<Extension> extension = |
| LoadAndExpectSuccess("automation_desktop_interact_true.json"); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), |
| + warnings[0]); |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_TRUE(info->desktop); |
| EXPECT_TRUE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -177,12 +244,17 @@ TEST_F(AutomationManifestTest, Desktop_InteractFalse) { |
| automation_errors::kErrorDesktopTrueInteractFalse); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), |
| + warnings[0]); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_TRUE(info->desktop); |
| EXPECT_TRUE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |
| @@ -192,12 +264,17 @@ TEST_F(AutomationManifestTest, Desktop_MatchesSpecified) { |
| automation_errors::kErrorDesktopTrueMatchesSpecified); |
| ASSERT_TRUE(extension.get()); |
| + std::vector<base::string16> warnings = |
| + extension->permissions_data()->GetPermissionMessageStrings(); |
| + ASSERT_EQ(1u, warnings.size()); |
| + EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_FULL_ACCESS), |
| + warnings[0]); |
| + |
| const AutomationInfo* info = AutomationInfo::Get(extension.get()); |
| ASSERT_TRUE(info); |
| EXPECT_TRUE(info->desktop); |
| EXPECT_TRUE(info->interact); |
| - EXPECT_FALSE(info->specified_matches); |
| EXPECT_TRUE(info->matches.is_empty()); |
| } |