Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(717)

Unified Diff: chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc

Issue 594003002: Added unit tests for ChromePermissionMessageProvider (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed up comments/naming Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc
diff --git a/chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc b/chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e73481103ef03b8771d7ffad402ab282b432524b
--- /dev/null
+++ b/chrome/common/extensions/permissions/chrome_permission_message_provider_unittest.cc
@@ -0,0 +1,102 @@
+// Copyright 2014 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/common/extensions/permissions/chrome_permission_message_provider.h"
+
+#include "base/memory/scoped_ptr.h"
+#include "chrome/grit/generated_resources.h"
+#include "extensions/common/permissions/permissions_data.h"
+#include "extensions/strings/grit/extensions_strings.h"
+#include "testing/gtest/include/gtest/gtest.h"
+#include "ui/base/l10n/l10n_util.h"
+
+namespace extensions {
+
+// Tests that ChromePermissionMessageProvider provides correct permission
+// messages for given permissions.
+// NOTE: No extensions are created as part of these tests. Integration tests
+// that test the messages are generated properly for extensions can be found in
+// chrome/browser/extensions/permission_messages_unittest.cc.
+class ChromePermissionMessageProviderUnittest : public testing::Test {
+ public:
+ ChromePermissionMessageProviderUnittest()
+ : message_provider_(new ChromePermissionMessageProvider()) {}
+ virtual ~ChromePermissionMessageProviderUnittest() {}
+
+ protected:
+ std::vector<base::string16> GetMessages(APIPermissionSet& permissions,
+ Manifest::Type type) {
+ scoped_refptr<const PermissionSet> permission_set = new PermissionSet(
+ permissions, ManifestPermissionSet(), URLPatternSet(), URLPatternSet());
+ return message_provider_->GetWarningMessages(permission_set.get(), type);
+ }
+
+ private:
+ scoped_ptr<ChromePermissionMessageProvider> message_provider_;
+
+ DISALLOW_COPY_AND_ASSIGN(ChromePermissionMessageProviderUnittest);
+};
+
+// Checks that two related permissions display individual messages when they are
+// the only permission, but combine into one message when they are both present.
+TEST_F(ChromePermissionMessageProviderUnittest, RelatedPermissionsCoalesce) {
+ APIPermissionSet permissions;
+ std::vector<base::string16> messages;
+
+ permissions.clear();
+ permissions.insert(APIPermission::kUsb);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB),
+ messages[0]);
+
+ permissions.clear();
+ permissions.insert(APIPermission::kSerial);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_SERIAL),
+ messages[0]);
+
+ permissions.clear();
+ permissions.insert(APIPermission::kSerial);
+ permissions.insert(APIPermission::kUsb);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_USB_SERIAL),
+ messages[0]);
+}
+
+// Checks that if an app has a superset and a subset permission, only the
+// superset permission message is displayed if thye are both present.
+TEST_F(ChromePermissionMessageProviderUnittest,
+ SupersetOverridesSubsetPermission) {
+ APIPermissionSet permissions;
+ std::vector<base::string16> messages;
+
+ permissions.clear();
+ permissions.insert(APIPermission::kTab);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ),
+ messages[0]);
+
+ permissions.clear();
+ permissions.insert(APIPermission::kTopSites);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_TOPSITES),
+ messages[0]);
+
+ permissions.clear();
+ permissions.insert(APIPermission::kTab);
+ permissions.insert(APIPermission::kTopSites);
+ messages = GetMessages(permissions, Manifest::TYPE_PLATFORM_APP);
+ ASSERT_EQ(1U, messages.size());
+ EXPECT_EQ(
+ l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_HISTORY_READ),
+ messages[0]);
+}
+
+} // namespace extensions
« no previous file with comments | « chrome/common/extensions/permissions/chrome_permission_message_provider.h ('k') | extensions/common/test_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698