Skip to content

Commit 37b7bef

Browse files
committed
Verify that the crate works with unic-langid and unic-locale
1 parent 696be79 commit 37b7bef

File tree

3 files changed

+29
-11
lines changed

3 files changed

+29
-11
lines changed

Cargo.toml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,10 @@ coveralls = { repository = "projectfluent/fluent-locale-rs", branch = "master",
1919
maintenance = { status = "actively-developed" }
2020

2121
[dependencies]
22-
unic-langid = { path = "../../unic-locale/unic-langid" }
22+
unic-langid = "^0.3.0"
2323

2424
[dev-dependencies]
2525
serde = "^1.0"
2626
serde_json = "^1.0"
2727
serde_derive = "^1.0"
28+
unic-locale = "^0.3.0"

src/negotiate/mod.rs

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
//!
1313
//! ```
1414
//! use std::convert::TryFrom;
15-
//!
15+
//!
1616
//! use fluent_locale::negotiate_languages;
1717
//! use fluent_locale::NegotiationStrategy;
1818
//! use fluent_locale::convert_vec_str_to_langids;
@@ -339,8 +339,5 @@ pub fn negotiate_languages<
339339
}
340340

341341
pub fn convert_vec_str_to_langids(input: &[&str]) -> Vec<LanguageIdentifier> {
342-
input
343-
.iter()
344-
.filter_map(|t| (*t).try_into().ok())
345-
.collect()
342+
input.iter().filter_map(|t| (*t).try_into().ok()).collect()
346343
}

tests/lib.rs

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use std::convert::TryInto;
1+
use std::convert::{TryFrom, TryInto};
22
use std::error::Error;
33
use std::fs;
44
use std::fs::File;
@@ -8,6 +8,7 @@ use fluent_locale::negotiate::negotiate_languages;
88
use fluent_locale::negotiate::NegotiationStrategy;
99
use fluent_locale::parse_accepted_languages;
1010
use unic_langid::LanguageIdentifier;
11+
use unic_locale::Locale;
1112

1213
#[macro_use]
1314
extern crate serde_derive;
@@ -69,19 +70,19 @@ fn test_negotiate_fixtures(path: &str) {
6970
}
7071
NegotiateTestInput::Default(requested, available, default) => {
7172
let requested: Vec<LanguageIdentifier> =
72-
dbg!(requested.iter().map(|v| v.try_into().unwrap()).collect());
73+
requested.iter().map(|v| v.try_into().unwrap()).collect();
7374
let available: Vec<LanguageIdentifier> =
74-
dbg!(available.iter().map(|v| v.try_into().unwrap()).collect());
75+
available.iter().map(|v| v.try_into().unwrap()).collect();
7576
let output: Vec<LanguageIdentifier> =
7677
test.output.iter().map(|v| v.try_into().unwrap()).collect();
7778
let output2: Vec<&LanguageIdentifier> = output.iter().map(|t| t.as_ref()).collect();
7879
assert_eq!(
79-
dbg!(negotiate_languages(
80+
negotiate_languages(
8081
&requested,
8182
&available,
8283
default.try_into().ok().as_ref(),
8384
strategy
84-
)),
85+
),
8586
output2,
8687
"Test in {} failed",
8788
path
@@ -135,3 +136,22 @@ fn accepted_languages() {
135136
assert_eq!(output, locales);
136137
}
137138
}
139+
140+
#[test]
141+
fn locale_matching() {
142+
let loc_en_us = Locale::try_from("en-US-u-hc-h12").expect("Parsing failed.");
143+
let loc_de_at = Locale::try_from("de-AT-u-hc-h24").expect("Parsing failed.");
144+
let loc_en = Locale::try_from("en-u-ca-buddhist").expect("Parsing failed.");
145+
let loc_de = Locale::try_from("de").expect("Parsing failed.");
146+
let loc_pl = Locale::try_from("pl-x-private").expect("Parsing failed.");
147+
148+
assert_eq!(
149+
negotiate_languages(
150+
vec![&loc_en_us, &loc_de_at],
151+
vec![&loc_pl, &loc_de, &loc_en],
152+
None,
153+
NegotiationStrategy::Matching
154+
),
155+
vec![&loc_en, &loc_de],
156+
);
157+
}

0 commit comments

Comments
 (0)