Skip to content

Commit

Permalink
add some tests from test262
Browse files Browse the repository at this point in the history
  • Loading branch information
zloirock committed Aug 1, 2024
1 parent a2980bd commit 8fbd1eb
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 0 deletions.
24 changes: 24 additions & 0 deletions tests/unit-global/esnext.uint8-array.to-base64.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,4 +38,28 @@ if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toBase64', assert => {
assert.throws(() => toBase64.call(undefined), TypeError, "isn't generic #2");
assert.throws(() => toBase64.call(new Int16Array([1])), TypeError, "isn't generic #3");
assert.throws(() => toBase64.call([1]), TypeError, "isn't generic #4");

// Test262
// Copyright 2024 Kevin Gibbons. All rights reserved.
// This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.
assert.same(new Uint8Array([199, 239, 242]).toBase64(), 'x+/y');
assert.same(new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'base64' }), 'x+/y');
assert.same(new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'base64url' }), 'x-_y');
assert.throws(() => new Uint8Array([199, 239, 242]).toBase64({ alphabet: 'other' }), TypeError);

// works with default alphabet
assert.same(new Uint8Array([199, 239]).toBase64(), 'x+8=');
assert.same(new Uint8Array([199, 239]).toBase64({ omitPadding: false }), 'x+8=');
assert.same(new Uint8Array([199, 239]).toBase64({ omitPadding: true }), 'x+8');
assert.same(new Uint8Array([255]).toBase64({ omitPadding: true }), '/w');

// works with base64url alphabet
assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url' }), 'x-8=');
assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url', omitPadding: false }), 'x-8=');
assert.same(new Uint8Array([199, 239]).toBase64({ alphabet: 'base64url', omitPadding: true }), 'x-8');
assert.same(new Uint8Array([255]).toBase64({ alphabet: 'base64url', omitPadding: true }), '_w');

// performs ToBoolean on the argument
assert.same(new Uint8Array([255]).toBase64({ omitPadding: 0 }), '/w==');
assert.same(new Uint8Array([255]).toBase64({ omitPadding: 1 }), '/w');
});
11 changes: 11 additions & 0 deletions tests/unit-global/esnext.uint8-array.to-hex.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,15 @@ if (DESCRIPTORS) QUnit.test('Uint8Array.prototype.toHex', assert => {
assert.throws(() => toHex.call(undefined), TypeError, "isn't generic #2");
assert.throws(() => toHex.call(new Int16Array([1])), TypeError, "isn't generic #3");
assert.throws(() => toHex.call([1]), TypeError, "isn't generic #4");

// Test262
// Copyright 2024 Kevin Gibbons. All rights reserved.
// This code is governed by the BSD license found in the https://github.com/tc39/test262/blob/main/LICENSE file.
assert.same(new Uint8Array([]).toHex(), '');
assert.same(new Uint8Array([102]).toHex(), '66');
assert.same(new Uint8Array([102, 111]).toHex(), '666f');
assert.same(new Uint8Array([102, 111, 111]).toHex(), '666f6f');
assert.same(new Uint8Array([102, 111, 111, 98]).toHex(), '666f6f62');
assert.same(new Uint8Array([102, 111, 111, 98, 97]).toHex(), '666f6f6261');
assert.same(new Uint8Array([102, 111, 111, 98, 97, 114]).toHex(), '666f6f626172');
});

0 comments on commit 8fbd1eb

Please sign in to comment.