• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

asartalo / shfonts / 4651428220

pending completion
4651428220

push

github

Wayne Duran
ci: fixing auto merging release back to main 4

280 of 292 relevant lines covered (95.89%)

6.77 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

100.0
/src/command/tests.rs
1
use url::Url;
2

3
use crate::command::url_data::{Location, UrlByLine, UrlData};
4
use pretty_assertions::assert_eq;
5

6
use crate::http::get_full_url;
7

8
type TestResult = Result<(), Box<dyn std::error::Error>>;
9

10
fn setup(list: &mut Vec<UrlData>) -> UrlByLine {
2✔
11
    list.push(UrlData {
2✔
12
        url: "https://some.url/font.tff".to_string(),
2✔
13
        location: Location {
2✔
14
            line: 4,
2✔
15
            column: 20,
2✔
16
        },
2✔
17
    });
2✔
18
    list.push(UrlData {
2✔
19
        url: "https://some.url/font2.tff".to_string(),
2✔
20
        location: Location {
2✔
21
            line: 8,
2✔
22
            column: 20,
2✔
23
        },
2✔
24
    });
2✔
25
    list.push(UrlData {
2✔
26
        url: "https://some.url/font3.tff".to_string(),
2✔
27
        location: Location {
2✔
28
            line: 8,
2✔
29
            column: 40,
2✔
30
        },
2✔
31
    });
2✔
32
    UrlByLine::new(list)
2✔
33
}
2✔
34

35
#[test]
1✔
36
fn ubl_at_returns_none_when_line_number_does_not_match() -> TestResult {
1✔
37
    let mut list: Vec<UrlData> = Vec::new();
1✔
38
    let ubl = setup(&mut list);
1✔
39
    assert_eq!(None, ubl.at(0));
1✔
40
    Ok(())
1✔
41
}
1✔
42

43
#[test]
1✔
44
fn ubl_at_returns_some_with_matching_line_number() -> TestResult {
1✔
45
    let mut list: Vec<UrlData> = Vec::new();
1✔
46
    let ubl = setup(&mut list);
1✔
47
    let data = ubl.at(4).unwrap();
1✔
48
    let datum = &data[0];
1✔
49
    assert_eq!("https://some.url/font.tff".to_string(), datum.url);
1✔
50
    Ok(())
1✔
51
}
1✔
52

53
#[test]
1✔
54
fn get_full_url_for_absolute_urls() -> TestResult {
1✔
55
    let font_url = "https://some.url/font.ttf";
1✔
56
    let css_url = Url::parse("https://foo.example/fonts.css").unwrap();
1✔
57
    let result = get_full_url(font_url, &css_url)?;
1✔
58
    assert_eq!(result, Url::parse("https://some.url/font.ttf")?);
1✔
59
    Ok(())
1✔
60
}
1✔
61

62
#[test]
1✔
63
fn get_full_url_for_root_relative_urls() -> TestResult {
1✔
64
    let font_url = "/assets/font.ttf";
1✔
65
    let css_url = Url::parse("https://foo.example/fonts.css").unwrap();
1✔
66
    let result = get_full_url(font_url, &css_url)?;
1✔
67
    assert_eq!(result, Url::parse("https://foo.example/assets/font.ttf")?);
1✔
68
    Ok(())
1✔
69
}
1✔
70

71
#[test]
1✔
72
fn get_full_url_for_basic_relative_urls() -> TestResult {
1✔
73
    let font_url = "fonts/font.ttf";
1✔
74
    let css_url = Url::parse("https://foo.example/assets/fonts.css").unwrap();
1✔
75
    let result = get_full_url(font_url, &css_url)?;
1✔
76
    assert_eq!(
77
        result,
78
        Url::parse("https://foo.example/assets/fonts/font.ttf")?
1✔
79
    );
80
    Ok(())
1✔
81
}
1✔
82

83
#[test]
1✔
84
fn get_full_url_for_basic_relative_urls_with_dots() -> TestResult {
1✔
85
    let font_url = "../fonts/font.ttf";
1✔
86
    let css_url = Url::parse("https://foo.example/assets/fonts.css").unwrap();
1✔
87
    let result = get_full_url(font_url, &css_url)?;
1✔
88
    assert_eq!(result, Url::parse("https://foo.example/fonts/font.ttf")?);
1✔
89
    Ok(())
1✔
90
}
1✔
91

92
#[test]
1✔
93
fn get_full_url_for_basic_relative_urls_with_two_dots() -> TestResult {
1✔
94
    let font_url = "../../font.ttf";
1✔
95
    let css_url = Url::parse("https://foo.example/assets/css/fonts.css").unwrap();
1✔
96
    let result = get_full_url(font_url, &css_url)?;
1✔
97
    assert_eq!(result, Url::parse("https://foo.example/font.ttf")?);
1✔
98
    Ok(())
1✔
99
}
1✔
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc