@@ -530,6 +530,7 @@ defmodule URITest do
530530    # 
531531    # https://w3c.github.io/json-ld-api/tests/toRdf-manifest#t0124 
532532    # https://w3c.github.io/json-ld-api/tests/toRdf-manifest#t0125 
533+     # https://w3c.github.io/json-ld-api/tests/toRdf-manifest#t0123 
533534
534535    base1  =  "http://a/bb/ccc/." 
535536
@@ -632,6 +633,57 @@ defmodule URITest do
632633    for  { rel ,  result }  <-  rel_and_result2  do 
633634      assert  URI . merge ( base2 ,  rel )  |>  URI . to_string ( )  ==  result 
634635    end 
636+ 
637+     base3  =  "http://a/bb/ccc/../d;p?q" 
638+ 
639+     rel_and_result  =  % { 
640+       "g:h"  =>  "g:h" , 
641+       "g"  =>  "http://a/bb/g" , 
642+       "./g"  =>  "http://a/bb/g" , 
643+       "g/"  =>  "http://a/bb/g/" , 
644+       "/g"  =>  "http://a/g" , 
645+       "//g"  =>  "http://g" , 
646+       "?y"  =>  "http://a/bb/ccc/../d;p?y" , 
647+       "g?y"  =>  "http://a/bb/g?y" , 
648+       "#s"  =>  "http://a/bb/ccc/../d;p?q#s" , 
649+       "g#s"  =>  "http://a/bb/g#s" , 
650+       "g?y#s"  =>  "http://a/bb/g?y#s" , 
651+       ";x"  =>  "http://a/bb/;x" , 
652+       "g;x"  =>  "http://a/bb/g;x" , 
653+       "g;x?y#s"  =>  "http://a/bb/g;x?y#s" , 
654+       ""  =>  "http://a/bb/ccc/../d;p?q" , 
655+       "."  =>  "http://a/bb/" , 
656+       "./"  =>  "http://a/bb/" , 
657+       ".."  =>  "http://a/" , 
658+       "../"  =>  "http://a/" , 
659+       "../g"  =>  "http://a/g" , 
660+       "../.."  =>  "http://a/" , 
661+       "../../"  =>  "http://a/" , 
662+       "../../g"  =>  "http://a/g" , 
663+       "../../../g"  =>  "http://a/g" , 
664+       "../../../../g"  =>  "http://a/g" , 
665+       "/./g"  =>  "http://a/g" , 
666+       "/../g"  =>  "http://a/g" , 
667+       "g."  =>  "http://a/bb/g." , 
668+       ".g"  =>  "http://a/bb/.g" , 
669+       "g.."  =>  "http://a/bb/g.." , 
670+       "..g"  =>  "http://a/bb/..g" , 
671+       "./../g"  =>  "http://a/g" , 
672+       "./g/."  =>  "http://a/bb/g/" , 
673+       "g/./h"  =>  "http://a/bb/g/h" , 
674+       "g/../h"  =>  "http://a/bb/h" , 
675+       "g;x=1/./y"  =>  "http://a/bb/g;x=1/y" , 
676+       "g;x=1/../y"  =>  "http://a/bb/y" , 
677+       "g?y/./x"  =>  "http://a/bb/g?y/./x" , 
678+       "g?y/../x"  =>  "http://a/bb/g?y/../x" , 
679+       "g#s/./x"  =>  "http://a/bb/g#s/./x" , 
680+       "g#s/../x"  =>  "http://a/bb/g#s/../x" , 
681+       "http:g"  =>  "http:g" 
682+     } 
683+ 
684+     for  { rel ,  result }  <-  rel_and_result  do 
685+       assert  URI . merge ( base3 ,  rel )  |>  URI . to_string ( )  ==  result 
686+     end 
635687  end 
636688
637689  test  "append_query/2"  do 
0 commit comments