| <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN"> |
| <html> |
| <head> |
| <script src="../../../resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| <script> |
| description('Test setting the port attribute of the URL in HTMLAnchorElement.'); |
| |
| var a = document.createElement('a'); |
| |
| debug("Default port as number"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = 443; |
| shouldBe("a.href", "'https://www.mydomain.com/path/testurl.html?key=value'"); |
| |
| debug("Default port as string"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = "443"; |
| shouldBe("a.href", "'https://www.mydomain.com/path/testurl.html?key=value'"); |
| |
| debug("Set port to 0"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = "0"; |
| shouldBe("a.href", "'https://www.mydomain.com:0/path/testurl.html?key=value'"); |
| |
| // Firefox 3.5.2 does not accept the port if any character is not a digit. |
| debug("Set port to non-number"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = "4a"; |
| shouldBe("a.href", "'https://www.mydomain.com:4/path/testurl.html?key=value'"); |
| |
| // Chrome 91 and Firefox 89 do not change the port when setting it to null. |
| debug("Set port to null"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = null; |
| shouldBe("a.href", "'https://www.mydomain.com:8080/path/testurl.html?key=value'"); |
| |
| // Firefox 3.5.2 does not accept the port if it is null. |
| debug("Set port to empty string"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = ""; |
| shouldBe("a.href", "'https://www.mydomain.com/path/testurl.html?key=value'"); |
| |
| // Chrome 91 and Firefox 89 do not change the port when setting it to null. |
| debug("Set port to undefined"); |
| a.href = "https://www.mydomain.com:8080/path/testurl.html?key=value"; |
| a.port = undefined; |
| shouldBe("a.href", "'https://www.mydomain.com:8080/path/testurl.html?key=value'"); |
| |
| // Firefox 3.5.2 does not allow setting the port on a URL with protocol foo: . |
| debug("Set port to URL with foo: protocol"); |
| a.href = "foo://bar/"; |
| a.port = 50; |
| shouldBe("a.href", "'foo://bar:50/'"); |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |
| </html> |