diff options
author | timvolodine <timvolodine@chromium.org> | 2015-01-23 06:04:43 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-23 14:06:45 +0000 |
commit | a47291a939710c4868add42d070cfd675e21c2de (patch) | |
tree | e620ed29faec56ee1a576fbc0f069e59c59fdeda /chrome/browser/chrome_content_browser_client_unittest.cc | |
parent | 0c12c99acadcc700f3759680d5aa497a7de1454a (diff) | |
download | chromium_src-a47291a939710c4868add42d070cfd675e21c2de.zip chromium_src-a47291a939710c4868add42d070cfd675e21c2de.tar.gz chromium_src-a47291a939710c4868add42d070cfd675e21c2de.tar.bz2 |
Add PERMISSION_PROTECTED_MEDIA support in GetPermissionStatus() and relevant tests.
Add PERMISSION_PROTECTED_MEDIA support in ChromeContentBrowserClient::GetPermissionStatus()
on android and chromeOS platforms. Also added some unit tests.
BUG=
Review URL: https://codereview.chromium.org/869633002
Cr-Commit-Position: refs/heads/master@{#312835}
Diffstat (limited to 'chrome/browser/chrome_content_browser_client_unittest.cc')
-rw-r--r-- | chrome/browser/chrome_content_browser_client_unittest.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/chrome/browser/chrome_content_browser_client_unittest.cc b/chrome/browser/chrome_content_browser_client_unittest.cc index 32ed674..9ea8f8c 100644 --- a/chrome/browser/chrome_content_browser_client_unittest.cc +++ b/chrome/browser/chrome_content_browser_client_unittest.cc @@ -11,6 +11,7 @@ #include "chrome/browser/ui/tabs/tab_strip_model.h" #include "chrome/test/base/browser_with_test_window_test.h" #include "chrome/test/base/ui_test_utils.h" +#include "components/content_settings/core/browser/host_content_settings_map.h" #include "components/search_engines/template_url_service.h" #include "components/variations/entropy_provider.h" #include "content/public/browser/navigation_controller.h" @@ -137,3 +138,65 @@ TEST_F(InstantNTPURLRewriteTest, UberURLHandler_InstantExtendedNewTabPage) { } // namespace content #endif // !defined(OS_IOS) && !defined(OS_ANDROID) + +namespace chrome { + +// For testing permissions related functionality. +class PermissionBrowserClientTest : public testing::Test { + public: + PermissionBrowserClientTest() : url_("https://www.google.com") {} + + void CheckPermissionStatus(content::PermissionType type, + content::PermissionStatus expected) { + EXPECT_EQ(expected, client_.GetPermissionStatus(type, &profile_, + url_.GetOrigin(), + url_.GetOrigin())); + } + + void SetPermission(ContentSettingsType type, ContentSetting value) { + profile_.GetHostContentSettingsMap()->SetContentSetting( + ContentSettingsPattern::FromURLNoWildcard(url_), + ContentSettingsPattern::FromURLNoWildcard(url_), + type, std::string(), value); + } + + private: + content::TestBrowserThreadBundle thread_bundle_; + ChromeContentBrowserClient client_; + TestingProfile profile_; + GURL url_; +}; + +TEST_F(PermissionBrowserClientTest, GetPermissionStatusDefault) { + using namespace content; + CheckPermissionStatus(PERMISSION_MIDI_SYSEX, PERMISSION_STATUS_ASK); + CheckPermissionStatus(PERMISSION_PUSH_MESSAGING, PERMISSION_STATUS_ASK); + CheckPermissionStatus(PERMISSION_NOTIFICATIONS, PERMISSION_STATUS_ASK); + CheckPermissionStatus(PERMISSION_GEOLOCATION, PERMISSION_STATUS_ASK); +#if defined(OS_ANDROID) + CheckPermissionStatus(PERMISSION_PROTECTED_MEDIA, PERMISSION_STATUS_ASK); +#endif +} + +TEST_F(PermissionBrowserClientTest, GetPermissionStatusAfterSet) { + using namespace content; + SetPermission(CONTENT_SETTINGS_TYPE_GEOLOCATION, CONTENT_SETTING_ALLOW); + CheckPermissionStatus(PERMISSION_GEOLOCATION, PERMISSION_STATUS_GRANTED); + + SetPermission(CONTENT_SETTINGS_TYPE_NOTIFICATIONS, CONTENT_SETTING_ALLOW); + CheckPermissionStatus(PERMISSION_NOTIFICATIONS, PERMISSION_STATUS_GRANTED); + + SetPermission(CONTENT_SETTINGS_TYPE_MIDI_SYSEX, CONTENT_SETTING_ALLOW); + CheckPermissionStatus(PERMISSION_MIDI_SYSEX, PERMISSION_STATUS_GRANTED); + + SetPermission(CONTENT_SETTINGS_TYPE_PUSH_MESSAGING, CONTENT_SETTING_ALLOW); + CheckPermissionStatus(PERMISSION_PUSH_MESSAGING, PERMISSION_STATUS_GRANTED); + +#if defined(OS_ANDROID) + SetPermission(CONTENT_SETTINGS_TYPE_PROTECTED_MEDIA_IDENTIFIER, + CONTENT_SETTING_ALLOW); + CheckPermissionStatus(PERMISSION_PROTECTED_MEDIA, PERMISSION_STATUS_GRANTED); +#endif +} + +} // namespace chrome |