diff options
author | Peter Saxton <peterhsaxton@gmail.com> | 2020-06-16 09:36:14 +0100 |
---|---|---|
committer | Louis Pilfold <louis@lpil.uk> | 2020-06-16 13:27:41 +0100 |
commit | 918a9da5f6a3f6bafa107d15faff89f74c90b7e1 (patch) | |
tree | 5e0f78fe8c003ce667d5e1bf5d3eeff5ef8d78fd /test | |
parent | 6855eb99857f7cd791f9b17f9435d39f31d7ea63 (diff) | |
download | gleam_stdlib-918a9da5f6a3f6bafa107d15faff89f74c90b7e1.tar.gz gleam_stdlib-918a9da5f6a3f6bafa107d15faff89f74c90b7e1.zip |
add uri merge functionality
Diffstat (limited to 'test')
-rw-r--r-- | test/gleam/uri_test.gleam | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/test/gleam/uri_test.gleam b/test/gleam/uri_test.gleam index 9f102e0..3e638fd 100644 --- a/test/gleam/uri_test.gleam +++ b/test/gleam/uri_test.gleam @@ -131,3 +131,80 @@ pub fn origin_test() { uri.origin(parsed) |> should.equal(Error(Nil)) } + +pub fn merge_test() { + let Ok(a) = uri.parse("/relative") + let Ok(b) = uri.parse("") + uri.merge(a, b) + |> should.equal(Error(Nil)) + + let Ok(a) = uri.parse("http://google.com/foo") + let Ok(b) = uri.parse("http://example.com/baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://google.com/foo") + let Ok(b) = uri.parse("http://example.com/.././bar/../../baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://google.com/foo") + let Ok(b) = uri.parse("//example.com/baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://google.com/foo") + let Ok(b) = uri.parse("//example.com/.././bar/../../../baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://example.com/foo/bar") + let Ok(b) = uri.parse("/baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://example.com/foo/bar") + let Ok(b) = uri.parse("baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/baz")) + + let Ok(a) = uri.parse("http://example.com/foo/") + let Ok(b) = uri.parse("baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/baz")) + + let Ok(a) = uri.parse("http://example.com") + let Ok(b) = uri.parse("baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://example.com") + let Ok(b) = uri.parse("/.././bar/../../../baz") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/baz")) + + let Ok(a) = uri.parse("http://example.com/foo/bar") + let Ok(b) = uri.parse("") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/bar")) + + let Ok(a) = uri.parse("http://example.com/foo/bar") + let Ok(b) = uri.parse("#fragment") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/bar#fragment")) + + let Ok(a) = uri.parse("http://example.com/foo/bar") + let Ok(b) = uri.parse("?query") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/bar?query")) + + let Ok(a) = uri.parse("http://example.com/foo/bar?query1") + let Ok(b) = uri.parse("?query2") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/bar?query2")) + + let Ok(a) = uri.parse("http://example.com/foo/bar?query") + let Ok(b) = uri.parse("") + uri.merge(a, b) + |> should.equal(uri.parse("http://example.com/foo/bar?query")) +} |