Index: chrome/browser/content_settings/permission_context_base_unittest.cc |
diff --git a/chrome/browser/content_settings/permission_context_base_unittest.cc b/chrome/browser/content_settings/permission_context_base_unittest.cc |
index 5d735740ad77fb56c478a6e5edb694e1dc294919..fda43572b6ec893536e182637daabbaa3f1e91a1 100644 |
--- a/chrome/browser/content_settings/permission_context_base_unittest.cc |
+++ b/chrome/browser/content_settings/permission_context_base_unittest.cc |
@@ -8,6 +8,8 @@ |
#include "chrome/browser/content_settings/host_content_settings_map.h" |
#include "chrome/browser/content_settings/permission_queue_controller.h" |
#include "chrome/browser/infobars/infobar_service.h" |
+#include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
+#include "chrome/common/content_settings.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_profile.h" |
#include "components/content_settings/core/common/content_settings.h" |
@@ -78,6 +80,41 @@ class TestPermissionContext : public PermissionContextBase { |
bool tab_context_updated_; |
}; |
+class PermissionContextBaseTests : public ChromeRenderViewHostTestHarness { |
+ protected: |
+ PermissionContextBaseTests() {} |
+ virtual ~PermissionContextBaseTests() {} |
+ |
+ // Accept or dismiss the permission bubble or infobar. |
+ void RespondToPermission(TestPermissionContext* context, |
+ const PermissionRequestID& id, |
+ const GURL& url, |
+ bool accept) { |
+ if (!PermissionBubbleManager::Enabled()) { |
+ context->GetInfoBarController()->OnPermissionSet( |
+ id, url, url, accept, accept); |
+ return; |
+ } |
+ |
+ PermissionBubbleManager* manager = |
+ PermissionBubbleManager::FromWebContents(web_contents()); |
+ if (accept) |
+ manager->Accept(); |
+ else |
+ manager->Closing(); |
+ } |
+ |
+ private: |
+ // ChromeRenderViewHostTestHarness: |
+ virtual void SetUp() OVERRIDE { |
+ ChromeRenderViewHostTestHarness::SetUp(); |
+ InfoBarService::CreateForWebContents(web_contents()); |
+ PermissionBubbleManager::CreateForWebContents(web_contents()); |
+ } |
+ |
+ DISALLOW_COPY_AND_ASSIGN(PermissionContextBaseTests); |
+}; |
+ |
// Simulates clicking Accept. The permission should be granted and |
// saved for future use. |
TEST_F(PermissionContextBaseTests, TestAskAndGrant) { |
@@ -96,8 +133,7 @@ TEST_F(PermissionContextBaseTests, TestAskAndGrant) { |
base::Bind(&TestPermissionContext::TrackPermissionDecision, |
base::Unretained(&permission_context))); |
- permission_context.GetInfoBarController()->OnPermissionSet( |
- id, url, url, true, true); |
+ RespondToPermission(&permission_context, id, url, true); |
EXPECT_TRUE(permission_context.permission_set()); |
EXPECT_TRUE(permission_context.permission_granted()); |
EXPECT_TRUE(permission_context.tab_context_updated()); |
@@ -127,8 +163,7 @@ TEST_F(PermissionContextBaseTests, TestAskAndDismiss) { |
base::Bind(&TestPermissionContext::TrackPermissionDecision, |
base::Unretained(&permission_context))); |
- permission_context.GetInfoBarController()->OnPermissionSet( |
- id, url, url, false, false); |
+ RespondToPermission(&permission_context, id, url, false); |
EXPECT_TRUE(permission_context.permission_set()); |
EXPECT_FALSE(permission_context.permission_granted()); |
EXPECT_TRUE(permission_context.tab_context_updated()); |