TL;DR
As a reference for my future self, here is the test cheat sheet for universal resource locator.
Elisabeth Hendrickson published some time ago this legendary heuristic test sheet, a set of quick test ideas. Recently I tested one feature that had URL, so here is set of quick test ideas for URL.
This is url structure:
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
Here is scheme definition:
“The scheme, consisting of a sequence of characters beginning with a letter and followed by any combination of letters, digits, plus (+), period (.), or hyphen (-). Although schemes are case-insensitive, the canonical form is lowercase and documents that specify schemes must do so with lowercase letters. It is followed by a colon (:)”
Just for possible scheme values, we have explosion of test cases!
As we are smart tester, we will do risk reality check.
Here is test values cheat sheet for modern web application:
scheme: http, https, mailto, ftp, file, data, ftps, tel various values: http://user:password@tentamen.hr:80 https://www.tentamen.hr/tools/new https://en.wikipedia.org/w/api.php?action=opensearch https://en.wikipedia.org/wiki/Uniform_Resource_Identifier#URLs
All those values must be parsable by the web application which means that http 500 error code must not be returned.
I missed mailto which caused 500 http error. This is the reason why I wrote this blog post.