MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at master 88 lines 2.9 kB view raw
1// Test btoa() and atob() Base64 encoding/decoding 2 3console.log("=== Base64 Tests ===\n"); 4 5// Test 1: Basic btoa encoding 6console.log("Test 1: Basic btoa encoding"); 7let encoded1 = btoa("Hello, World!"); 8console.log(" Input: Hello, World!"); 9console.log(" Encoded:", encoded1); 10console.log(" Expected: SGVsbG8sIFdvcmxkIQ=="); 11console.log(" Pass:", encoded1 === "SGVsbG8sIFdvcmxkIQ=="); 12 13// Test 2: Basic atob decoding 14console.log("\nTest 2: Basic atob decoding"); 15let decoded2 = atob("SGVsbG8sIFdvcmxkIQ=="); 16console.log(" Input: SGVsbG8sIFdvcmxkIQ=="); 17console.log(" Decoded:", decoded2); 18console.log(" Expected: Hello, World!"); 19console.log(" Pass:", decoded2 === "Hello, World!"); 20 21// Test 3: Round-trip test 22console.log("\nTest 3: Round-trip test"); 23let original3 = "The quick brown fox jumps over the lazy dog"; 24let encoded3 = btoa(original3); 25let decoded3 = atob(encoded3); 26console.log(" Original:", original3); 27console.log(" Encoded:", encoded3); 28console.log(" Decoded:", decoded3); 29console.log(" Pass:", original3 === decoded3); 30 31// Test 4: Empty string 32console.log("\nTest 4: Empty string"); 33let encoded4 = btoa(""); 34let decoded4 = atob(""); 35console.log(" btoa(''):", encoded4); 36console.log(" atob(''):", decoded4); 37console.log(" Pass:", encoded4 === "" && decoded4 === ""); 38 39// Test 5: Single character 40console.log("\nTest 5: Single character"); 41let encoded5 = btoa("A"); 42console.log(" btoa('A'):", encoded5); 43console.log(" Expected: QQ=="); 44console.log(" Pass:", encoded5 === "QQ=="); 45 46// Test 6: Two characters 47console.log("\nTest 6: Two characters"); 48let encoded6 = btoa("AB"); 49console.log(" btoa('AB'):", encoded6); 50console.log(" Expected: QUI="); 51console.log(" Pass:", encoded6 === "QUI="); 52 53// Test 7: Three characters (no padding) 54console.log("\nTest 7: Three characters"); 55let encoded7 = btoa("ABC"); 56console.log(" btoa('ABC'):", encoded7); 57console.log(" Expected: QUJD"); 58console.log(" Pass:", encoded7 === "QUJD"); 59 60// Test 8: Numbers in string 61console.log("\nTest 8: Numbers in string"); 62let encoded8 = btoa("12345"); 63console.log(" btoa('12345'):", encoded8); 64let decoded8 = atob(encoded8); 65console.log(" atob result:", decoded8); 66console.log(" Pass:", decoded8 === "12345"); 67 68// Test 9: Special characters 69console.log("\nTest 9: Special characters"); 70let special = "!@#$%^&*()"; 71let encoded9 = btoa(special); 72let decoded9 = atob(encoded9); 73console.log(" Original:", special); 74console.log(" Encoded:", encoded9); 75console.log(" Decoded:", decoded9); 76console.log(" Pass:", special === decoded9); 77 78// Test 10: JSON data 79console.log("\nTest 10: JSON data"); 80let jsonData = '{"name":"test","value":123}'; 81let encoded10 = btoa(jsonData); 82let decoded10 = atob(encoded10); 83console.log(" JSON:", jsonData); 84console.log(" Encoded:", encoded10); 85console.log(" Decoded:", decoded10); 86console.log(" Pass:", jsonData === decoded10); 87 88console.log("\n=== All Base64 tests completed ===");