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

Side by Side Diff: third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js

Issue 2590393002: Revert of Mojo JS bindings: switch most usage of "connection"/"router" module to "bindings". (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 'use strict'; 1 'use strict';
2 2
3 var test_text_data = 'Test text data.'; 3 var test_text_data = 'Test text data.';
4 var test_text_byte_array = new TextEncoder('utf-8').encode(test_text_data); 4 var test_text_byte_array = new TextEncoder('utf-8').encode(test_text_data);
5 var test_number_data = 42; 5 var test_number_data = 42;
6 var test_json_data = {level: 1, score: 100, label: 'Game'}; 6 var test_json_data = {level: 1, score: 100, label: 'Game'};
7 var test_url_data = 'https://w3c.github.io/web-nfc/'; 7 var test_url_data = 'https://w3c.github.io/web-nfc/';
8 var test_message_origin = 'https://127.0.0.1:8443'; 8 var test_message_origin = 'https://127.0.0.1:8443';
9 var test_buffer_data = new ArrayBuffer(test_text_byte_array.length); 9 var test_buffer_data = new ArrayBuffer(test_text_byte_array.length);
10 var test_buffer_view = new Uint8Array(test_buffer_data).set(test_text_byte_array ); 10 var test_buffer_view = new Uint8Array(test_buffer_data).set(test_text_byte_array );
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 return createRecord('opaque', 'application/octet-stream', buffer); 63 return createRecord('opaque', 'application/octet-stream', buffer);
64 } 64 }
65 65
66 function createUrlRecord(url) { 66 function createUrlRecord(url) {
67 return createRecord('url', 'text/plain', url); 67 return createRecord('url', 'text/plain', url);
68 } 68 }
69 69
70 function nfc_mocks(mojo) { 70 function nfc_mocks(mojo) {
71 return define('NFC mocks', [ 71 return define('NFC mocks', [
72 'mojo/public/js/bindings', 72 'mojo/public/js/bindings',
73 'mojo/public/js/connection',
73 'device/nfc/nfc.mojom', 74 'device/nfc/nfc.mojom',
74 ], (bindings, nfc) => { 75 ], (bindings, connection, nfc) => {
75 76
76 function toMojoNFCRecordType(type) { 77 function toMojoNFCRecordType(type) {
77 switch (type) { 78 switch (type) {
78 case 'text': 79 case 'text':
79 return nfc.NFCRecordType.TEXT; 80 return nfc.NFCRecordType.TEXT;
80 case 'url': 81 case 'url':
81 return nfc.NFCRecordType.URL; 82 return nfc.NFCRecordType.URL;
82 case 'json': 83 case 'json':
83 return nfc.NFCRecordType.JSON; 84 return nfc.NFCRecordType.JSON;
84 case 'opaque': 85 case 'opaque':
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
251 } 252 }
252 } 253 }
253 254
254 function createNFCError(type) { 255 function createNFCError(type) {
255 return { error: type ? 256 return { error: type ?
256 new nfc.NFCError({ error_type: type }) : null }; 257 new nfc.NFCError({ error_type: type }) : null };
257 } 258 }
258 259
259 class MockNFC { 260 class MockNFC {
260 constructor() { 261 constructor() {
261 this.bindingSet = new bindings.BindingSet(nfc.NFC);
262
263 this.hw_status_ = NFCHWStatus.ENABLED; 262 this.hw_status_ = NFCHWStatus.ENABLED;
264 this.pushed_message_ = null; 263 this.pushed_message_ = null;
265 this.push_options_ = null; 264 this.push_options_ = null;
266 this.pending_promise_func_ = null; 265 this.pending_promise_func_ = null;
267 this.push_timeout_id_ = null; 266 this.push_timeout_id_ = null;
268 this.push_completed_ = true; 267 this.push_completed_ = true;
269 this.client_ = null; 268 this.client_ = null;
270 this.watch_id_ = 0; 269 this.watch_id_ = 0;
271 this.watchers_ = []; 270 this.watchers_ = [];
272 } 271 }
273 272
274 // NFC delegate functions 273 // NFC.stubClass delegate functions
275 push(message, options) { 274 push(message, options) {
276 let error = this.isReady(); 275 let error = this.isReady();
277 if (error) 276 if (error)
278 return Promise.resolve(error); 277 return Promise.resolve(error);
279 278
280 this.pushed_message_ = message; 279 this.pushed_message_ = message;
281 this.push_options_ = options; 280 this.push_options_ = options;
282 281
283 return new Promise((resolve, reject) => { 282 return new Promise((resolve, reject) => {
284 this.pending_promise_func_ = resolve; 283 this.pending_promise_func_ = resolve;
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
332 331
333 cancelAllWatches() { 332 cancelAllWatches() {
334 if (this.watchers_.length === 0) { 333 if (this.watchers_.length === 0) {
335 return Promise.resolve(createNFCError(nfc.NFCErrorType.NOT_FOUND)); 334 return Promise.resolve(createNFCError(nfc.NFCErrorType.NOT_FOUND));
336 } 335 }
337 336
338 this.watchers_.splice(0, this.watchers_.length); 337 this.watchers_.splice(0, this.watchers_.length);
339 return Promise.resolve(createNFCError(null)); 338 return Promise.resolve(createNFCError(null));
340 } 339 }
341 340
341
342 // Mock utility functions
343 bindToPipe(pipe) {
344 this.stub_ = connection.bindHandleToStub(
345 pipe, nfc.NFC);
346 bindings.StubBindings(this.stub_).delegate = this;
347 }
348
342 isReady() { 349 isReady() {
343 if (this.hw_status_ === NFCHWStatus.DISABLED) 350 if (this.hw_status_ === NFCHWStatus.DISABLED)
344 return createNFCError(nfc.NFCErrorType.DEVICE_DISABLED); 351 return createNFCError(nfc.NFCErrorType.DEVICE_DISABLED);
345 if (this.hw_status_ === NFCHWStatus.NOT_SUPPORTED) 352 if (this.hw_status_ === NFCHWStatus.NOT_SUPPORTED)
346 return createNFCError(nfc.NFCErrorType.NOT_SUPPORTED); 353 return createNFCError(nfc.NFCErrorType.NOT_SUPPORTED);
347 return null; 354 return null;
348 } 355 }
349 356
350 setHWStatus(status) { 357 setHWStatus(status) {
351 this.hw_status_ = status; 358 this.hw_status_ = status;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
394 assert_true(this.client_ !== null); 401 assert_true(this.client_ !== null);
395 if (this.watchers_.length > 0) { 402 if (this.watchers_.length > 0) {
396 this.client_.onWatch([id], toMojoNFCMessage(message)); 403 this.client_.onWatch([id], toMojoNFCMessage(message));
397 } 404 }
398 } 405 }
399 } 406 }
400 407
401 let mockNFC = new MockNFC; 408 let mockNFC = new MockNFC;
402 mojo.frameInterfaces.addInterfaceOverrideForTesting( 409 mojo.frameInterfaces.addInterfaceOverrideForTesting(
403 nfc.NFC.name, 410 nfc.NFC.name,
404 handle => { 411 pipe => {
405 mockNFC.bindingSet.addBinding(mockNFC, handle); 412 mockNFC.bindToPipe(pipe);
406 }); 413 });
407 414
408 return Promise.resolve({ 415 return Promise.resolve({
409 mockNFC: mockNFC, 416 mockNFC: mockNFC,
410 assertNFCMessagesEqual: assertNFCMessagesEqual, 417 assertNFCMessagesEqual: assertNFCMessagesEqual,
411 assertNFCPushOptionsEqual: assertNFCPushOptionsEqual, 418 assertNFCPushOptionsEqual: assertNFCPushOptionsEqual,
412 assertWebNFCMessagesEqual: assertWebNFCMessagesEqual, 419 assertWebNFCMessagesEqual: assertWebNFCMessagesEqual,
413 assertNFCWatchOptionsEqual: assertNFCWatchOptionsEqual, 420 assertNFCWatchOptionsEqual: assertNFCWatchOptionsEqual,
414 }); 421 });
415 }); 422 });
416 } 423 }
417 424
418 function nfc_test(func, name, properties) { 425 function nfc_test(func, name, properties) {
419 mojo_test(mojo => nfc_mocks(mojo).then(nfc => { 426 mojo_test(mojo => nfc_mocks(mojo).then(nfc => {
420 let result = Promise.resolve(func(nfc)); 427 let result = Promise.resolve(func(nfc));
421 let cleanUp = () => nfc.mockNFC.reset(); 428 let cleanUp = () => nfc.mockNFC.reset();
422 result.then(cleanUp, cleanUp); 429 result.then(cleanUp, cleanUp);
423 return result; 430 return result;
424 }), name, properties); 431 }), name, properties);
425 } 432 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698