summaryrefslogtreecommitdiffstats
path: root/chrome/browser/chrome_content_browser_client_unittest.cc
diff options
context:
space:
mode:
authortimvolodine <timvolodine@chromium.org>2015-01-23 06:04:43 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-23 14:06:45 +0000
commita47291a939710c4868add42d070cfd675e21c2de (patch)
treee620ed29faec56ee1a576fbc0f069e59c59fdeda /chrome/browser/chrome_content_browser_client_unittest.cc
parent0c12c99acadcc700f3759680d5aa497a7de1454a (diff)
downloadchromium_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.cc63
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