Chromium Code Reviews| 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="../../../resources/js-test.js"></script> | 4 <script src="../../../resources/js-test.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"'); | |
|
tkent
2013/11/05 21:39:07
nit: You can avoid nested quotes by shouldBeEqualT
Inactive
2013/11/05 21:55:57
I know, I was too lazy to fix all of the pre-exist
| |
| 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 |