Chromium Code Reviews| Index: chrome/browser/permissions/permission_manager_unittest.cc |
| diff --git a/chrome/browser/permissions/permission_manager_unittest.cc b/chrome/browser/permissions/permission_manager_unittest.cc |
| index 3eac84bd33fecd9e4ac834b6d057606d0b67e286..a9af4d46394ad7981978f76cda01e867e85c73ad 100644 |
| --- a/chrome/browser/permissions/permission_manager_unittest.cc |
| +++ b/chrome/browser/permissions/permission_manager_unittest.cc |
| @@ -13,13 +13,21 @@ |
| #include "components/content_settings/core/browser/host_content_settings_map.h" |
| #include "content/public/browser/permission_type.h" |
| #include "content/public/test/test_browser_thread_bundle.h" |
| +#include "content/public/test/test_renderer_host.h" |
| +#include "device/vr/features/features.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#if BUILDFLAG(ENABLE_VR) |
| +#include "chrome/browser/android/vr_shell/vr_tab_helper.h" |
| +#endif // BUILDFLAG(ENABLE_VR) |
| + |
| using blink::mojom::PermissionStatus; |
| using content::PermissionType; |
| namespace { |
| +int kNoPendingOperation = -1; |
| + |
| class PermissionManagerTestingProfile final : public TestingProfile { |
| public: |
| PermissionManagerTestingProfile() {} |
| @@ -34,7 +42,7 @@ class PermissionManagerTestingProfile final : public TestingProfile { |
| } // anonymous namespace |
| -class PermissionManagerTest : public testing::Test { |
| +class PermissionManagerTest : public content::RenderViewHostTestHarness { |
| public: |
| void OnPermissionChange(PermissionStatus permission) { |
| callback_called_ = true; |
| @@ -96,6 +104,9 @@ class PermissionManagerTest : public testing::Test { |
| } |
| private: |
| + void SetUp() override { RenderViewHostTestHarness::SetUp(); } |
| + void TearDown() override { RenderViewHostTestHarness::TearDown(); } |
|
raymes
2017/05/31 00:56:00
nit: sorry I didn't notice this before, but these
asimjour1
2017/05/31 15:06:11
Done.
|
| + |
| const GURL url_; |
| const GURL other_url_; |
| bool callback_called_; |
| @@ -380,3 +391,40 @@ TEST_F(PermissionManagerTest, SubscribeMIDIPermission) { |
| GetPermissionManager()->UnsubscribePermissionStatusChange(subscription_id); |
| } |
| + |
| +TEST_F(PermissionManagerTest, SuppressPermissionRequests) { |
| + content::WebContents* contents = web_contents(); |
| + EXPECT_NE(kNoPendingOperation, |
| + GetPermissionManager()->RequestPermission( |
| + PermissionType::GEOLOCATION, web_contents()->GetMainFrame(), |
| + url(), true, |
| + base::Bind(&PermissionManagerTest::OnPermissionChange, |
| + base::Unretained(this)))); |
| + EXPECT_TRUE(callback_called()); |
| + EXPECT_EQ(PermissionStatus::GRANTED, callback_result()); |
| + |
| +#if BUILDFLAG(ENABLE_VR) |
| + vr_shell::VrTabHelper* vr_tab_helper = |
| + vr_shell::VrTabHelper::FromWebContents(contents); |
| + |
| + vr_tab_helper->SetIsInVr(true); |
| + EXPECT_EQ(kNoPendingOperation, |
| + GetPermissionManager()->RequestPermission( |
| + PermissionType::GEOLOCATION, web_contents()->GetMainFrame(), |
| + url(), true, |
| + base::Bind(&PermissionManagerTest::OnPermissionChange, |
| + base::Unretained(this)))); |
| + EXPECT_FALSE(callback_called()); |
| + EXPECT_NE(PermissionStatus::GRANTED, callback_result()); |
| + |
| + vr_tab_helper->SetIsInVr(false); |
| + EXPECT_NE(kNoPendingOperation, |
| + GetPermissionManager()->RequestPermission( |
| + PermissionType::GEOLOCATION, web_contents()->GetMainFrame(), |
| + url(), true, |
| + base::Bind(&PermissionManagerTest::OnPermissionChange, |
| + base::Unretained(this)))); |
| + EXPECT_TRUE(callback_called()); |
| + EXPECT_EQ(PermissionStatus::GRANTED, callback_result()); |
| +#endif // BUILDFLAG(ENABLE_VR) |
| +} |