Issue #10348 Implement StringMozPreference, string preferences, WPT tests

I'm not exactly sure of the wanted semantics with boolean values.
This commit is contained in:
Arnaud Marant 2016-04-02 13:05:04 +02:00
parent d35ae3beb7
commit 95c077af46
4 changed files with 21 additions and 1 deletions

View file

@ -490,6 +490,9 @@ impl TestBindingMethods for TestBinding {
fn BooleanMozPreference(&self, pref_name: DOMString) -> bool { fn BooleanMozPreference(&self, pref_name: DOMString) -> bool {
get_pref(pref_name.as_ref()).as_boolean().unwrap_or(false) 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 { impl TestBinding {

View file

@ -400,4 +400,5 @@ interface TestBinding {
static attribute boolean booleanAttributeStatic; static attribute boolean booleanAttributeStatic;
static void receiveVoidStatic(); static void receiveVoidStatic();
boolean BooleanMozPreference(DOMString pref_name); boolean BooleanMozPreference(DOMString pref_name);
DOMString StringMozPreference(DOMString pref_name);
}; };

View file

@ -1,3 +1,10 @@
[preferences.html] [preferences.html]
type: testharness 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",
]

View file

@ -9,5 +9,14 @@ test(function() {
assert_equals(typeof testBinding.BooleanMozPreference, "function"); assert_equals(typeof testBinding.BooleanMozPreference, "function");
assert_equals(testBinding.BooleanMozPreference("dom.testbinding.preference_value.falsy"), false); 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.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"); }, "prefs");
</script> </script>