Index: chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
diff --git a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
index fa79aa8bfdf6c33cc9a9ba8158cfcfe8b95068d4..52eb422535a06b6af50b93c8bf4975595b87aa71 100644 |
--- a/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
+++ b/chrome/browser/geolocation/geolocation_permission_context_unittest.cc |
@@ -9,7 +9,6 @@ |
#include <utility> |
#include "base/bind.h" |
-#include "base/command_line.h" |
#include "base/containers/hash_tables.h" |
#include "base/id_map.h" |
#include "base/memory/scoped_vector.h" |
@@ -20,10 +19,6 @@ |
#include "chrome/browser/content_settings/tab_specific_content_settings.h" |
#include "chrome/browser/geolocation/geolocation_permission_context_factory.h" |
#include "chrome/browser/infobars/infobar_service.h" |
-#include "chrome/browser/ui/website_settings/mock_permission_bubble_view.h" |
-#include "chrome/browser/ui/website_settings/permission_bubble_manager.h" |
-#include "chrome/browser/ui/website_settings/permission_bubble_request.h" |
-#include "chrome/common/chrome_switches.h" |
#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
#include "chrome/test/base/testing_profile.h" |
#include "components/content_settings/core/browser/host_content_settings_map.h" |
@@ -125,8 +120,7 @@ |
void RequestGeolocationPermission(content::WebContents* web_contents, |
const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- bool user_gesture); |
+ const GURL& requesting_frame); |
void PermissionResponse(const PermissionRequestID& id, |
bool allowed); |
@@ -138,18 +132,10 @@ |
void AddNewTab(const GURL& url); |
void CheckTabContentsState(const GURL& requesting_frame, |
ContentSetting expected_content_setting); |
- size_t GetBubblesQueueSize(PermissionBubbleManager* manager); |
- void AcceptBubble(PermissionBubbleManager* manager); |
- void DenyBubble(PermissionBubbleManager* manager); |
- void CloseBubble(PermissionBubbleManager* manager); |
- void BubbleManagerDocumentLoadCompleted(); |
- void BubbleManagerDocumentLoadCompleted(content::WebContents* web_contents); |
- ContentSetting GetGeolocationContentSetting(GURL frame_0, GURL frame_1); |
// owned by the browser context |
GeolocationPermissionContext* geolocation_permission_context_; |
ClosedInfoBarTracker closed_infobar_tracker_; |
- MockPermissionBubbleView bubble_view_; |
ScopedVector<content::WebContents> extra_tabs_; |
// A map between renderer child id and a pair represending the bridge id and |
@@ -179,10 +165,9 @@ |
void GeolocationPermissionContextTests::RequestGeolocationPermission( |
content::WebContents* web_contents, |
const PermissionRequestID& id, |
- const GURL& requesting_frame, |
- bool user_gesture) { |
+ const GURL& requesting_frame) { |
geolocation_permission_context_->RequestPermission( |
- web_contents, id, requesting_frame, user_gesture, |
+ web_contents, id, requesting_frame, false, |
base::Bind(&GeolocationPermissionContextTests::PermissionResponse, |
base::Unretained(this), id)); |
content::RunAllBlockingPoolTasksUntilIdle(); |
@@ -232,8 +217,6 @@ |
extensions::SetViewType(new_tab, extensions::VIEW_TYPE_TAB_CONTENTS); |
#endif |
InfoBarService::CreateForWebContents(new_tab); |
- PermissionBubbleManager::CreateForWebContents(new_tab); |
- PermissionBubbleManager::FromWebContents(new_tab)->SetView(&bubble_view_); |
extra_tabs_.push_back(new_tab); |
} |
@@ -272,9 +255,6 @@ |
scoped_ptr<LocationSettings>(new MockLocationSettings())); |
MockLocationSettings::SetLocationStatus(true, true); |
#endif |
- PermissionBubbleManager::CreateForWebContents(web_contents()); |
- PermissionBubbleManager::FromWebContents(web_contents())->SetView( |
- &bubble_view_); |
} |
void GeolocationPermissionContextTests::TearDown() { |
@@ -282,122 +262,13 @@ |
ChromeRenderViewHostTestHarness::TearDown(); |
} |
-size_t GeolocationPermissionContextTests::GetBubblesQueueSize( |
- PermissionBubbleManager* manager) { |
- return manager->requests_.size(); |
-} |
- |
-void GeolocationPermissionContextTests::AcceptBubble( |
- PermissionBubbleManager* manager) { |
- manager->Accept(); |
-} |
- |
-void GeolocationPermissionContextTests::DenyBubble( |
- PermissionBubbleManager* manager) { |
- manager->Deny(); |
-} |
- |
-void GeolocationPermissionContextTests::CloseBubble( |
- PermissionBubbleManager* manager) { |
- manager->Closing(); |
-} |
- |
-void GeolocationPermissionContextTests::BubbleManagerDocumentLoadCompleted() { |
- GeolocationPermissionContextTests::BubbleManagerDocumentLoadCompleted( |
- web_contents()); |
-} |
- |
-void GeolocationPermissionContextTests::BubbleManagerDocumentLoadCompleted( |
- content::WebContents* web_contents) { |
- PermissionBubbleManager::FromWebContents(web_contents)-> |
- DocumentOnLoadCompletedInMainFrame(); |
-} |
- |
-ContentSetting GeolocationPermissionContextTests::GetGeolocationContentSetting( |
- GURL frame_0, GURL frame_1) { |
- return profile()->GetHostContentSettingsMap()->GetContentSetting( |
- frame_0, frame_1, CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string()); |
-} |
- |
-// Needed to parameterize the tests for both infobars & permission bubbles. |
-class GeolocationPermissionContextParamTests : |
- public GeolocationPermissionContextTests, |
- public ::testing::WithParamInterface<bool> { |
- protected: |
- GeolocationPermissionContextParamTests() {} |
- ~GeolocationPermissionContextParamTests() override {} |
- |
- bool BubbleEnabled() const { |
-#if defined (OS_ANDROID) |
- return false; |
-#else |
- return GetParam(); |
-#endif |
- } |
- |
- void SetUp() override { |
- GeolocationPermissionContextTests::SetUp(); |
-#if !defined(OS_ANDROID) |
- if (BubbleEnabled()) { |
- base::CommandLine::ForCurrentProcess()->AppendSwitch( |
- switches::kEnablePermissionsBubbles); |
- EXPECT_TRUE(PermissionBubbleManager::Enabled()); |
- } else { |
- base::CommandLine::ForCurrentProcess()->AppendSwitch( |
- switches::kDisablePermissionsBubbles); |
- EXPECT_FALSE(PermissionBubbleManager::Enabled()); |
- } |
-#endif |
- } |
- |
- size_t GetNumberOfPrompts() { |
- if (BubbleEnabled()) { |
- PermissionBubbleManager* manager = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- return GetBubblesQueueSize(manager); |
- } else { |
- return infobar_service()->infobar_count(); |
- } |
- } |
- |
- void AcceptPrompt() { |
- if (BubbleEnabled()) { |
- PermissionBubbleManager* manager = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- AcceptBubble(manager); |
- } else { |
- infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
- ConfirmInfoBarDelegate* infobar_delegate = |
- infobar->delegate()->AsConfirmInfoBarDelegate(); |
- infobar_delegate->Accept(); |
- } |
- } |
- |
- base::string16 GetPromptText() { |
- if (BubbleEnabled()) { |
- PermissionBubbleManager* manager = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- return manager->requests_.front()->GetMessageText(); |
- } |
- infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
- ConfirmInfoBarDelegate* infobar_delegate = |
- infobar->delegate()->AsConfirmInfoBarDelegate(); |
- return infobar_delegate->GetMessageText(); |
- } |
- private: |
- DISALLOW_COPY_AND_ASSIGN(GeolocationPermissionContextParamTests); |
-}; |
- |
// Tests ---------------------------------------------------------------------- |
-TEST_P(GeolocationPermissionContextParamTests, SinglePermissionInfobar) { |
- if (BubbleEnabled()) return; |
- |
+TEST_F(GeolocationPermissionContextTests, SinglePermission) { |
GURL requesting_frame("http://www.example.com/geolocation"); |
NavigateAndCommit(requesting_frame); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
ASSERT_EQ(1U, infobar_service()->infobar_count()); |
infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
ConfirmInfoBarDelegate* infobar_delegate = |
@@ -409,28 +280,13 @@ |
EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar)); |
} |
-TEST_P(GeolocationPermissionContextParamTests, SinglePermissionBubble) { |
- if (!BubbleEnabled()) return; |
- |
- GURL requesting_frame("http://www.example.com/geolocation"); |
- NavigateAndCommit(requesting_frame); |
- BubbleManagerDocumentLoadCompleted(); |
- |
- EXPECT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
-} |
- |
#if defined(OS_ANDROID) |
-// Infobar-only tests; Android doesn't support permission bubbles. |
TEST_F(GeolocationPermissionContextTests, GeolocationEnabledDisabled) { |
GURL requesting_frame("http://www.example.com/geolocation"); |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
EXPECT_EQ(1U, infobar_service()->infobar_count()); |
ConfirmInfoBarDelegate* infobar_delegate_0 = |
infobar_service()->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); |
@@ -441,8 +297,7 @@ |
Reload(); |
MockLocationSettings::SetLocationStatus(true, false); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
} |
@@ -451,8 +306,7 @@ |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, true); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
EXPECT_EQ(1U, infobar_service()->infobar_count()); |
ConfirmInfoBarDelegate* infobar_delegate = |
infobar_service()->infobar_at(0)->delegate()->AsConfirmInfoBarDelegate(); |
@@ -467,383 +321,339 @@ |
NavigateAndCommit(requesting_frame); |
MockLocationSettings::SetLocationStatus(true, false); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
EXPECT_EQ(0U, infobar_service()->infobar_count()); |
} |
#endif |
-TEST_P(GeolocationPermissionContextParamTests, QueuedPermission) { |
+TEST_F(GeolocationPermissionContextTests, QueuedPermission) { |
GURL requesting_frame_0("http://www.example.com/geolocation"); |
GURL requesting_frame_1("http://www.example-2.com/geolocation"); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_0, requesting_frame_1)); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_1, requesting_frame_1)); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_0, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_1, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
NavigateAndCommit(requesting_frame_0); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- // Check that no permission requests have happened yet. |
- EXPECT_EQ(0U, GetNumberOfPrompts()); |
- |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0, true); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1, true); |
+ web_contents(), RequestID(0), requesting_frame_0); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(1), requesting_frame_1); |
// Ensure only one infobar is created. |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
- base::string16 text_0 = GetPromptText(); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar_0 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_0 = |
+ infobar_0->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_0); |
+ base::string16 text_0 = infobar_delegate_0->GetMessageText(); |
// Accept the first frame. |
- AcceptPrompt(); |
+ infobar_delegate_0->Accept(); |
CheckTabContentsState(requesting_frame_0, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(0, true); |
- if (!BubbleEnabled()) { |
- infobars::InfoBar* infobar_0 = infobar_service()->infobar_at(0); |
- infobar_service()->RemoveInfoBar(infobar_0); |
- EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
- EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_0)); |
- closed_infobar_tracker_.Clear(); |
- } |
- |
+ infobar_service()->RemoveInfoBar(infobar_0); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_0)); |
+ closed_infobar_tracker_.Clear(); |
// Now we should have a new infobar for the second frame. |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
- base::string16 text_1 = GetPromptText(); |
- |
- // Check that the messages differ. |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ |
+ infobars::InfoBar* infobar_1 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_1 = |
+ infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_1); |
+ base::string16 text_1 = infobar_delegate_1->GetMessageText(); |
EXPECT_NE(text_0, text_1); |
// Cancel (block) this frame. |
- if (BubbleEnabled()) { |
- PermissionBubbleManager* manager = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- DenyBubble(manager); |
- } else { |
- infobars::InfoBar* infobar_1 = infobar_service()->infobar_at(0); |
- infobar_1->delegate()->AsConfirmInfoBarDelegate()->Cancel(); |
- } |
+ infobar_delegate_1->Cancel(); |
CheckTabContentsState(requesting_frame_1, CONTENT_SETTING_BLOCK); |
CheckPermissionMessageSent(1, false); |
- |
+ infobar_service()->RemoveInfoBar(infobar_1); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_1)); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Ensure the persisted permissions are ok. |
- EXPECT_EQ( |
- CONTENT_SETTING_ALLOW, |
- GetGeolocationContentSetting(requesting_frame_0, requesting_frame_0)); |
- EXPECT_EQ( |
- CONTENT_SETTING_BLOCK, |
- GetGeolocationContentSetting(requesting_frame_1, requesting_frame_0)); |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, HashIsIgnored) { |
+ EXPECT_EQ(CONTENT_SETTING_ALLOW, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_0, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ |
+ EXPECT_EQ(CONTENT_SETTING_BLOCK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_1, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, HashIsIgnored) { |
GURL url_a("http://www.example.com/geolocation#a"); |
GURL url_b("http://www.example.com/geolocation#b"); |
- // Navigate to the first url. |
+ // Navigate to the first url and check permission is requested. |
NavigateAndCommit(url_a); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- // Check permission is requested. |
- ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), url_a, BubbleEnabled()); |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate = |
+ infobar->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate); |
// Change the hash, we'll still be on the same page. |
NavigateAndCommit(url_b); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
// Accept. |
- AcceptPrompt(); |
+ infobar_delegate->Accept(); |
CheckTabContentsState(url_a, CONTENT_SETTING_ALLOW); |
CheckTabContentsState(url_b, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(0, true); |
// Cleanup. |
- if (!BubbleEnabled()) { |
- infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
- infobar_service()->RemoveInfoBar(infobar); |
- EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
- EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar)); |
- } |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, PermissionForFileScheme) { |
- // TODO(felt): The bubble is rejecting file:// permission requests. |
- // Fix and enable this test. crbug.com/444047 |
- if (BubbleEnabled()) return; |
- |
+ infobar_service()->RemoveInfoBar(infobar); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar)); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, PermissionForFileScheme) { |
GURL requesting_frame("file://example/geolocation.html"); |
NavigateAndCommit(requesting_frame); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- // Check permission is requested. |
- ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
- EXPECT_EQ(1U, GetNumberOfPrompts()); |
- |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ EXPECT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate = |
+ infobar->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate); |
// Accept the frame. |
- AcceptPrompt(); |
+ infobar_delegate->Accept(); |
CheckTabContentsState(requesting_frame, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(0, true); |
+ infobar_service()->RemoveInfoBar(infobar); |
// Make sure the setting is not stored. |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame, requesting_frame)); |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, |
- CancelGeolocationPermissionRequest) { |
- GURL frame_0("http://www.example.com/geolocation"); |
- GURL frame_1("http://www.example-2.com/geolocation"); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, GetGeolocationContentSetting(frame_0, frame_0)); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, GetGeolocationContentSetting(frame_1, frame_0)); |
- |
- NavigateAndCommit(frame_0); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- ASSERT_EQ(0U, GetNumberOfPrompts()); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame, |
+ requesting_frame, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, |
+ std::string())); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, CancelGeolocationPermissionRequest) { |
+ GURL requesting_frame_0("http://www.example.com/geolocation"); |
+ GURL requesting_frame_1("http://www.example-2.com/geolocation"); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_0, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_1, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ |
+ NavigateAndCommit(requesting_frame_0); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), frame_0, true); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(1), frame_1, true); |
- |
- // Get the first permission request text. |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
- base::string16 text_0 = GetPromptText(); |
- ASSERT_FALSE(text_0.empty()); |
- |
- // Simulate the frame going away; the request should be removed. |
- if (BubbleEnabled()) { |
- PermissionBubbleManager* manager = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- CloseBubble(manager); |
- } else { |
- geolocation_permission_context_->CancelPermissionRequest(web_contents(), |
- RequestID(0)); |
- } |
- |
- // Check that the next pending request is created correctly. |
- base::string16 text_1 = GetPromptText(); |
+ web_contents(), RequestID(0), requesting_frame_0); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(1), requesting_frame_1); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ |
+ infobars::InfoBar* infobar_0 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_0 = |
+ infobar_0->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_0); |
+ base::string16 text_0 = infobar_delegate_0->GetMessageText(); |
+ |
+ // Simulate the frame going away, ensure the infobar for this frame |
+ // is removed and the next pending infobar is created. |
+ geolocation_permission_context_->CancelPermissionRequest(web_contents(), |
+ RequestID(0)); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_0)); |
+ closed_infobar_tracker_.Clear(); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ |
+ infobars::InfoBar* infobar_1 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_1 = |
+ infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_1); |
+ base::string16 text_1 = infobar_delegate_1->GetMessageText(); |
EXPECT_NE(text_0, text_1); |
- // Allow this frame and check that it worked. |
- AcceptPrompt(); |
- CheckTabContentsState(frame_1, CONTENT_SETTING_ALLOW); |
+ // Allow this frame. |
+ infobar_delegate_1->Accept(); |
+ CheckTabContentsState(requesting_frame_1, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(1, true); |
- |
+ infobar_service()->RemoveInfoBar(infobar_1); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_1)); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Ensure the persisted permissions are ok. |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, GetGeolocationContentSetting(frame_0, frame_0)); |
- EXPECT_EQ( |
- CONTENT_SETTING_ALLOW, GetGeolocationContentSetting(frame_1, frame_0)); |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, InvalidURL) { |
- // Navigate to the first url. |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_0, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ |
+ EXPECT_EQ(CONTENT_SETTING_ALLOW, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_1, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, InvalidURL) { |
GURL invalid_embedder("about:blank"); |
GURL requesting_frame; |
NavigateAndCommit(invalid_embedder); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- // Nothing should be displayed. |
- EXPECT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, true); |
- EXPECT_EQ(0U, GetNumberOfPrompts()); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
CheckPermissionMessageSent(0, false); |
} |
-TEST_P(GeolocationPermissionContextParamTests, SameOriginMultipleTabs) { |
+TEST_F(GeolocationPermissionContextTests, SameOriginMultipleTabs) { |
GURL url_a("http://www.example.com/geolocation"); |
GURL url_b("http://www.example-2.com/geolocation"); |
- NavigateAndCommit(url_a); // Tab A0 |
- AddNewTab(url_b); // Tab B (extra_tabs_[0]) |
- AddNewTab(url_a); // Tab A1 (extra_tabs_[1]) |
- if (BubbleEnabled()) { |
- BubbleManagerDocumentLoadCompleted(); |
- BubbleManagerDocumentLoadCompleted(extra_tabs_[0]); |
- BubbleManagerDocumentLoadCompleted(extra_tabs_[1]); |
- } |
- PermissionBubbleManager* manager_a0 = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- PermissionBubbleManager* manager_b = |
- PermissionBubbleManager::FromWebContents(extra_tabs_[0]); |
- PermissionBubbleManager* manager_a1 = |
- PermissionBubbleManager::FromWebContents(extra_tabs_[1]); |
- |
- // Request permission in all three tabs. |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), url_a, true); |
- RequestGeolocationPermission( |
- extra_tabs_[0], RequestIDForTab(0, 0), url_b, true); |
- RequestGeolocationPermission( |
- extra_tabs_[1], RequestIDForTab(1, 0), url_a, true); |
- ASSERT_EQ(1U, GetNumberOfPrompts()); // For A0. |
- if (BubbleEnabled()) { |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_b)); |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_a1)); |
- } else { |
- ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
- ASSERT_EQ(1U, infobar_service_for_tab(1)->infobar_count()); |
- } |
- |
- // Accept the permission in tab A0. |
- if (BubbleEnabled()) { |
- AcceptBubble(manager_a0); |
- } else { |
- infobars::InfoBar* infobar_a0 = infobar_service()->infobar_at(0); |
- ConfirmInfoBarDelegate* infobar_delegate_a0 = |
- infobar_a0->delegate()->AsConfirmInfoBarDelegate(); |
- ASSERT_TRUE(infobar_delegate_a0); |
- infobar_delegate_a0->Accept(); |
- infobar_service()->RemoveInfoBar(infobar_a0); |
- EXPECT_EQ(2U, closed_infobar_tracker_.size()); |
- EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_a0)); |
- } |
+ NavigateAndCommit(url_a); |
+ AddNewTab(url_b); |
+ AddNewTab(url_a); |
+ |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ |
+ RequestGeolocationPermission(extra_tabs_[0], RequestIDForTab(0, 0), url_b); |
+ EXPECT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
+ |
+ RequestGeolocationPermission(extra_tabs_[1], RequestIDForTab(1, 0), url_a); |
+ ASSERT_EQ(1U, infobar_service_for_tab(1)->infobar_count()); |
+ |
+ infobars::InfoBar* removed_infobar = |
+ infobar_service_for_tab(1)->infobar_at(0); |
+ |
+ // Accept the first tab. |
+ infobars::InfoBar* infobar_0 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_0 = |
+ infobar_0->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_0); |
+ infobar_delegate_0->Accept(); |
CheckPermissionMessageSent(0, true); |
- // Because they're the same origin, this will cause tab A1's infobar to |
- // disappear. It does not cause the bubble to disappear: crbug.com/443013. |
- // TODO(felt): Update this test when the bubble's behavior is changed. |
- if (BubbleEnabled()) |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_a1)); |
- else |
- CheckPermissionMessageSentForTab(1, 0, true); |
- |
- // Either way, tab B should still have a pending permission request. |
- if (BubbleEnabled()) |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_b)); |
- else |
- ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, QueuedOriginMultipleTabs) { |
+ infobar_service()->RemoveInfoBar(infobar_0); |
+ EXPECT_EQ(2U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_0)); |
+ // Now the infobar for the tab with the same origin should have gone. |
+ EXPECT_EQ(0U, infobar_service_for_tab(1)->infobar_count()); |
+ CheckPermissionMessageSentForTab(1, 0, true); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(removed_infobar)); |
+ closed_infobar_tracker_.Clear(); |
+ |
+ // But the other tab should still have the info bar... |
+ ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
+ infobars::InfoBar* infobar_1 = infobar_service_for_tab(0)->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_1 = |
+ infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_1); |
+ infobar_delegate_1->Cancel(); |
+ infobar_service_for_tab(0)->RemoveInfoBar(infobar_1); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_1)); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, QueuedOriginMultipleTabs) { |
GURL url_a("http://www.example.com/geolocation"); |
GURL url_b("http://www.example-2.com/geolocation"); |
- NavigateAndCommit(url_a); // Tab A0. |
- AddNewTab(url_a); // Tab A1. |
- if (BubbleEnabled()) { |
- BubbleManagerDocumentLoadCompleted(); |
- BubbleManagerDocumentLoadCompleted(extra_tabs_[0]); |
- } |
- PermissionBubbleManager* manager_a0 = |
- PermissionBubbleManager::FromWebContents(web_contents()); |
- PermissionBubbleManager* manager_a1 = |
- PermissionBubbleManager::FromWebContents(extra_tabs_[0]); |
- |
- // Request permission in both tabs; the extra tab will have two permission |
- // requests from two origins. |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), url_a, true); |
- RequestGeolocationPermission( |
- extra_tabs_[0], RequestIDForTab(0, 0), url_a, true); |
- RequestGeolocationPermission( |
- extra_tabs_[0], RequestIDForTab(0, 1), url_b, true); |
- if (BubbleEnabled()) { |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_a0)); |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_a1)); |
- } else { |
- ASSERT_EQ(1U, infobar_service()->infobar_count()); |
- ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
- } |
- |
- // Accept the first request in tab A1. |
- if (BubbleEnabled()) { |
- AcceptBubble(manager_a1); |
- } else { |
- infobars::InfoBar* infobar_a1 = infobar_service_for_tab(0)->infobar_at(0); |
- ConfirmInfoBarDelegate* infobar_delegate_a1 = |
- infobar_a1->delegate()->AsConfirmInfoBarDelegate(); |
- ASSERT_TRUE(infobar_delegate_a1); |
- infobar_delegate_a1->Accept(); |
- infobar_service_for_tab(0)->RemoveInfoBar(infobar_a1); |
- EXPECT_EQ(2U, closed_infobar_tracker_.size()); |
- EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_a1)); |
- } |
+ NavigateAndCommit(url_a); |
+ AddNewTab(url_a); |
+ |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), url_a); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ |
+ RequestGeolocationPermission(extra_tabs_[0], RequestIDForTab(0, 0), url_a); |
+ EXPECT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
+ |
+ RequestGeolocationPermission(extra_tabs_[0], RequestIDForTab(0, 1), url_b); |
+ ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
+ |
+ infobars::InfoBar* removed_infobar = infobar_service()->infobar_at(0); |
+ |
+ // Accept the second tab. |
+ infobars::InfoBar* infobar_0 = infobar_service_for_tab(0)->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_0 = |
+ infobar_0->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_0); |
+ infobar_delegate_0->Accept(); |
CheckPermissionMessageSentForTab(0, 0, true); |
- |
- // Because they're the same origin, this will cause tab A0's infobar to |
- // disappear. It does not cause the bubble to disappear: crbug.com/443013. |
- // TODO(felt): Update this test when the bubble's behavior is changed. |
- if (BubbleEnabled()) { |
- EXPECT_EQ(1U, GetBubblesQueueSize(manager_a0)); |
- } else { |
- EXPECT_EQ(0U, infobar_service()->infobar_count()); |
- CheckPermissionMessageSent(0, true); |
- } |
- |
- // The second request should now be visible in tab A1. |
- if (BubbleEnabled()) |
- ASSERT_EQ(1U, GetBubblesQueueSize(manager_a1)); |
- else |
- ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
- |
- // Accept the second request and check that it's gone. |
- if (BubbleEnabled()) { |
- AcceptBubble(manager_a1); |
- EXPECT_EQ(0U, GetBubblesQueueSize(manager_a1)); |
- } else { |
- infobars::InfoBar* infobar_1 = infobar_service_for_tab(0)->infobar_at(0); |
- ConfirmInfoBarDelegate* infobar_delegate_1 = |
- infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
- ASSERT_TRUE(infobar_delegate_1); |
- infobar_delegate_1->Accept(); |
- } |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, TabDestroyed) { |
+ infobar_service_for_tab(0)->RemoveInfoBar(infobar_0); |
+ EXPECT_EQ(2U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_0)); |
+ // Now the infobar for the tab with the same origin should have gone. |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ CheckPermissionMessageSent(0, true); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(removed_infobar)); |
+ closed_infobar_tracker_.Clear(); |
+ |
+ // And we should have the queued infobar displayed now. |
+ ASSERT_EQ(1U, infobar_service_for_tab(0)->infobar_count()); |
+ |
+ // Accept the second infobar. |
+ infobars::InfoBar* infobar_1 = infobar_service_for_tab(0)->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_1 = |
+ infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate_1); |
+ infobar_delegate_1->Accept(); |
+ CheckPermissionMessageSentForTab(0, 1, true); |
+ infobar_service_for_tab(0)->RemoveInfoBar(infobar_1); |
+ EXPECT_EQ(1U, closed_infobar_tracker_.size()); |
+ EXPECT_TRUE(closed_infobar_tracker_.Contains(infobar_1)); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, TabDestroyed) { |
GURL requesting_frame_0("http://www.example.com/geolocation"); |
GURL requesting_frame_1("http://www.example-2.com/geolocation"); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_0, requesting_frame_0)); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_1, requesting_frame_0)); |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_0, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
+ |
+ EXPECT_EQ(CONTENT_SETTING_ASK, |
+ profile()->GetHostContentSettingsMap()->GetContentSetting( |
+ requesting_frame_1, requesting_frame_0, |
+ CONTENT_SETTINGS_TYPE_GEOLOCATION, std::string())); |
NavigateAndCommit(requesting_frame_0); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0, false); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1, false); |
- |
- // Ensure only one prompt is created. |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
+ web_contents(), RequestID(0), requesting_frame_0); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(1), requesting_frame_1); |
+ // Ensure only one infobar is created. |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
// Delete the tab contents. |
- if (!BubbleEnabled()) { |
- infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
- DeleteContents(); |
- ASSERT_EQ(1U, closed_infobar_tracker_.size()); |
- ASSERT_TRUE(closed_infobar_tracker_.Contains(infobar)); |
- } |
- |
- // The content settings should not have changed. |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_0, requesting_frame_0)); |
- EXPECT_EQ( |
- CONTENT_SETTING_ASK, |
- GetGeolocationContentSetting(requesting_frame_1, requesting_frame_0)); |
-} |
- |
-TEST_P(GeolocationPermissionContextParamTests, LastUsageAudited) { |
+ DeleteContents(); |
+ |
+ // During contents destruction, the infobar will have been closed, and the |
+ // pending request should have been cleared without an infobar being created. |
+ ASSERT_EQ(1U, closed_infobar_tracker_.size()); |
+ ASSERT_TRUE(closed_infobar_tracker_.Contains(infobar)); |
+} |
+ |
+TEST_F(GeolocationPermissionContextTests, LastUsageAudited) { |
GURL requesting_frame("http://www.example.com/geolocation"); |
NavigateAndCommit(requesting_frame); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
base::SimpleTestClock* test_clock = new base::SimpleTestClock; |
test_clock->SetNow(base::Time::UnixEpoch() + |
@@ -857,12 +667,15 @@ |
requesting_frame.GetOrigin(), |
CONTENT_SETTINGS_TYPE_GEOLOCATION).ToDoubleT(), |
0); |
- ASSERT_EQ(0U, GetNumberOfPrompts()); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, false); |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
- |
- AcceptPrompt(); |
+ |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate = |
+ infobar->delegate()->AsConfirmInfoBarDelegate(); |
+ ASSERT_TRUE(infobar_delegate); |
+ infobar_delegate->Accept(); |
CheckTabContentsState(requesting_frame, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(0, true); |
@@ -873,8 +686,7 @@ |
10); |
test_clock->Advance(base::TimeDelta::FromSeconds(3)); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame, false); |
+ RequestGeolocationPermission(web_contents(), RequestID(0), requesting_frame); |
// Permission has been used three seconds later. |
EXPECT_EQ(map->GetLastUsage(requesting_frame.GetOrigin(), |
@@ -883,7 +695,7 @@ |
13); |
} |
-TEST_P(GeolocationPermissionContextParamTests, LastUsageAuditedMultipleFrames) { |
+TEST_F(GeolocationPermissionContextTests, LastUsageAuditedMultipleFrames) { |
base::SimpleTestClock* test_clock = new base::SimpleTestClock; |
test_clock->SetNow(base::Time::UnixEpoch() + |
base::TimeDelta::FromSeconds(10)); |
@@ -905,27 +717,27 @@ |
0); |
NavigateAndCommit(requesting_frame_0); |
- if (BubbleEnabled()) BubbleManagerDocumentLoadCompleted(); |
- |
- EXPECT_EQ(0U, GetNumberOfPrompts()); |
+ EXPECT_EQ(0U, infobar_service()->infobar_count()); |
// Request permission for two frames. |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0, false); |
- RequestGeolocationPermission( |
- web_contents(), RequestID(1), requesting_frame_1, false); |
+ web_contents(), RequestID(0), requesting_frame_0); |
+ RequestGeolocationPermission( |
+ web_contents(), RequestID(1), requesting_frame_1); |
// Ensure only one infobar is created. |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar_0 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_0 = |
+ infobar_0->delegate()->AsConfirmInfoBarDelegate(); |
// Accept the first frame. |
- AcceptPrompt(); |
- if (!BubbleEnabled()) |
- infobar_service()->RemoveInfoBar(infobar_service()->infobar_at(0)); |
+ infobar_delegate_0->Accept(); |
CheckTabContentsState(requesting_frame_0, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(0, true); |
- |
- // Verify that accepting the first didn't accept because it's embedded |
+ infobar_service()->RemoveInfoBar(infobar_0); |
+ |
+ // Verify that accepting the first didn't accept because it's embedder |
// in the other. |
EXPECT_EQ(map->GetLastUsage(requesting_frame_0.GetOrigin(), |
requesting_frame_0.GetOrigin(), |
@@ -936,16 +748,18 @@ |
CONTENT_SETTINGS_TYPE_GEOLOCATION).ToDoubleT(), |
0); |
- ASSERT_EQ(1U, GetNumberOfPrompts()); |
+ ASSERT_EQ(1U, infobar_service()->infobar_count()); |
+ infobars::InfoBar* infobar_1 = infobar_service()->infobar_at(0); |
+ ConfirmInfoBarDelegate* infobar_delegate_1 = |
+ infobar_1->delegate()->AsConfirmInfoBarDelegate(); |
test_clock->Advance(base::TimeDelta::FromSeconds(1)); |
// Allow the second frame. |
- AcceptPrompt(); |
+ infobar_delegate_1->Accept(); |
CheckTabContentsState(requesting_frame_1, CONTENT_SETTING_ALLOW); |
CheckPermissionMessageSent(1, true); |
- if (!BubbleEnabled()) |
- infobar_service()->RemoveInfoBar(infobar_service()->infobar_at(0)); |
+ infobar_service()->RemoveInfoBar(infobar_1); |
// Verify that the times are different. |
EXPECT_EQ(map->GetLastUsage(requesting_frame_0.GetOrigin(), |
@@ -959,7 +773,7 @@ |
test_clock->Advance(base::TimeDelta::FromSeconds(2)); |
RequestGeolocationPermission( |
- web_contents(), RequestID(0), requesting_frame_0, false); |
+ web_contents(), RequestID(0), requesting_frame_0); |
// Verify that requesting permission in one frame doesn't update other where |
// it is the embedder. |
@@ -972,7 +786,3 @@ |
CONTENT_SETTINGS_TYPE_GEOLOCATION).ToDoubleT(), |
11); |
} |
- |
-INSTANTIATE_TEST_CASE_P(GeolocationPermissionContextTestsWithAndWithoutBubbles, |
- GeolocationPermissionContextParamTests, |
- ::testing::Values(false, true)); |