Commit dc38b14b authored by Ken Rockot's avatar Ken Rockot Committed by Chromium LUCI CQ

Move webmidi tests to wpt_internal

Minimal changes are made here to adapt the webmidi tests to WPT and move
them into wpt_internal.

Bug: 1004256
Change-Id: I78fe61ca5885c9896f63472d2b564eae6ec68951
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2638773
Commit-Queue: Ken Rockot <rockot@google.com>
Reviewed-by: default avatarTakashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/master@{#845277}
parent d7048e08
...@@ -986,5 +986,5 @@ webaudio/WaveShaper/waveshaper-364379.html ...@@ -986,5 +986,5 @@ webaudio/WaveShaper/waveshaper-364379.html
webexposed/internal-properties-should-not-be-exposed.html webexposed/internal-properties-should-not-be-exposed.html
webexposed/permissions-attribute.html webexposed/permissions-attribute.html
webexposed/web-animations-api.html webexposed/web-animations-api.html
webmidi/permission.html
wpt_internal/geolocation-api/enabled.html wpt_internal/geolocation-api/enabled.html
wpt_internal/webmidi/permission.html
...@@ -4481,7 +4481,6 @@ crbug.com/778467 [ Fuchsia ] mhtml/mhtml_in_iframe.html [ Failure ] ...@@ -4481,7 +4481,6 @@ crbug.com/778467 [ Fuchsia ] mhtml/mhtml_in_iframe.html [ Failure ]
# These tests load resources from file:///gen/... . # These tests load resources from file:///gen/... .
crbug.com/919639 [ Fuchsia ] fast/speech/scripted/speechrecognition-re-restart.html [ Failure ] crbug.com/919639 [ Fuchsia ] fast/speech/scripted/speechrecognition-re-restart.html [ Failure ]
crbug.com/919639 [ Fuchsia ] presentation/presentationconnectionavailableevent-ctor-mock.html [ Failure ] crbug.com/919639 [ Fuchsia ] presentation/presentationconnectionavailableevent-ctor-mock.html [ Failure ]
crbug.com/919639 [ Fuchsia ] webmidi/permission.html [ Failure ]
# These tests timeout when using Scenic ozone platform. # These tests timeout when using Scenic ozone platform.
crbug.com/1067477 [ Fuchsia ] fast/media/matchmedium-query-api.html [ Skip ] crbug.com/1067477 [ Fuchsia ] fast/media/matchmedium-query-api.html [ Skip ]
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<script src=../resources/feature-policy-permissions-test.js></script> <script src=../resources/feature-policy-permissions-test.js></script>
<script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="/gen/media/midi/midi_service.mojom.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="mock-midiservice.js"></script> <script src="/wpt_internal/webmidi/resources/mock-midiservice.js"></script>
<script> <script>
'use strict'; 'use strict';
......
<!DOCTYPE html> <!DOCTYPE html>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
<script> <script>
async_test(t => { async_test(t => {
let noteOn = [ 0x90, 0x45, 0x7f ]; let noteOn = [ 0x90, 0x45, 0x7f ];
t.step(() => { t.step(() => {
Promise.all([ setMidiPermission({}, 'granted').then(() => {
PermissionsHelper.setPermission('midi', 'granted'),
]).then(() => {
return navigator.requestMIDIAccess(); return navigator.requestMIDIAccess();
}).then(a => { }).then(a => {
var started = false; var started = false;
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="state-check-utils.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/permissions-helper.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/state-check-utils.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -47,7 +47,7 @@ async function checkAccess(access) { ...@@ -47,7 +47,7 @@ async function checkAccess(access) {
promise_test(async _ => { promise_test(async _ => {
// Set default permission behavior that grants non-sysex requests. // Set default permission behavior that grants non-sysex requests.
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess(); const access = await navigator.requestMIDIAccess();
await checkAccess(access); await checkAccess(access);
}, 'MIDIPort implicit open'); }, 'MIDIPort implicit open');
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -71,8 +71,7 @@ function test(useAddEventListener) { ...@@ -71,8 +71,7 @@ function test(useAddEventListener) {
} }
promise_test(async _ => { promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({sysex: true}, 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
await test(false); await test(false);
await test(true); await test(true);
}, 'midimessage event handling works as expected'); }, 'midimessage event handling works as expected');
......
<!doctype html> <!doctype html>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
<p>Regression test to check if non-zero timestamp works well.</p> <p>Regression test to check if non-zero timestamp works well.</p>
<script> <script>
promise_test(async () => { promise_test(async () => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({sysex: true}, 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
let access = await navigator.requestMIDIAccess({sysex: true}); let access = await navigator.requestMIDIAccess({sysex: true});
let input = access.inputs.values().next().value; let input = access.inputs.values().next().value;
let output = access.outputs.values().next().value; let output = access.outputs.values().next().value;
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="state-check-utils.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/permissions-helper.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/state-check-utils.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -43,7 +43,7 @@ async function runTests(port) { ...@@ -43,7 +43,7 @@ async function runTests(port) {
promise_test(async _ => { promise_test(async _ => {
// Set default permission behavior that grants non-sysex requests. // Set default permission behavior that grants non-sysex requests.
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess(); const access = await navigator.requestMIDIAccess();
return runTests(access.inputs.values().next().value); return runTests(access.inputs.values().next().value);
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
promise_test(async _ => { promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({sysex: true}, 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
const access = await navigator.requestMIDIAccess({sysex: true}); const access = await navigator.requestMIDIAccess({sysex: true});
assert_true(access.sysexEnabled); assert_true(access.sysexEnabled);
}, 'sysex permission grants are properly handled'); }, 'sysex permission grants are properly handled');
promise_test(async t => { promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'denied'); await setMidiPermission({sysex: true}, 'denied');
return promise_rejects_dom(t, 'SecurityError', return promise_rejects_dom(t, 'SecurityError',
navigator.requestMIDIAccess({sysex: true})); navigator.requestMIDIAccess({sysex: true}));
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
</head> </head>
<body> <body>
<script> <script>
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
promise_test(async t => { promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
mockMIDIService.setStartSessionResult(midi.mojom.Result.INITIALIZATION_ERROR); mockMIDIService.setStartSessionResult(midi.mojom.Result.INITIALIZATION_ERROR);
return promise_rejects_dom(t, 'InvalidStateError', return promise_rejects_dom(t, 'InvalidStateError',
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/mock-midiservice.js"></script>
</head> </head>
<body> <body>
<script> <script>
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -25,8 +25,8 @@ const permissions = [ ...@@ -25,8 +25,8 @@ const permissions = [
promise_test(async _ => { promise_test(async _ => {
for (const permission of permissions) { for (const permission of permissions) {
for (const option of options) { for (const option of options) {
await PermissionsHelper.setPermission('midi', permission.midi); await setMidiPermission({}, permission.midi);
await PermissionsHelper.setPermission('midi-sysex', permission.sysex); await setMidiPermission({sysex: true}, permission.sysex);
try { try {
const access = await navigator.requestMIDIAccess(option); const access = await navigator.requestMIDIAccess(option);
......
<!DOCTYPE html> <!DOCTYPE html>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
<script> <script>
promise_test(async () => { promise_test(async () => {
// Obtain the first MIDIAccess instance without a sysex permission. // Obtain the first MIDIAccess instance without a sysex permission.
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
const nosysex_access = await navigator.requestMIDIAccess(); const nosysex_access = await navigator.requestMIDIAccess();
// See if a sysex message can not be sent over the first instance. // See if a sysex message can not be sent over the first instance.
...@@ -20,7 +20,7 @@ promise_test(async () => { ...@@ -20,7 +20,7 @@ promise_test(async () => {
}); });
// Obtain the second MIDIAccess instance with a sysex permission. // Obtain the second MIDIAccess instance with a sysex permission.
await PermissionsHelper.setPermission('midi-sysex', 'granted'); await setMidiPermission({sysex: true}, 'granted');
const sysex_access = await navigator.requestMIDIAccess({sysex: true}); const sysex_access = await navigator.requestMIDIAccess({sysex: true});
// See if a sysex message can be sent correctly over the second instance. // See if a sysex message can be sent correctly over the second instance.
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -95,7 +95,7 @@ function checkOutputMap(outputs) { ...@@ -95,7 +95,7 @@ function checkOutputMap(outputs) {
} }
promise_test(async t => { promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess(); const access = await navigator.requestMIDIAccess();
// Validate the values of the attributes on the access. // Validate the values of the attributes on the access.
......
function setMidiPermission(options, state) {
const sysex = options.sysex ?? false;
return internals.setPermission(
{name: 'midi', sysex: sysex}, state, location.origin, location.origin);
}
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
promise_test(async _ => { promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({sysex: true}, 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
const access = await navigator.requestMIDIAccess({sysex: true}); const access = await navigator.requestMIDIAccess({sysex: true});
const output = access.outputs.values().next().value; const output = access.outputs.values().next().value;
......
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<script src="../resources/testharness.js"></script> <script src="/resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script> <script src="/resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script> <script src="/gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script> <script src="/gen/media/midi/midi_service.mojom.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script> <script src="resources/mock-midiservice.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script> <script src="resources/permissions-helper.js"></script>
</head> </head>
<body> <body>
<script> <script>
...@@ -33,7 +33,7 @@ const reservedSystemMessages = [[0xf4], [0xf5]]; ...@@ -33,7 +33,7 @@ const reservedSystemMessages = [[0xf4], [0xf5]];
const systemExclusiveMessages = [[0xf0, 0xf7], [0xf0, 0x00, 0xf7]]; const systemExclusiveMessages = [[0xf0, 0xf7], [0xf0, 0x00, 0xf7]];
promise_test(async _ => { promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted'); await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess(); const access = await navigator.requestMIDIAccess();
const output = access.outputs.values().next().value; const output = access.outputs.values().next().value;
......
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