Skip to content

Commit

Permalink
Issue #10348 Implement StringMozPreference, string preferences, WPT t…
Browse files Browse the repository at this point in the history
…ests

I'm not exactly sure of the wanted semantics with boolean values.
  • Loading branch information
amarant committed Apr 3, 2016
1 parent d35ae3b commit 95c077a
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 1 deletion.
3 changes: 3 additions & 0 deletions components/script/dom/testbinding.rs
Expand Up @@ -490,6 +490,9 @@ impl TestBindingMethods for TestBinding {
fn BooleanMozPreference(&self, pref_name: DOMString) -> bool {
get_pref(pref_name.as_ref()).as_boolean().unwrap_or(false)
}
fn StringMozPreference(&self, pref_name: DOMString) -> DOMString {
get_pref(pref_name.as_ref()).as_string().map(|s| DOMString::from(s)).unwrap_or_else(|| DOMString::new())
}
}

impl TestBinding {
Expand Down
1 change: 1 addition & 0 deletions components/script/dom/webidls/TestBinding.webidl
Expand Up @@ -400,4 +400,5 @@ interface TestBinding {
static attribute boolean booleanAttributeStatic;
static void receiveVoidStatic();
boolean BooleanMozPreference(DOMString pref_name);
DOMString StringMozPreference(DOMString pref_name);
};
9 changes: 8 additions & 1 deletion tests/wpt/mozilla/meta/mozilla/preferences.html.ini
@@ -1,3 +1,10 @@
[preferences.html]
type: testharness
prefs: [dom.testbinding.preference_value.falsy:false, dom.testbinding.preference_value.truthy:true]
prefs: [
dom.testbinding.preference_value.falsy:false,
dom.testbinding.preference_value.truthy:true,
dom.testbinding.preference_value.string_empty:,
dom.testbinding.preference_value.string_test:test,
dom.testbinding.preference_value.space_string_test:test1 test2,
dom.testbinding.preference_value.quote_string_test:"test1 test2",
]
9 changes: 9 additions & 0 deletions tests/wpt/mozilla/tests/mozilla/preferences.html
Expand Up @@ -9,5 +9,14 @@
assert_equals(typeof testBinding.BooleanMozPreference, "function");
assert_equals(testBinding.BooleanMozPreference("dom.testbinding.preference_value.falsy"), false);
assert_equals(testBinding.BooleanMozPreference("dom.testbinding.preference_value.truthy"), true);
assert_equals(testBinding.BooleanMozPreference("dom.testbinding.preference_value.string_test"), false);
assert_equals(testBinding.BooleanMozPreference("dom.testbinding.preference_value.string_empty"), false);
assert_equals(typeof testBinding.StringMozPreference, "function");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.string_test"), "test");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.string_empty"), "");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.falsy"), "");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.truthy"), "");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.space_string_test"), "test1 test2");
assert_equals(testBinding.StringMozPreference("dom.testbinding.preference_value.space_string_test"), "test1 test2");
}, "prefs");
</script>

0 comments on commit 95c077a

Please sign in to comment.