ladybird/Libraries/LibJS/Tests/builtins/functions/uriEncodeDecode.js

59 lines
1.7 KiB
JavaScript

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");
});
});