test("encodeURI", () => { [ ["шеллы", "%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"], [";,/?:@&=+$#", ";,/?:@&=+$#"], ["-_.!~*'()", "-_.!~*'()"], ["ABC abc 123", "ABC%20abc%20123"], ].forEach(test => { expect(encodeURI(test[0])).toBe(test[1]); }); }); test("decodeURI", () => { [ ["%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", "шеллы"], [";,/?:@&=+$#", ";,/?:@&=+$#"], ["-_.!~*'()", "-_.!~*'()"], ["ABC%20abc%20123", "ABC abc 123"], ].forEach(test => { expect(decodeURI(test[0])).toBe(test[1]); }); }); test("decodeURI exception", () => { ["%", "%a", "%gh", "%%%"].forEach(test => { expect(() => { decodeURI(test); }).toThrowWithMessage(URIError, "URI malformed"); }); }); test("encodeURIComponent", () => { [ ["шеллы", "%D1%88%D0%B5%D0%BB%D0%BB%D1%8B"], [";,/?:@&=+$#", "%3B%2C%2F%3F%3A%40%26%3D%2B%24%23"], ["-_.!~*'()", "-_.!~*'()"], ["ABC abc 123", "ABC%20abc%20123"], ].forEach(test => { expect(encodeURIComponent(test[0])).toBe(test[1]); }); }); test("decodeURIComponent", () => { [ ["%D1%88%D0%B5%D0%BB%D0%BB%D1%8B", "шеллы"], ["%3B%2C%2F%3F%3A%40%26%3D%2B%24%23", ";,/?:@&=+$#"], ["-_.!~*'()", "-_.!~*'()"], ["ABC%20abc%20123", "ABC abc 123"], ].forEach(test => { expect(decodeURIComponent(test[0])).toBe(test[1]); }); }); test("decodeURIComponent exception", () => { ["%", "%a", "%gh", "%%%"].forEach(test => { expect(() => { decodeURI(test); }).toThrowWithMessage(URIError, "URI malformed"); }); });