Skip to content

Commit 225d8b9

Browse files
committed
Add tests for the new render module
1 parent 275548b commit 225d8b9

File tree

2 files changed

+58
-0
lines changed

2 files changed

+58
-0
lines changed

src/tests/all.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ mod git;
8989
mod keyword;
9090
mod krate;
9191
mod record;
92+
mod render;
9293
mod team;
9394
mod token;
9495
mod user;

src/tests/render.rs

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
use cargo_registry::render;
2+
3+
#[test]
4+
fn empty_text() {
5+
let text = "";
6+
let result = render::markdown_to_html(text);
7+
assert_eq!(result.is_ok(), true);
8+
let rendered = result.unwrap();
9+
assert_eq!(rendered, "");
10+
}
11+
12+
#[test]
13+
fn text_with_script_tag() {
14+
let text = "foo_readme\n\n<script>alert('Hello World')</script>";
15+
let result = render::markdown_to_html(text);
16+
assert_eq!(result.is_ok(), true);
17+
let rendered = result.unwrap();
18+
assert_eq!(rendered.contains("foo_readme"), true);
19+
assert_eq!(rendered.contains("script"), false);
20+
assert_eq!(rendered.contains("alert('Hello World')"), true);
21+
}
22+
23+
#[test]
24+
fn text_with_iframe_tag() {
25+
let text = "foo_readme\n\n<iframe>alert('Hello World')</iframe>";
26+
let result = render::markdown_to_html(text);
27+
assert_eq!(result.is_ok(), true);
28+
let rendered = result.unwrap();
29+
assert_eq!(rendered.contains("foo_readme"), true);
30+
assert_eq!(rendered.contains("iframe"), false);
31+
assert_eq!(rendered.contains("alert('Hello World')"), true);
32+
}
33+
34+
#[test]
35+
fn text_with_unknwon_tag() {
36+
let text = "foo_readme\n\n<unknown>alert('Hello World')</unknown>";
37+
let result = render::markdown_to_html(text);
38+
assert_eq!(result.is_ok(), true);
39+
let rendered = result.unwrap();
40+
assert_eq!(rendered.contains("foo_readme"), true);
41+
assert_eq!(rendered.contains("unknown"), false);
42+
assert_eq!(rendered.contains("alert('Hello World')"), true);
43+
}
44+
45+
#[test]
46+
fn text_with_inline_javascript() {
47+
let text = r#"foo_readme\n\n<a href="https://crates.io/crates/cargo-registry" onclick="window.alert('Got you')">Crate page</a>"#;
48+
let result = render::markdown_to_html(text);
49+
assert_eq!(result.is_ok(), true);
50+
let rendered = result.unwrap();
51+
assert_eq!(rendered.contains("foo_readme"), true);
52+
assert_eq!(rendered.contains("<a"), true);
53+
assert_eq!(rendered.contains("href="), true);
54+
assert_eq!(rendered.contains("onclick"), false);
55+
assert_eq!(rendered.contains("window.alert"), false);
56+
assert_eq!(rendered.contains("Crate page"), true);
57+
}

0 commit comments

Comments
 (0)