/* global expect */ describe("Util",function(){ let cryptoJS=require("../../dist/main.js"); let util=cryptoJS.util; let utf=[ // https://tools.ietf.org/html/rfc3629#page-8 ["",[]], ["abc",[97,98,99]], ["å",[195,165]], ["🚅",[240,159,154,133]], ["žír",[0xc5,0xbe,0xc3,0xad,114]], ["A\u2262\u0391.",[0x41,0xE2,0x89,0xA2,0xCE,0x91,0x2E]], ["\uD55C\uAD6D\uC5B4",[0xED,0x95,0x9C,0xEA,0xB5,0xAD,0xEC,0x96,0xB4]], ["\ud84c\udfb4",[0xf0,0xa3,0x8e,0xb4]] ]; let base64=[ [[],""], [[102],"Zg=="], [[102,111],"Zm8="], [[102,111,111],"Zm9v"], [[102,111,111,98],"Zm9vYg=="], [[102,111,111,98,97],"Zm9vYmE="], [[102,111,111,98,97,114],"Zm9vYmFy"] ]; describe("bytes2int32s",function(){ it("should pack bytes into 32b integers",function(){ expect(util.bytes2int32s([])).toEqual([]); expect(util.bytes2int32s([0])).toEqual([0]); expect(util.bytes2int32s([1])).toEqual([1]); expect(util.bytes2int32s([0x12,0x34,0x56,0x78,0x9a])).toEqual([0x78563412,0x9a]); }); }); describe("str2utf8",function(){ it("should encode a String into bytes in UTF-8",function(){ utf.forEach(couple=>expect(util.str2utf8(couple[0])).toEqual(couple[1])); }); }); describe("utf82str",function(){ it("should decode a String from UTF-8 bytes",function(){ utf.forEach(couple=>expect(util.utf82str(couple[1])).toEqual(couple[0])); }); }); describe("bytes2base64",function(){ it("should correctly encode bytes into base64",function(){ base64.forEach(couple=>expect(util.bytes2base64(couple[0])).toEqual(couple[1])); }); }); describe("base642bytes",function(){ it("should correctly decode bytes from base64",function(){ base64.forEach(couple=>expect(util.base642bytes(couple[1])).toEqual(couple[0])); }); }); });