File: gh-issues.rs

package info (click to toggle)
rust-iri-string 0.7.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 976 kB
  • sloc: makefile: 2
file content (43 lines) | stat: -rw-r--r-- 1,167 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
//! Test cases for issues reported on GitHub.

use iri_string::types::UriReferenceStr;

mod issue_17 {
    use super::*;

    #[test]
    fn ipv6_literal_authority_host() {
        let uri = UriReferenceStr::new("//[::1]").expect("valid relative URI");
        let authority = uri
            .authority_components()
            .expect("the URI has authority `[::1]`");
        assert_eq!(authority.host(), "[::1]");
    }

    #[test]
    fn extra_trailing_colon_in_ipv6_literal() {
        assert!(UriReferenceStr::new("//[::1:]").is_err());
    }

    #[test]
    fn ipvfuture_literal_capital_v() {
        assert!(UriReferenceStr::new("//[v0.0]").is_ok());
        assert!(UriReferenceStr::new("//[V0.0]").is_ok());
    }

    #[test]
    fn ipvfuture_empty_part() {
        assert!(
            UriReferenceStr::new("//[v0.]").is_err(),
            "address should not be empty"
        );
        assert!(
            UriReferenceStr::new("//[v.0]").is_err(),
            "version should not be empty"
        );
        assert!(
            UriReferenceStr::new("//[v.]").is_err(),
            "neither address nor version should be empty"
        );
    }
}