From cf59be7f445255787533710d3564908c3a8d9f1e Mon Sep 17 00:00:00 2001 From: Alberto Leal Date: Wed, 25 Jan 2017 12:20:37 -0500 Subject: [PATCH] Fix text-overflow serialization. Fixes https://github.com/servo/servo/issues/15208 --- .../style/properties/longhand/text.mako.rs | 5 +++- tests/unit/style/parsing/mod.rs | 1 + tests/unit/style/parsing/text_overflow.rs | 24 +++++++++++++++++++ 3 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 tests/unit/style/parsing/text_overflow.rs diff --git a/components/style/properties/longhand/text.mako.rs b/components/style/properties/longhand/text.mako.rs index a7f78435425..a4325c7a0cc 100644 --- a/components/style/properties/longhand/text.mako.rs +++ b/components/style/properties/longhand/text.mako.rs @@ -18,6 +18,7 @@ use style_traits::ToCss; use values::NoViewportPercentage; use values::computed::ComputedValueAsSpecified; + use cssparser; impl ComputedValueAsSpecified for SpecifiedValue {} impl NoViewportPercentage for SpecifiedValue {} @@ -75,7 +76,9 @@ match *self { Side::Clip => dest.write_str("clip"), Side::Ellipsis => dest.write_str("ellipsis"), - Side::String(ref s) => dest.write_str(s) + Side::String(ref s) => { + cssparser::serialize_string(s, dest) + } } } } diff --git a/tests/unit/style/parsing/mod.rs b/tests/unit/style/parsing/mod.rs index 2521f5a9822..d011897da6b 100644 --- a/tests/unit/style/parsing/mod.rs +++ b/tests/unit/style/parsing/mod.rs @@ -78,3 +78,4 @@ mod mask; mod position; mod selectors; mod supports; +mod text_overflow; diff --git a/tests/unit/style/parsing/text_overflow.rs b/tests/unit/style/parsing/text_overflow.rs new file mode 100644 index 00000000000..d8c2a2323f4 --- /dev/null +++ b/tests/unit/style/parsing/text_overflow.rs @@ -0,0 +1,24 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +use cssparser::Parser; +use media_queries::CSSErrorReporterTest; +use style::parser::ParserContext; +use style::stylesheets::Origin; +use style_traits::ToCss; + +#[test] +fn test_text_overflow() { + use style::properties::longhands::text_overflow; + + assert_roundtrip_with_context!(text_overflow::parse, r#"clip"#); + assert_roundtrip_with_context!(text_overflow::parse, r#"ellipsis"#); + assert_roundtrip_with_context!(text_overflow::parse, r#"clip ellipsis"#); + assert_roundtrip_with_context!(text_overflow::parse, r#""x""#); + assert_roundtrip_with_context!(text_overflow::parse, r#"'x'"#, r#""x""#); + assert_roundtrip_with_context!(text_overflow::parse, r#"clip "x""#); + assert_roundtrip_with_context!(text_overflow::parse, r#""x" clip"#); + assert_roundtrip_with_context!(text_overflow::parse, r#""x" "y""#); + +}