From 926cc5294bec9520a1e0693d8ad5128fed3ff067 Mon Sep 17 00:00:00 2001 From: streichgeorg Date: Sun, 26 Mar 2017 14:56:23 -0700 Subject: [PATCH] servo: Merge #16136 - to_css of counter-increment returns none when there are no properties (from streichgeorg:counter); r=emilio Changed to_css in style::properties::longhands::counter_increment returns "none" if there are no properties defined. --- - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #15977 (github issue number if applicable). - [X] There are tests for these changes OR - [ ] These changes do not require tests because _____ Source-Repo: https://github.com/servo/servo Source-Revision: f4371dfa0231282ef4dfa47bdfc6d31fa5ce1a0d --HG-- extra : subtree_source : https%3A//hg.mozilla.org/projects/converted-servo-linear extra : subtree_revision : c09d2af0d5eabc68a48798e40d08bf2a03425ba3 --- .../properties/longhand/counters.mako.rs | 5 ++++ .../unit/style/properties/serialization.rs | 26 +++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/servo/components/style/properties/longhand/counters.mako.rs b/servo/components/style/properties/longhand/counters.mako.rs index f6b8173c610c..c4bbba8785a5 100644 --- a/servo/components/style/properties/longhand/counters.mako.rs +++ b/servo/components/style/properties/longhand/counters.mako.rs @@ -269,6 +269,10 @@ impl ToCss for SpecifiedValue { fn to_css(&self, dest: &mut W) -> fmt::Result where W: fmt::Write { + if self.0.is_empty() { + return dest.write_str("none"); + } + let mut first = true; for pair in &self.0 { if !first { @@ -278,6 +282,7 @@ try!(serialize_identifier(&pair.0, dest)); try!(write!(dest, " {}", pair.1)); } + Ok(()) } } diff --git a/servo/tests/unit/style/properties/serialization.rs b/servo/tests/unit/style/properties/serialization.rs index c95ae49cf7ed..73fdf184584e 100644 --- a/servo/tests/unit/style/properties/serialization.rs +++ b/servo/tests/unit/style/properties/serialization.rs @@ -1170,4 +1170,30 @@ mod shorthand_serialization { assert_eq!(shadow.to_css_string(), shadow_css); } } + + mod counter_increment { + pub use super::*; + pub use style::properties::longhands::counter_increment::SpecifiedValue as CounterIncrement; + + #[test] + fn counter_increment_with_properties_should_serialize_correctly() { + let mut properties = Vec::new(); + + properties.push(("counter1".to_owned(), 1)); + properties.push(("counter2".to_owned(), -4)); + + let counter_increment = CounterIncrement(properties); + let counter_increment_css = "counter1 1 counter2 -4"; + + assert_eq!(counter_increment.to_css_string(), counter_increment_css); + } + + #[test] + fn counter_increment_without_properties_should_serialize_correctly() { + let counter_increment = CounterIncrement(Vec::new()); + let counter_increment_css = "none"; + + assert_eq!(counter_increment.to_css_string(), counter_increment_css); + } + } }