From 95c077af4602da0a5c989ec9f02fa3560b784292 Mon Sep 17 00:00:00 2001 From: Arnaud Marant Date: Sat, 2 Apr 2016 13:05:04 +0200 Subject: [PATCH] Issue #10348 Implement StringMozPreference, string preferences, WPT tests I'm not exactly sure of the wanted semantics with boolean values. --- components/script/dom/testbinding.rs | 3 +++ components/script/dom/webidls/TestBinding.webidl | 1 + tests/wpt/mozilla/meta/mozilla/preferences.html.ini | 9 ++++++++- tests/wpt/mozilla/tests/mozilla/preferences.html | 9 +++++++++ 4 files changed, 21 insertions(+), 1 deletion(-) diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs index 41a1ff188b2..f69b844f4ed 100644 --- a/components/script/dom/testbinding.rs +++ b/components/script/dom/testbinding.rs @@ -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 { diff --git a/components/script/dom/webidls/TestBinding.webidl b/components/script/dom/webidls/TestBinding.webidl index 9047833bfa8..aec682bc307 100644 --- a/components/script/dom/webidls/TestBinding.webidl +++ b/components/script/dom/webidls/TestBinding.webidl @@ -400,4 +400,5 @@ interface TestBinding { static attribute boolean booleanAttributeStatic; static void receiveVoidStatic(); boolean BooleanMozPreference(DOMString pref_name); + DOMString StringMozPreference(DOMString pref_name); }; diff --git a/tests/wpt/mozilla/meta/mozilla/preferences.html.ini b/tests/wpt/mozilla/meta/mozilla/preferences.html.ini index 8b0c1df2aa3..69e87de33ec 100644 --- a/tests/wpt/mozilla/meta/mozilla/preferences.html.ini +++ b/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", + ] diff --git a/tests/wpt/mozilla/tests/mozilla/preferences.html b/tests/wpt/mozilla/tests/mozilla/preferences.html index c13df703637..c3f9c8f6b24 100644 --- a/tests/wpt/mozilla/tests/mozilla/preferences.html +++ b/tests/wpt/mozilla/tests/mozilla/preferences.html @@ -9,5 +9,14 @@ test(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.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");