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

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

Issue 2052473002: Revert of [webnfc] Implement push() method in blink nfc module. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@onionsoup_webnfc
Patch Set: Created 4 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/WebKit/LayoutTests/nfc/push.html ('k') | third_party/WebKit/Source/modules/BUILD.gn » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
diff --git a/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js b/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
deleted file mode 100644
index f7ca9763920ae71a1a41f1e43afde51b204ebe4f..0000000000000000000000000000000000000000
--- a/third_party/WebKit/LayoutTests/nfc/resources/nfc-helpers.js
+++ /dev/null
@@ -1,286 +0,0 @@
-'use strict';
-
-var test_text_data = 'Test text data.';
-var test_text_byte_array = new TextEncoder('utf-8').encode(test_text_data);
-var test_number_data = 42;
-var test_json_data = {level: 1, score: 100, label: 'Game'};
-var test_url_data = 'https://w3c.github.io/web-nfc/';
-var test_message_origin = 'https://127.0.0.1:8443';
-var test_buffer_data = new ArrayBuffer(test_text_byte_array.length);
-var test_buffer_view = new Uint8Array(test_buffer_data).set(test_text_byte_array);
-
-var NFCHWStatus = {};
-NFCHWStatus.ENABLED = 1;
-NFCHWStatus.NOT_SUPPORTED = NFCHWStatus.ENABLED + 1;
-NFCHWStatus.DISABLED = NFCHWStatus.NOT_SUPPORTED + 1;
-
-function createMessage(records) {
- if (records !== undefined) {
- let message = {}
- message.data = records;
- return message;
- }
-}
-
-function createRecord(recordType, mediaType, data) {
- let record = {};
- if (recordType !== undefined)
- record.recordType = recordType;
- if (mediaType !== undefined)
- record.mediaType = mediaType;
- if (data !== undefined)
- record.data = data;
- return record;
-}
-
-function createNFCPushOptions(target, timeout, ignoreRead) {
- return { target, timeout, ignoreRead };
-}
-
-function createTextRecord(text) {
- return createRecord('text', 'text/plain', text);
-}
-
-function createJsonRecord(json) {
- return createRecord('json', 'application/json', json);
-}
-
-function createOpaqueRecord(buffer) {
- return createRecord('opaque', 'application/octet-stream', buffer);
-}
-
-function createUrlRecord(url) {
- return createRecord('url', 'text/plain', url);
-}
-
-function nfc_mocks(mojo) {
- return define('NFC mocks', [
- 'mojo/public/js/bindings',
- 'mojo/public/js/connection',
- 'device/nfc/nfc.mojom',
- ], (bindings, connection, nfc) => {
-
- function toMojoNFCRecordType(type) {
- switch (type) {
- case 'text':
- return nfc.NFCRecordType.TEXT;
- case 'url':
- return nfc.NFCRecordType.URL;
- case 'json':
- return nfc.NFCRecordType.JSON;
- case 'opaque':
- return nfc.NFCRecordType.OPAQUE_RECORD;
- }
-
- return nfc.NFCRecordType.EMPTY;
- }
-
- function toMojoNFCPushTarget(target) {
- switch (target) {
- case 'any':
- return nfc.NFCPushTarget.ANY;
- case 'peer':
- return nfc.NFCPushTarget.PEER;
- case 'tag':
- return nfc.NFCPushTarget.TAG;
- }
-
- return nfc.NFCPushTarget.ANY;
- }
-
- function toByteArray(data) {
- // Convert JS objects to byte array
- let byteArray;
- let tmpData = data;
-
- if (tmpData instanceof ArrayBuffer)
- byteArray = new Uint8Array(tmpData);
- else if (typeof tmpData === 'object' || typeof tmpData === 'number')
- tmpData = JSON.stringify(tmpData);
-
- if (typeof tmpData === 'string')
- byteArray = new TextEncoder('utf-8').encode(tmpData);
-
- return byteArray;
- }
-
- // Compares NFCMessage that was provided to the API
- // (e.g. navigator.nfc.push), and NFCMessage that was received by the
- // mock NFC service.
- function assertNFCMessagesEqual(providedMessage, receivedMessage) {
- // If simple data type is passed, e.g. String or ArrayBuffer, convert it
- // to NFCMessage before comparing.
- // https://w3c.github.io/web-nfc/#idl-def-nfcpushmessage
- let provided = providedMessage;
- if (providedMessage instanceof ArrayBuffer)
- provided = createMessage([createOpaqueRecord(providedMessage)]);
- else if (typeof providedMessage === 'string')
- provided = createMessage([createTextRecord(providedMessage)]);
-
- assert_equals(provided.data.length, receivedMessage.data.length,
- 'NFCMessages must have same number of NFCRecords');
-
- // Compare contents of each individual NFCRecord
- for (let i = 0; i < provided.data.length; ++i)
- compareNFCRecords(provided.data[i], receivedMessage.data[i]);
- }
-
- // Compares NFCRecords that were provided / received by the mock service.
- function compareNFCRecords(providedRecord, receivedRecord) {
- assert_equals(toMojoNFCRecordType(providedRecord.recordType),
- receivedRecord.recordType);
-
- // Compare media types without charset.
- // Charset should be compared when watch method is implemented, in order
- // to check that written and read strings are equal.
- assert_equals(providedRecord.mediaType,
- receivedRecord.mediaType.substring(0, providedRecord.mediaType.length));
-
- assert_false(toMojoNFCRecordType(providedRecord.recordType) ==
- nfc.NFCRecordType.EMPTY);
-
- assert_array_equals(toByteArray(providedRecord.data),
- new Uint8Array(receivedRecord.data));
- }
-
- // Compares NFCPushOptions structures that were provided to API and
- // received by the mock mojo service.
- function assertNFCPushOptionsEqual(provided, received) {
- if (provided.ignoreRead !== undefined)
- assert_equals(provided.ignoreRead, !!+received.ignoreRead);
- else
- assert_equals(!!+received.ignoreRead, true);
-
- if (provided.timeout !== undefined)
- assert_equals(provided.timeout, received.timeout);
- else
- assert_equals(received.timeout, Infinity);
-
- if (provided.target !== undefined)
- assert_equals(toMojoNFCPushTarget(provided.target), received.target);
- else
- assert_equals(received.target, nfc.NFCPushTarget.ANY);
- }
-
- function createNFCError(type) {
- return { error: type ?
- new nfc.NFCError({ error_type: type }) : null };
- }
-
- class MockNFC {
- constructor() {
- this.hw_status_ = NFCHWStatus.ENABLED;
- this.pushed_message_ = null;
- this.push_options_ = null;
- this.pending_promise_func_ = null;
- this.push_timeout_id_ = null;
- this.push_completed_ = true;
- }
-
- // NFC.stubClass delegate functions
- push(message, options) {
- let error = this.isReady();
- if (error)
- return Promise.resolve(error);
-
- this.pushed_message_ = message;
- this.push_options_ = options;
-
- return new Promise((resolve, reject) => {
- this.pending_promise_func_ = resolve;
- if (options.timeout && options.timeout !== Infinity &&
- !this.push_completed_) {
- this.push_timeout_id_ =
- window.setTimeout(() => {
- resolve(createNFCError(nfc.NFCErrorType.TIMER_EXPIRED));
- }, options.timeout);
- } else {
- resolve(createNFCError(null));
- }
- });
- }
-
- cancelPush(target) {
- if (this.push_options_ && ((target === nfc.NFCPushTarget.ANY) ||
- (this.push_options_.target === target))) {
- this.cancelPendingPushOperation();
- }
-
- return Promise.resolve(createNFCError(null));
- }
-
- // Mock utility functions
- bindToPipe(pipe) {
- this.stub_ = connection.bindHandleToStub(
- pipe, nfc.NFC);
- bindings.StubBindings(this.stub_).delegate = this;
- }
-
- isReady() {
- if (this.hw_status_ === NFCHWStatus.DISABLED)
- return createNFCError(nfc.NFCErrorType.DEVICE_DISABLED);
- if (this.hw_status_ === NFCHWStatus.NOT_SUPPORTED)
- return createNFCError(nfc.NFCErrorType.NOT_SUPPORTED);
- return null;
- }
-
- setHWStatus(status) {
- this.hw_status_ = status;
- }
-
- pushedMessage() {
- return this.pushed_message_;
- }
-
- pushOptions() {
- return this.push_options_;
- }
-
- setPendingPushCompleted(result) {
- this.push_completed_ = result;
- }
-
- reset() {
- this.hw_status_ = NFCHWStatus.ENABLED;
- this.push_completed_ = true;
- this.cancelPendingPushOperation();
- }
-
- cancelPendingPushOperation() {
- if (this.push_timeout_id_) {
- window.clearTimeout(this.push_timeout_id_);
- }
-
- if (this.pending_promise_func_) {
- this.pending_promise_func_(createNFCError(nfc.NFCErrorType.OPERATION_CANCELLED));
- }
-
- this.pushed_message_ = null;
- this.push_options_ = null;
- this.pending_promise_func_ = null;
- }
- }
-
- let mockNFC = new MockNFC;
- mojo.frameServiceRegistry.addServiceOverrideForTesting(
- nfc.NFC.name,
- pipe => {
- mockNFC.bindToPipe(pipe);
- });
-
- return Promise.resolve({
- mockNFC: mockNFC,
- assertNFCMessagesEqual: assertNFCMessagesEqual,
- assertNFCPushOptionsEqual: assertNFCPushOptionsEqual,
- });
- });
-}
-
-function nfc_test(func, name, properties) {
- mojo_test(mojo => nfc_mocks(mojo).then(nfc => {
- let result = Promise.resolve(func(nfc));
- let cleanUp = () => nfc.mockNFC.reset();
- result.then(cleanUp, cleanUp);
- return result;
- }), name, properties);
-}
« no previous file with comments | « third_party/WebKit/LayoutTests/nfc/push.html ('k') | third_party/WebKit/Source/modules/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698