aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorE. Westbrook <github@westbrook.io>2018-08-19 11:32:42 -0600
committerE. Westbrook <github@westbrook.io>2018-08-19 11:32:42 -0600
commit17a95c126a178b17292637785c6ec09bb1180493 (patch)
treed5c6115c0330df2c4d7f845bdd52e2d348828ffc /test
parent5813cd05054599b0409480d3214f1827c2360467 (diff)
downloadluasocket-17a95c126a178b17292637785c6ec09bb1180493.tar.gz
luasocket-17a95c126a178b17292637785c6ec09bb1180493.tar.bz2
luasocket-17a95c126a178b17292637785c6ec09bb1180493.zip
url.lua:absolute_path(): fix issue #254, simplify, add more test cases
Diffstat (limited to 'test')
-rw-r--r--test/urltest.lua25
1 files changed, 24 insertions, 1 deletions
diff --git a/test/urltest.lua b/test/urltest.lua
index 1090a7e..63a33ea 100644
--- a/test/urltest.lua
+++ b/test/urltest.lua
@@ -61,7 +61,7 @@ end
61local check_absolute_url = function(base, relative, absolute) 61local check_absolute_url = function(base, relative, absolute)
62 local res = socket.url.absolute(base, relative) 62 local res = socket.url.absolute(base, relative)
63 if res ~= absolute then 63 if res ~= absolute then
64 io.write("absolute: In test for '", relative, "' expected '", 64 io.write("absolute: In test for base='", base, "', rel='", relative, "' expected '",
65 absolute, "' but got '", res, "'\n") 65 absolute, "' but got '", res, "'\n")
66 os.exit() 66 os.exit()
67 end 67 end
@@ -637,6 +637,17 @@ check_absolute_url("http://a/b/c/d;p?q#f", "g;x", "http://a/b/c/g;x")
637check_absolute_url("http://a/b/c/d;p?q#f", "g;x?y#s", "http://a/b/c/g;x?y#s") 637check_absolute_url("http://a/b/c/d;p?q#f", "g;x?y#s", "http://a/b/c/g;x?y#s")
638check_absolute_url("http://a/b/c/d;p?q#f", ".", "http://a/b/c/") 638check_absolute_url("http://a/b/c/d;p?q#f", ".", "http://a/b/c/")
639check_absolute_url("http://a/b/c/d;p?q#f", "./", "http://a/b/c/") 639check_absolute_url("http://a/b/c/d;p?q#f", "./", "http://a/b/c/")
640check_absolute_url("http://a/b/c/d;p?q#f", "./g", "http://a/b/c/g")
641check_absolute_url("http://a/b/c/d;p?q#f", "./g/", "http://a/b/c/g/")
642check_absolute_url("http://a/b/c/d;p?q#f", "././g", "http://a/b/c/g")
643check_absolute_url("http://a/b/c/d;p?q#f", "././g/", "http://a/b/c/g/")
644check_absolute_url("http://a/b/c/d;p?q#f", "g/.", "http://a/b/c/g/")
645check_absolute_url("http://a/b/c/d;p?q#f", "g/./", "http://a/b/c/g/")
646check_absolute_url("http://a/b/c/d;p?q#f", "g/./.", "http://a/b/c/g/")
647check_absolute_url("http://a/b/c/d;p?q#f", "g/././", "http://a/b/c/g/")
648check_absolute_url("http://a/b/c/d;p?q#f", "./.", "http://a/b/c/")
649check_absolute_url("http://a/b/c/d;p?q#f", "././.", "http://a/b/c/")
650check_absolute_url("http://a/b/c/d;p?q#f", "././g/./.", "http://a/b/c/g/")
640check_absolute_url("http://a/b/c/d;p?q#f", "..", "http://a/b/") 651check_absolute_url("http://a/b/c/d;p?q#f", "..", "http://a/b/")
641check_absolute_url("http://a/b/c/d;p?q#f", "../", "http://a/b/") 652check_absolute_url("http://a/b/c/d;p?q#f", "../", "http://a/b/")
642check_absolute_url("http://a/b/c/d;p?q#f", "../g", "http://a/b/g") 653check_absolute_url("http://a/b/c/d;p?q#f", "../g", "http://a/b/g")
@@ -655,6 +666,17 @@ check_absolute_url("http://a/b/c/d;p?q#f", "./g/.", "http://a/b/c/g/")
655check_absolute_url("http://a/b/c/d;p?q#f", "g/./h", "http://a/b/c/g/h") 666check_absolute_url("http://a/b/c/d;p?q#f", "g/./h", "http://a/b/c/g/h")
656check_absolute_url("http://a/b/c/d;p?q#f", "g/../h", "http://a/b/c/h") 667check_absolute_url("http://a/b/c/d;p?q#f", "g/../h", "http://a/b/c/h")
657 668
669check_absolute_url("http://a/b/c/d:p?q#f/", "../g/", "http://a/b/g/")
670check_absolute_url("http://a/b/c/d:p?q#f/", "../g", "http://a/b/g")
671check_absolute_url("http://a/b/c/d:p?q#f/", "../.g/", "http://a/b/.g/")
672check_absolute_url("http://a/b/c/d:p?q#f/", "../.g", "http://a/b/.g")
673check_absolute_url("http://a/b/c/d:p?q#f/", "../.g.h/", "http://a/b/.g.h/")
674check_absolute_url("http://a/b/c/d:p?q#f/", "../.g.h", "http://a/b/.g.h")
675
676check_absolute_url("http://a/b/c/d:p?q#f/", "g.h/", "http://a/b/c/g.h/")
677check_absolute_url("http://a/b/c/d:p?q#f/", "../g.h/", "http://a/b/g.h/")
678check_absolute_url("http://a/", "../g.h/", "http://a/g.h/")
679
658-- extra tests 680-- extra tests
659check_absolute_url("//a/b/c/d;p?q#f", "d/e/f", "//a/b/c/d/e/f") 681check_absolute_url("//a/b/c/d;p?q#f", "d/e/f", "//a/b/c/d/e/f")
660check_absolute_url("/a/b/c/d;p?q#f", "d/e/f", "/a/b/c/d/e/f") 682check_absolute_url("/a/b/c/d;p?q#f", "d/e/f", "/a/b/c/d/e/f")
@@ -662,6 +684,7 @@ check_absolute_url("a/b/c/d", "d/e/f", "a/b/c/d/e/f")
662check_absolute_url("a/b/c/d/../", "d/e/f", "a/b/c/d/e/f") 684check_absolute_url("a/b/c/d/../", "d/e/f", "a/b/c/d/e/f")
663check_absolute_url("http://velox.telemar.com.br", "/dashboard/index.html", 685check_absolute_url("http://velox.telemar.com.br", "/dashboard/index.html",
664 "http://velox.telemar.com.br/dashboard/index.html") 686 "http://velox.telemar.com.br/dashboard/index.html")
687check_absolute_url("http://example.com/", "../.badhost.com/", "http://example.com/.badhost.com/")
665 688
666print("testing path parsing and composition") 689print("testing path parsing and composition")
667check_parse_path("/eu/tu/ele", { "eu", "tu", "ele"; is_absolute = 1 }) 690check_parse_path("/eu/tu/ele", { "eu", "tu", "ele"; is_absolute = 1 })