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

Unified Diff: chrome/browser/extensions/active_tab_unittest.cc

Issue 2858013002: PS - Showing permission prompt for activeTab (Closed)
Patch Set: Added permission message for activeTab; partial tests Created 3 years, 7 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/browser/extensions/active_tab_unittest.cc
diff --git a/chrome/browser/extensions/active_tab_unittest.cc b/chrome/browser/extensions/active_tab_unittest.cc
index 908d366a92c7e4d6202824b1f8f6dc558e03b4ea..8b27e6970c897853d165c3990cfe4e8b7164db58 100644
--- a/chrome/browser/extensions/active_tab_unittest.cc
+++ b/chrome/browser/extensions/active_tab_unittest.cc
@@ -7,6 +7,8 @@
#include <utility>
#include "base/compiler_specific.h"
+#include "base/macros.h"
+#include "base/memory/ptr_util.h"
#include "base/message_loop/message_loop.h"
#include "base/values.h"
#include "chrome/browser/chrome_notification_types.h"
@@ -67,6 +69,28 @@ enum PermittedFeature {
PERMITTED_BOTH
};
+class ActiveTabPermissionGranterTestDelegate
+ : public ActiveTabPermissionGranter::Delegate {
+ public:
+ ActiveTabPermissionGranterTestDelegate() {}
+ ~ActiveTabPermissionGranterTestDelegate() override {}
+
+ // ActiveTabPermissionGranterTestDelegate::Delegate
+ bool ShouldGrantActiveTab(const Extension* extension,
+ content::WebContents* contents) override {
+ return should_grant_;
+ }
+
+ void SetShouldGrant(bool should_grant) {
+ should_grant_ = should_grant;
+ }
+
+ private:
+ bool should_grant_ = false;
+
+ DISALLOW_COPY_AND_ASSIGN(ActiveTabPermissionGranterTestDelegate);
+};
+
class ActiveTabTest : public ChromeRenderViewHostTestHarness {
protected:
ActiveTabTest()
@@ -380,5 +404,27 @@ TEST_F(ActiveTabTest, ChromeUrlGrants) {
tab_id() + 1, APIPermission::kTabCaptureForTab));
}
+// Test that the custom platform delegate works as expected.
+TEST_F(ActiveTabTest, Delegate) {
+ auto test_delegate =
+ base::MakeUnique<ActiveTabPermissionGranterTestDelegate>();
+ ActiveTabPermissionGranter::SetPlatformDelegate(test_delegate.get());
+
+ GURL google("http://www.google.com");
+ NavigateAndCommit(google);
+
+ // Not granted because the delegate denies grant.
+ active_tab_permission_granter()->GrantIfRequested(extension.get());
+ EXPECT_TRUE(IsBlocked(extension, google));
+
+ // This time it's granted because the delegate allows it.
+ test_delegate->SetShouldGrant(true);
+ active_tab_permission_granter()->GrantIfRequested(extension.get());
+ EXPECT_TRUE(IsAllowed(extension, google));
+
+ // Cleanup :).
+ ActiveTabPermissionGranter::SetPlatformDelegate(nullptr);
+}
+
} // namespace
} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698