From 4a20858bd4d6b6c6d5e335bdf42d3f87716bff4b Mon Sep 17 00:00:00 2001 From: Markus Unterwaditzer Date: Tue, 10 Nov 2015 21:24:08 +0100 Subject: [PATCH] Add tests --- src/tests.rs | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/src/tests.rs b/src/tests.rs index 146ad3a20..0581a5ebd 100644 --- a/src/tests.rs +++ b/src/tests.rs @@ -301,3 +301,37 @@ fn issue_124() { let url: Url = "file:..".parse().unwrap(); assert_eq!(url.path().unwrap(), [""]); } + +#[test] +fn relative_scheme_data_equality() { + fn url(s: &str) -> Url { + let rv = s.parse().unwrap(); + assert_eq!(rv, rv); + rv + } + + // Doesn't care if default port is given. + let a: Url = url("https://example.com/"); + let b: Url = url("https://example.com:443/"); + assert_eq!(a, b); + + // Different ports + let a: Url = url("http://example.com/"); + let b: Url = url("http://example.com:8080/"); + assert!(a != b); + + // Different scheme + let a: Url = url("http://example.com/"); + let b: Url = url("https://example.com/"); + assert!(a != b); + + // Different host + let a: Url = url("http://foo.com/"); + let b: Url = url("http://bar.com/"); + assert!(a != b); + + // Missing path, automatically substituted. Semantically the same. + let a: Url = url("http://foo.com"); + let b: Url = url("http://foo.com/"); + assert_eq!(a, b); +}