OLD | NEW |
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> | 1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
2 <html> | 2 <html> |
3 <head> | 3 <head> |
4 <script src="../../js/resources/js-test-pre.js"></script> | 4 <script src="../../js/resources/js-test-pre.js"></script> |
5 </head> | 5 </head> |
6 <body> | 6 <body> |
7 <script> | 7 <script> |
8 shouldBe('window.atob("YQ==")', '"a"'); | 8 shouldBe('window.atob("YQ==")', '"a"'); |
9 shouldBe('window.atob("YWI=")', '"ab"'); | 9 shouldBe('window.atob("YWI=")', '"ab"'); |
10 shouldBe('window.atob("YWJj")', '"abc"'); | 10 shouldBe('window.atob("YWJj")', '"abc"'); |
11 shouldBe('window.atob("YWJjZA==")', '"abcd"'); | 11 shouldBe('window.atob("YWJjZA==")', '"abcd"'); |
12 shouldBe('window.atob("YWJjZGU=")', '"abcde"'); | 12 shouldBe('window.atob("YWJjZGU=")', '"abcde"'); |
13 shouldBe('window.atob("YWJjZGVm")', '"abcdef"'); | 13 shouldBe('window.atob("YWJjZGVm")', '"abcdef"'); |
| 14 |
14 shouldBe('window.btoa("a")', '"YQ=="'); | 15 shouldBe('window.btoa("a")', '"YQ=="'); |
15 shouldBe('window.btoa("ab")', '"YWI="'); | 16 shouldBe('window.btoa("ab")', '"YWI="'); |
16 shouldBe('window.btoa("abc")', '"YWJj"'); | 17 shouldBe('window.btoa("abc")', '"YWJj"'); |
17 shouldBe('window.btoa("abcd")', '"YWJjZA=="'); | 18 shouldBe('window.btoa("abcd")', '"YWJjZA=="'); |
18 shouldBe('window.btoa("abcde")', '"YWJjZGU="'); | 19 shouldBe('window.btoa("abcde")', '"YWJjZGU="'); |
19 shouldBe('window.btoa("abcdef")', '"YWJjZGVm"'); | 20 shouldBe('window.btoa("abcdef")', '"YWJjZGVm"'); |
20 | 21 |
21 shouldBe('typeof window.btoa', '"function"'); | 22 shouldBe('typeof window.btoa', '"function"'); |
22 shouldThrow('window.btoa()', '"TypeError: Failed to execute \'btoa\' on \'Window
\': 1 argument required, but only 0 present."'); | 23 shouldThrow('window.btoa()', '"TypeError: Failed to execute \'btoa\' on \'Window
\': 1 argument required, but only 0 present."'); |
23 shouldBe('window.btoa("")', '""'); | 24 shouldBe('window.btoa("")', '""'); |
24 shouldBe('window.btoa(null)', '"bnVsbA=="'); // Gets converted to "null" string. | 25 shouldBe('window.btoa(null)', '"bnVsbA=="'); // Gets converted to "null" string. |
25 shouldBe('window.btoa(undefined)', '"dW5kZWZpbmVk"'); | 26 shouldBe('window.btoa(undefined)', '"dW5kZWZpbmVk"'); |
26 shouldBe('window.btoa(window)', '"W29iamVjdCBXaW5kb3dd"'); // "[object Window]" | 27 shouldBe('window.btoa(window)', '"W29iamVjdCBXaW5kb3dd"'); // "[object Window]" |
27 shouldBe('window.btoa("éé")', '"6ek="'); | 28 shouldBe('window.btoa("éé")', '"6ek="'); |
28 shouldBe('window.btoa("\\u0080\\u0081")', '"gIE="'); | 29 shouldBe('window.btoa("\\u0080\\u0081")', '"gIE="'); |
29 shouldThrow('window.btoa("тест")'); | 30 shouldThrow('window.btoa("тест")'); |
30 window.btoa = 0; | 31 window.btoa = 0; |
31 shouldBe('window.btoa', '0'); | 32 shouldBe('window.btoa', '0'); |
32 shouldBe('typeof window.btoa', '"number"'); | 33 shouldBe('typeof window.btoa', '"number"'); |
33 | 34 |
34 shouldBe('typeof window.atob', '"function"'); | 35 shouldBe('typeof window.atob', '"function"'); |
35 shouldThrow('window.atob()', '"TypeError: Failed to execute \'atob\' on \'Window
\': 1 argument required, but only 0 present."'); | 36 shouldThrow('window.atob()', '"TypeError: Failed to execute \'atob\' on \'Window
\': 1 argument required, but only 0 present."'); |
36 shouldBe('window.atob("")', '""'); | 37 shouldBe('window.atob("")', '""'); |
37 shouldBe('window.atob(null)', '"\x9Eée"'); // Gets converted to "null" string. | 38 shouldBe('window.atob(null)', '"\x9Eée"'); // Gets converted to "null" string. |
38 shouldThrow('window.atob(undefined)'); | 39 shouldThrow('window.atob(undefined)'); |
39 shouldThrow('window.atob(" YQ==")'); | 40 |
40 shouldThrow('window.atob("YQ==\\u000a")'); | 41 // HTML space characters in input. |
| 42 shouldBe('window.atob(" YQ==")', '"a"'); |
| 43 shouldBe('window.atob("YQ== ")', '"a"'); |
| 44 shouldBe('window.atob("YQ== ")', '"a"'); |
| 45 shouldBe('window.atob("YQ==\\u000a")', '"a"'); |
| 46 shouldBe('window.atob("YQ ==")', '"a"'); |
| 47 shouldBe('window.atob("YQ\\t==")', '"a"'); |
| 48 shouldBe('window.atob("YQ\\n==")', '"a"'); |
| 49 shouldBe('window.atob("YQ\\f==")', '"a"'); |
| 50 shouldBe('window.atob("YQ\\r==")', '"a"'); |
| 51 shouldBe('window.atob("YQ\\t\\n\\f\\r ==")', '"a"'); |
| 52 |
41 shouldBe('window.atob("6ek=")', '"éé"'); | 53 shouldBe('window.atob("6ek=")', '"éé"'); |
42 shouldBe('window.atob("6ek")', '"éé"'); | 54 shouldBe('window.atob("6ek")', '"éé"'); |
43 shouldBe('window.atob("gIE=")', '"\u0080\u0081"'); | 55 shouldBe('window.atob("gIE=")', '"\u0080\u0081"'); |
44 shouldThrow('window.atob("тест")'); | 56 shouldThrow('window.atob("тест")'); |
45 shouldThrow('window.atob("z")'); | 57 shouldThrow('window.atob("z")'); |
46 shouldBe('window.atob("zz")', '"Ï"'); | 58 shouldBe('window.atob("zz")', '"Ï"'); |
47 shouldBe('window.atob("zzz")', '"Ï\u003C"'); | 59 shouldBe('window.atob("zzz")', '"Ï\u003C"'); |
48 shouldBe('window.atob("zzz=")', '"Ï\u003C"'); | 60 shouldBe('window.atob("zzz=")', '"Ï\u003C"'); |
49 shouldThrow('window.atob("zzz==")'); // excess pad characters. | 61 shouldThrow('window.atob("zzz==")'); // excess pad characters. |
50 shouldThrow('window.atob("zzz===")'); // excess pad characters. | 62 shouldThrow('window.atob("zzz===")'); // excess pad characters. |
51 shouldThrow('window.atob("zzz====")'); // excess pad characters. | 63 shouldThrow('window.atob("zzz====")'); // excess pad characters. |
52 shouldThrow('window.atob("zzz=====")'); // excess pad characters. | 64 shouldThrow('window.atob("zzz=====")'); // excess pad characters. |
53 shouldBe('window.atob("zzzz")', '"Ï\u003Có"'); | 65 shouldBe('window.atob("zzzz")', '"Ï\u003Có"'); |
54 shouldThrow('window.atob("zzzzz")'); | 66 shouldThrow('window.atob("zzzzz")'); |
55 shouldThrow('window.atob("z=zz")'); | 67 shouldThrow('window.atob("z=zz")'); |
56 shouldThrow('window.atob("=")'); | 68 shouldThrow('window.atob("=")'); |
57 shouldThrow('window.atob("==")'); | 69 shouldThrow('window.atob("==")'); |
58 shouldThrow('window.atob("===")'); | 70 shouldThrow('window.atob("===")'); |
59 shouldThrow('window.atob("====")'); | 71 shouldThrow('window.atob("====")'); |
60 shouldThrow('window.atob("=====")'); | 72 shouldThrow('window.atob("=====")'); |
61 window.atob = 0; | 73 window.atob = 0; |
62 shouldBe('window.atob', '0'); | 74 shouldBe('window.atob', '0'); |
63 shouldBe('typeof window.atob', '"number"'); | 75 shouldBe('typeof window.atob', '"number"'); |
64 | 76 |
65 </script> | 77 </script> |
66 </body> | 78 </body> |
67 </html> | 79 </html> |
OLD | NEW |