aboutsummaryrefslogtreecommitdiff
path: root/test/bun.js/atob.test.js
blob: 0a4695aeba34112f65ee53646ddf304150a4ed1f (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
import { expect, it } from "bun:test";

// Change

function expectInvalidCharacters(val) {
  try {
    atob(val);
    throw new Error("Expected error");
  } catch (error) {
    expect(error.message).toBe("The string contains invalid characters.");
  }
}

it("atob", () => {
  expect(atob("YQ==")).toBe("a");
  expect(atob("YWI=")).toBe("ab");
  expect(atob("YWJj")).toBe("abc");
  expect(atob("YWJjZA==")).toBe("abcd");
  expect(atob("YWJjZGU=")).toBe("abcde");
  expect(atob("YWJjZGVm")).toBe("abcdef");
  expect(atob("zzzz")).toBe("Ï<ó");
  expect(atob("")).toBe("");
  expect(atob(null)).toBe("žée");
  expect(atob("6ek=")).toBe("éé");
  expect(atob("6ek")).toBe("éé");
  expect(atob("gIE=")).toBe("€");
  expect(atob("zz")).toBe("Ï");
  expect(atob("zzz")).toBe("Ï<");
  expect(atob("zzz=")).toBe("Ï<");
  expect(atob(" YQ==")).toBe("a");
  expect(atob("YQ==\u000a")).toBe("a");

  try {
    atob();
  } catch (error) {
    expect(error.name).toBe("TypeError");
  }
  expectInvalidCharacters(undefined);
  expectInvalidCharacters(" abcd===");
  expectInvalidCharacters("abcd=== ");
  expectInvalidCharacters("abcd ===");
  expectInvalidCharacters("тест");
  expectInvalidCharacters("z");
  expectInvalidCharacters("zzz==");
  expectInvalidCharacters("zzz===");
  expectInvalidCharacters("zzz====");
  expectInvalidCharacters("zzz=====");
  expectInvalidCharacters("zzzzz");
  expectInvalidCharacters("z=zz");
  expectInvalidCharacters("=");
  expectInvalidCharacters("==");
  expectInvalidCharacters("===");
  expectInvalidCharacters("====");
  expectInvalidCharacters("=====");
});

it("btoa", () => {
  expect(btoa("a")).toBe("YQ==");
  expect(btoa("ab")).toBe("YWI=");
  expect(btoa("abc")).toBe("YWJj");
  expect(btoa("abcd")).toBe("YWJjZA==");
  expect(btoa("abcde")).toBe("YWJjZGU=");
  expect(btoa("abcdef")).toBe("YWJjZGVm");
  expect(typeof btoa).toBe("function");
  try {
    btoa();
    throw new Error("Expected error");
  } catch (error) {
    expect(error.name).toBe("TypeError");
  }
  var window = "[object Window]";
  expect(btoa("")).toBe("");
  expect(btoa(null)).toBe("bnVsbA==");
  expect(btoa(undefined)).toBe("dW5kZWZpbmVk");
  expect(btoa(window)).toBe("W29iamVjdCBXaW5kb3dd");
  expect(btoa("éé")).toBe("6ek=");
  expect(btoa("\u0080\u0081")).toBe("gIE=");
  expect(btoa(Bun)).toBe(btoa("[object Bun]"));
});