Skip to content

Commit

Permalink
test ownership in unescape_unicode_test
Browse files Browse the repository at this point in the history
  • Loading branch information
JasperDeSutter committed Dec 21, 2022
1 parent 2d7b1fa commit 93b1ad7
Showing 1 changed file with 23 additions and 13 deletions.
36 changes: 23 additions & 13 deletions fluent-syntax/tests/unicode.rs
Original file line number Diff line number Diff line change
@@ -1,23 +1,33 @@
use std::borrow::Cow;

use fluent_syntax::unicode::{unescape_unicode, unescape_unicode_to_string};

fn test_unescape_unicode(input: &str, output: &str) {
/// Asserts that decoding unicode escape sequences in `input` matches `output`.
/// When `borrowed` = true, asserts that the escaped value is passed back by reference.
fn test_unescape_unicode(input: &str, output: &str, borrowed: bool) {
let mut s = String::new();
unescape_unicode(&mut s, input).expect("Failed to write.");
assert_eq!(&s, output);
assert_eq!(s, output);
let result = unescape_unicode_to_string(input);
assert_eq!(&result, output);
assert_eq!(result, output);

assert_eq!(matches!(result, Cow::Borrowed(_)), borrowed);
}

#[test]
fn unescape_unicode_test() {
test_unescape_unicode("foo", "foo");
test_unescape_unicode("foo \\\\", "foo \\");
test_unescape_unicode("foo \\\"", "foo \"");
test_unescape_unicode("foo \\\\ faa", "foo \\ faa");
test_unescape_unicode("foo \\\\ faa \\\\ fii", "foo \\ faa \\ fii");
test_unescape_unicode("foo \\\\\\\" faa \\\"\\\\ fii", "foo \\\" faa \"\\ fii");
test_unescape_unicode("\\u0041\\u004F", "AO");
test_unescape_unicode("\\uA", "�");
test_unescape_unicode("\\uA0Pl", "�");
test_unescape_unicode("\\d Foo", "� Foo");
test_unescape_unicode("foo", "foo", true);
test_unescape_unicode("foo \\\\", "foo \\", false);
test_unescape_unicode("foo \\\"", "foo \"", false);
test_unescape_unicode("foo \\\\ faa", "foo \\ faa", false);
test_unescape_unicode("foo \\\\ faa \\\\ fii", "foo \\ faa \\ fii", false);
test_unescape_unicode(
"foo \\\\\\\" faa \\\"\\\\ fii",
"foo \\\" faa \"\\ fii",
false,
);
test_unescape_unicode("\\u0041\\u004F", "AO", false);
test_unescape_unicode("\\uA", "�", false);
test_unescape_unicode("\\uA0Pl", "�", false);
test_unescape_unicode("\\d Foo", "� Foo", false);
}

0 comments on commit 93b1ad7

Please sign in to comment.