Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(151)

Side by Side Diff: third_party/WebKit/LayoutTests/usb/usbDevice-iframe.html

Issue 2791573002: Revert of Refactor WebUSB LayoutTests to separate out the Mojo service mocks (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/usb/usbDevice.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src="../resources/testharness.js"></script> 2 <script src="../resources/testharness.js"></script>
3 <script src="../resources/testharnessreport.js"></script> 3 <script src="../resources/testharnessreport.js"></script>
4 <script src="../resources/mojo-helpers.js"></script>
4 <script src="resources/fake-devices.js"></script> 5 <script src="resources/fake-devices.js"></script>
5 <script src="resources/usb-helpers.js"></script> 6 <script src="resources/usb-helpers.js"></script>
6 <script src="resources/webusb-test.js"></script>
7 <script> 7 <script>
8 'use strict'; 8 'use strict';
9 9
10 function runIframeDisconnectTest(onDeviceConnected) { 10 function runIframeDisconnectTest(usb, onDeviceConnected) {
11 return navigator.usb.test.initialize().then(() => { 11 return new Promise((resolve, reject) => {
12 return new Promise((resolve, reject) => { 12 let mockDeviceManager = new usb.MockDeviceManager;
13 let opened = false; 13 let opened = false;
14 let fakeDeviceGuid = null; 14 let iframe = document.createElement('iframe');
15 15
16 let iframe = document.createElement('iframe'); 16 window.onmessage = messageEvent => {
17 iframe.src = 'resources/open-in-iframe.html'; 17 if (messageEvent.data === 'Ready') {
18 iframe.onload = () => { 18 mockDeviceManager.addMockDevice(usb.fakeDevices[0]);
19 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => { 19 } else if (messageEvent.data === 'Success') {
20 iframe.contentWindow.postMessage('Ready', '*'); 20 opened = true;
21 }); 21 onDeviceConnected(iframe);
22 }; 22 } else {
23 reject(messageEvent.data);
24 }
25 };
23 26
24 window.onmessage = messageEvent => { 27 mockDeviceManager.setDeviceCloseHandler(info => {
25 if (messageEvent.data == 'Ready') { 28 assert_equals(info, usb.fakeDevices[0]);
26 fakeDeviceGuid = navigator.usb.test.addFakeDevice(fakeDeviceInit); 29 assert_true(opened);
27 } else if (messageEvent.data == 'Success') { 30 resolve();
28 opened = true; 31 });
29 onDeviceConnected(iframe);
30 } else {
31 reject(messageEvent.data);
32 }
33 };
34 32
35 navigator.usb.test.ondeviceclose = guid => { 33 iframe.src = 'resources/open-in-iframe.html';
36 assert_equals(guid, fakeDeviceGuid); 34 iframe.onload = () => {
37 assert_true(opened); 35 iframe.contentWindow.gin.define(
38 resolve(); 36 "Mojo Service Registry",
39 }; 37 [ 'content/public/renderer/frame_interfaces' ],
40 38 (frameInterfaces) => {
41 document.body.appendChild(iframe); 39 frameInterfaces.addInterfaceOverrideForTesting(
42 }); 40 usb.DeviceManager.name,
41 handle => { mockDeviceManager.bindingSet.addBinding(
42 mockDeviceManager, handle); });
43 iframe.contentWindow.postMessage('Ready', '*');
44 });
45 }
46 document.body.appendChild(iframe);
43 }); 47 });
44 } 48 }
45 49
46 promise_test(() => { 50 usb_test(usb => {
47 return runIframeDisconnectTest(iframe => { 51 return runIframeDisconnectTest(usb, iframe => {
48 document.body.removeChild(iframe); 52 document.body.removeChild(iframe);
49 }); 53 });
50 }, 'detaching iframe disconnects device.'); 54 }, 'detaching iframe disconnects device.');
51 55
52 promise_test(() => { 56 usb_test(usb => {
53 return runIframeDisconnectTest(iframe => { 57 return runIframeDisconnectTest(usb, iframe => {
54 iframe.src = 'about:blank'; 58 iframe.src = 'about:blank';
55 }); 59 });
56 }, 'navigating iframe disconnects device.'); 60 }, 'navigating iframe disconnects device.');
57 61
58 promise_test(() => { 62 usb_test(usb => {
59 return navigator.usb.test.initialize().then(() => { 63 return new Promise((resolve, reject) => {
60 return new Promise((resolve, reject) => { 64 let mockDeviceManager = new usb.MockDeviceManager;
61 let opened = false; 65 let iframe = document.createElement('iframe');
62 let fakeDeviceGuid = null;
63 66
64 let iframe = document.createElement('iframe'); 67 window.onmessage = messageEvent => {
65 iframe.src = 'resources/open-in-iframe.html'; 68 if (messageEvent.data === 'Ready') {
66 iframe.onload = () => { 69 document.body.removeChild(iframe);
67 navigator.usb.test.attachToWindow(iframe.contentWindow).then(() => { 70 runGarbageCollection().then(() => {
68 iframe.contentWindow.postMessage('Ready', '*'); 71 mockDeviceManager.addMockDevice(usb.fakeDevices[0]);
72 resolve();
69 }); 73 });
70 }; 74 } else {
75 reject(messageEvent.data);
76 }
77 };
71 78
72 window.onmessage = messageEvent => { 79 iframe.src = 'resources/open-in-iframe.html';
73 if (messageEvent.data == 'Ready') { 80 iframe.onload = () => {
74 document.body.removeChild(iframe); 81 iframe.contentWindow.gin.define(
75 runGarbageCollection().then(() => { 82 "Mojo Service Registry",
76 navigator.usb.test.addFakeDevice(fakeDeviceInit); 83 [ 'content/public/renderer/frame_interfaces' ],
77 resolve(); 84 (frameInterfaces) => {
78 }); 85 frameInterfaces.addInterfaceOverrideForTesting(
79 } else { 86 usb.DeviceManager.name,
80 reject(messageEvent.data); 87 handle => { mockDeviceManager.bindingSet.addBinding(
81 } 88 mockDeviceManager, handle); });
82 }; 89 iframe.contentWindow.postMessage('Ready', '*');
83 90 });
84 document.body.appendChild(iframe); 91 }
85 }); 92 document.body.appendChild(iframe);
86 }); 93 });
87 }, 'events are not delivered to detached frames'); 94 }, 'events are not delivered to detached frames');
88 </script> 95 </script>
OLDNEW
« no previous file with comments | « third_party/WebKit/LayoutTests/usb/usbDevice.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698