NDEFMessage_constructor.https.window.js (1579B)
1 // META: script=resources/nfc-helpers.js 2 3 'use strict'; 4 5 test(() => { 6 assert_equals(NDEFMessage.length, 1); 7 assert_throws_js(TypeError, () => new NDEFMessage()); 8 }, 'NDEFMessage constructor without init dict'); 9 10 test(() => { 11 assert_throws_js( 12 TypeError, () => new NDEFMessage(null), 13 'NDEFMessageInit#records is a required field.'); 14 }, 'NDEFMessage constructor with null init dict'); 15 16 test(() => { 17 assert_throws_js( 18 TypeError, () => new NDEFMessage({dummy_key: 'dummy_value'}), 19 'NDEFMessageInit#records is a required field.'); 20 }, 'NDEFMessage constructor without NDEFMessageInit#records field'); 21 22 test(() => { 23 assert_throws_js( 24 TypeError, () => new NDEFMessage({records: []}), 25 'NDEFMessageInit#records should not be empty.'); 26 }, 'NDEFMessage constructor with NDEFMessageInit#records being empty'); 27 28 test(() => { 29 const message = 30 new NDEFMessage(createMessage([createTextRecord(test_text_data)])); 31 assert_equals(message.records.length, 1, 'one text record'); 32 assert_equals(message.records[0].recordType, 'text', 'messageType'); 33 assert_equals(message.records[0].mediaType, null, 'mediaType'); 34 assert_equals(message.records[0].encoding, 'utf-8', 'encoding'); 35 assert_equals(message.records[0].lang, 'en', 'lang'); 36 assert_true( 37 message.records[0].data instanceof DataView, 'data returns a DataView'); 38 const decoder = new TextDecoder(); 39 assert_equals( 40 decoder.decode(message.records[0].data), test_text_data, 41 'data contains the same text content'); 42 }, 'NDEFMessage constructor with a text record');