Commit e8703c9e authored by Andy Paicu's avatar Andy Paicu Committed by Commit Bot

Implement section 1.2 of the manual permissions tests suite

https://testtracker.googleplex.com/testplans/details/33023?revision=10
The link above describes the currently existing manual tests related
to the permission prompts. As part of the review process, I've
implemented the tests from section 1.2 all of which could be automated
and are related to the "protected content" settings page.

Bug: 1063164
Change-Id: Icf47d0b48d3ff9135419ad9902bee965836e8180
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2225407
Commit-Queue: Andy Paicu <andypaicu@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Cr-Commit-Position: refs/heads/master@{#776880}
parent 3d8e146e
...@@ -1086,6 +1086,7 @@ android_library("chrome_test_java") { ...@@ -1086,6 +1086,7 @@ android_library("chrome_test_java") {
"//content/test/data/browsing_data/", "//content/test/data/browsing_data/",
"//content/test/data/android/authenticator.html", "//content/test/data/android/authenticator.html",
"//content/test/data/android/auto_downloads_permissions.html", "//content/test/data/android/auto_downloads_permissions.html",
"//content/test/data/android/eme_permissions.html",
"//content/test/data/android/geolocation.html", "//content/test/data/android/geolocation.html",
"//content/test/data/android/installedapp.html", "//content/test/data/android/installedapp.html",
"//content/test/data/android/media_permissions.html", "//content/test/data/android/media_permissions.html",
......
...@@ -10,6 +10,7 @@ import android.content.Context; ...@@ -10,6 +10,7 @@ import android.content.Context;
import android.content.Intent; import android.content.Intent;
import android.os.Build; import android.os.Build;
import android.support.test.InstrumentationRegistry; import android.support.test.InstrumentationRegistry;
import android.support.test.filters.MediumTest;
import android.support.test.filters.SmallTest; import android.support.test.filters.SmallTest;
import android.util.Pair; import android.util.Pair;
...@@ -97,6 +98,9 @@ public class SiteSettingsTest { ...@@ -97,6 +98,9 @@ public class SiteSettingsTest {
} }
private void initializeUpdateWaiter(final boolean expectGranted) { private void initializeUpdateWaiter(final boolean expectGranted) {
if (mPermissionUpdateWaiter != null) {
mPermissionRule.getActivity().getActivityTab().removeObserver(mPermissionUpdateWaiter);
}
Tab tab = mPermissionRule.getActivity().getActivityTab(); Tab tab = mPermissionRule.getActivity().getActivityTab();
mPermissionUpdateWaiter = new PermissionUpdateWaiter( mPermissionUpdateWaiter = new PermissionUpdateWaiter(
...@@ -1245,4 +1249,65 @@ public class SiteSettingsTest { ...@@ -1245,4 +1249,65 @@ public class SiteSettingsTest {
settingsActivity.finish(); settingsActivity.finish();
} }
@Test
@MediumTest
@Feature({"Preferences"})
public void testProtectedContentDefaultOption() throws Exception {
initializeUpdateWaiter(true /* expectGranted */);
mPermissionRule.runNoPromptTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
}
@Test
@MediumTest
@Feature({"Preferences"})
public void testProtectedContentAskAllow() throws Exception {
setGlobalTriStateToggleForCategory(
SiteSettingsCategory.Type.PROTECTED_MEDIA, ContentSettingValues.ASK);
initializeUpdateWaiter(true /* expectGranted */);
mPermissionRule.runAllowTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
}
@Test
@MediumTest
@Feature({"Preferences"})
public void testProtectedContentAskBlocked() throws Exception {
setGlobalTriStateToggleForCategory(
SiteSettingsCategory.Type.PROTECTED_MEDIA, ContentSettingValues.ASK);
initializeUpdateWaiter(false /* expectGranted */);
mPermissionRule.runDenyTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
}
@Test
@MediumTest
@Feature({"Preferences"})
public void testProtectedContentBlocked() throws Exception {
setGlobalTriStateToggleForCategory(
SiteSettingsCategory.Type.PROTECTED_MEDIA, ContentSettingValues.BLOCK);
initializeUpdateWaiter(false /* expectGranted */);
mPermissionRule.runNoPromptTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
}
@Test
@MediumTest
@Feature({"Preferences"})
public void testProtectedContentAllowThenBlock() throws Exception {
initializeUpdateWaiter(true /* expectGranted */);
mPermissionRule.runNoPromptTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
setGlobalTriStateToggleForCategory(
SiteSettingsCategory.Type.PROTECTED_MEDIA, ContentSettingValues.BLOCK);
initializeUpdateWaiter(false /* expectGranted */);
mPermissionRule.runNoPromptTest(mPermissionUpdateWaiter,
"/content/test/data/android/eme_permissions.html", "requestEME()", 0, true, true);
}
} }
<html>
<script>
var functionToRun = '';
function runFunctionOnClick() {
eval(functionToRun);
}
window.addEventListener('load', () => {
window.addEventListener('click', runFunctionOnClick);
});
function requestEME() {
var capabilities = [{ contentType: 'audio/webm; codecs="opus"' }];
navigator.requestMediaKeySystemAccess(
"com.widevine.alpha", [{
distinctiveIdentifier: "required",
persistentState: "required",
audioCapabilities: capabilities,
label: "'distinctiveIdentifier' and 'persistentState' required"
}]
).then(
_ => {
document.title = "Granted"; document.body.innerText = "Granted";
},
_ => {
document.title = "Denied"; document.body.innerText = "Denied";
}
);
}
</script>
<body>
This page tests for EME permissions with user gesture
</body>
</html>
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment