4 changed files with 215 additions and 41 deletions
@ -0,0 +1,82 @@
|
||||
use super::linkify; |
||||
|
||||
#[test] |
||||
fn linkify_text() { |
||||
// URLs with scheme.
|
||||
let text = "https://gitlab.gnome.org/World/fractal"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="https://gitlab.gnome.org/World/fractal" title="https://gitlab.gnome.org/World/fractal">https://gitlab.gnome.org/World/fractal</a>"# |
||||
); |
||||
|
||||
let text = "https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca" title="https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca">https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca</a>"# |
||||
); |
||||
|
||||
// Email.
|
||||
let text = "admin@matrix.org"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="mailto:admin@matrix.org" title="mailto:admin@matrix.org">admin@matrix.org</a>"# |
||||
); |
||||
|
||||
// URLs without scheme.
|
||||
let text = "gnome.org"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="https://gnome.org" title="https://gnome.org">gnome.org</a>"# |
||||
); |
||||
|
||||
let text = "gitlab.gnome.org/World/fractal"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="https://gitlab.gnome.org/World/fractal" title="https://gitlab.gnome.org/World/fractal">gitlab.gnome.org/World/fractal</a>"# |
||||
); |
||||
|
||||
let text = "matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca" title="https://matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca">matrix.to/#/!somewhere%3Aexample.org?via=elsewhere.ca</a>"# |
||||
); |
||||
|
||||
// `matrix:` URIs.
|
||||
let text = "matrix:r/somewhere:example.org"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="matrix:r/somewhere:example.org" title="matrix:r/somewhere:example.org">matrix:r/somewhere:example.org</a>"# |
||||
); |
||||
|
||||
let text = "matrix:roomid/somewhere:example.org?via=elsewhere.ca"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="matrix:roomid/somewhere:example.org?via=elsewhere.ca" title="matrix:roomid/somewhere:example.org?via=elsewhere.ca">matrix:roomid/somewhere:example.org?via=elsewhere.ca</a>"# |
||||
); |
||||
|
||||
let text = "matrix:roomid/somewhere:example.org/e/event?via=elsewhere.ca"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="matrix:roomid/somewhere:example.org/e/event?via=elsewhere.ca" title="matrix:roomid/somewhere:example.org/e/event?via=elsewhere.ca">matrix:roomid/somewhere:example.org/e/event?via=elsewhere.ca</a>"# |
||||
); |
||||
|
||||
let text = "matrix:u/alice:example.org?action=chat"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"<a href="matrix:u/alice:example.org?action=chat" title="matrix:u/alice:example.org?action=chat">matrix:u/alice:example.org?action=chat</a>"# |
||||
); |
||||
|
||||
// Invalid TLDs.
|
||||
let text = "gnome.invalid"; |
||||
assert_eq!(linkify(text), "gnome.invalid"); |
||||
|
||||
let text = "org.gnome.fractal"; |
||||
assert_eq!(linkify(text), "org.gnome.fractal"); |
||||
|
||||
// `matrix:` that is not a URI scheme.
|
||||
let text = "My homeserver for matrix: gnome.org"; |
||||
assert_eq!( |
||||
linkify(text), |
||||
r#"My homeserver for matrix: <a href="https://gnome.org" title="https://gnome.org">gnome.org</a>"# |
||||
); |
||||
} |
||||
Loading…
Reference in new issue