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
webexposed/internal-properties-should-not-be-exposed.html
webexposed/permissions-attribute.html
webexposed/web-animations-api.html
webmidi/permission.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 ]
# These tests load resources from file:///gen/... .
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 ] webmidi/permission.html [ Failure ]
# These tests timeout when using Scenic ozone platform.
crbug.com/1067477 [ Fuchsia ] fast/media/matchmedium-query-api.html [ Skip ]
......
......@@ -5,7 +5,7 @@
<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/media/midi/midi_service.mojom.js"></script>
<script src="mock-midiservice.js"></script>
<script src="/wpt_internal/webmidi/resources/mock-midiservice.js"></script>
<script>
'use strict';
......
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
<script>
async_test(t => {
let noteOn = [ 0x90, 0x45, 0x7f ];
t.step(() => {
Promise.all([
PermissionsHelper.setPermission('midi', 'granted'),
]).then(() => {
setMidiPermission({}, 'granted').then(() => {
return navigator.requestMIDIAccess();
}).then(a => {
var started = false;
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="state-check-utils.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
<script src="resources/state-check-utils.js"></script>
</head>
<body>
<script>
......@@ -47,7 +47,7 @@ async function checkAccess(access) {
promise_test(async _ => {
// Set default permission behavior that grants non-sysex requests.
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess();
await checkAccess(access);
}, 'MIDIPort implicit open');
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
......@@ -71,8 +71,7 @@ function test(useAddEventListener) {
}
promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
await setMidiPermission({sysex: true}, 'granted');
await test(false);
await test(true);
}, 'midimessage event handling works as expected');
......
<!doctype html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
<p>Regression test to check if non-zero timestamp works well.</p>
<script>
promise_test(async () => {
await PermissionsHelper.setPermission('midi', 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
await setMidiPermission({sysex: true}, 'granted');
let access = await navigator.requestMIDIAccess({sysex: true});
let input = access.inputs.values().next().value;
let output = access.outputs.values().next().value;
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="state-check-utils.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
<script src="resources/state-check-utils.js"></script>
</head>
<body>
<script>
......@@ -43,7 +43,7 @@ async function runTests(port) {
promise_test(async _ => {
// Set default permission behavior that grants non-sysex requests.
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess();
return runTests(access.inputs.values().next().value);
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
await setMidiPermission({sysex: true}, 'granted');
const access = await navigator.requestMIDIAccess({sysex: true});
assert_true(access.sysexEnabled);
}, 'sysex permission grants are properly handled');
promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'denied');
await setMidiPermission({}, 'granted');
await setMidiPermission({sysex: true}, 'denied');
return promise_rejects_dom(t, 'SecurityError',
navigator.requestMIDIAccess({sysex: true}));
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
</head>
<body>
<script>
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
mockMIDIService.setStartSessionResult(midi.mojom.Result.INITIALIZATION_ERROR);
return promise_rejects_dom(t, 'InvalidStateError',
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
</head>
<body>
<script>
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
......@@ -25,8 +25,8 @@ const permissions = [
promise_test(async _ => {
for (const permission of permissions) {
for (const option of options) {
await PermissionsHelper.setPermission('midi', permission.midi);
await PermissionsHelper.setPermission('midi-sysex', permission.sysex);
await setMidiPermission({}, permission.midi);
await setMidiPermission({sysex: true}, permission.sysex);
try {
const access = await navigator.requestMIDIAccess(option);
......
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
<script>
promise_test(async () => {
// Obtain the first MIDIAccess instance without a sysex permission.
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
const nosysex_access = await navigator.requestMIDIAccess();
// See if a sysex message can not be sent over the first instance.
......@@ -20,7 +20,7 @@ promise_test(async () => {
});
// 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});
// See if a sysex message can be sent correctly over the second instance.
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
......@@ -95,7 +95,7 @@ function checkOutputMap(outputs) {
}
promise_test(async t => {
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess();
// 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>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted');
await PermissionsHelper.setPermission('midi-sysex', 'granted');
await setMidiPermission({sysex: true}, 'granted');
const access = await navigator.requestMIDIAccess({sysex: true});
const output = access.outputs.values().next().value;
......
<!DOCTYPE html>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="../http/tests/resources/permissions-helper.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/media/midi/midi_service.mojom.js"></script>
<script src="../http/tests/webmidi/mock-midiservice.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.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="resources/mock-midiservice.js"></script>
<script src="resources/permissions-helper.js"></script>
</head>
<body>
<script>
......@@ -33,7 +33,7 @@ const reservedSystemMessages = [[0xf4], [0xf5]];
const systemExclusiveMessages = [[0xf0, 0xf7], [0xf0, 0x00, 0xf7]];
promise_test(async _ => {
await PermissionsHelper.setPermission('midi', 'granted');
await setMidiPermission({}, 'granted');
const access = await navigator.requestMIDIAccess();
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