servo/tests/wpt/web-platform-tests/web-nfc/NDEFMessage_constructor.https.html

40 lines
1.7 KiB
HTML

<!DOCTYPE html>
<title>NDEFMessage constructor</title>
<link rel="help" href="https://w3c.github.io/web-nfc/#dom-ndefmessage">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/nfc-helpers.js"></script>
<script>
test(() => {
assert_equals(NDEFMessage.length, 1);
assert_throws(new TypeError, () => new NDEFMessage());
}, 'NDEFMessage constructor without init dict');
test(() => {
const message = new NDEFMessage(null);
assert_equals(message.url.length, 0, 'empty url');
assert_equals(message.records.length, 0, 'empty records');
}, 'NDEFMessage constructor with null init dict');
test(() => {
const message = new NDEFMessage(
createMessage([createTextRecord(test_text_data)]));
assert_equals(message.records.length, 1, 'one text record');
assert_equals(message.records[0].recordType, 'text', 'messageType');
assert_equals(message.records[0].mediaType, 'text/plain', 'mediaType');
assert_true(message.records[0].data instanceof DataView,
'data returns a DataView');
const decoder = new TextDecoder();
assert_equals(decoder.decode(message.records[0].data), test_text_data,
'data contains the same text content');
assert_true(typeof message.records[0].text() === 'string');
assert_equals(message.records[0].text(), test_text_data,
'text() contains the same text content');
assert_true(message.records[0].arrayBuffer() instanceof ArrayBuffer,
'arrayBuffer() returns an ArrayBuffer');
assert_equals(message.records[0].json(), null,
'json() returns null');
}, 'NDEFMessage constructor with a text record');
</script>