From c672d4804e161aeec92a69504434fae9e3810dc7 Mon Sep 17 00:00:00 2001 From: Jakub Pawlowicz Date: Mon, 20 Apr 2015 07:40:41 +0100 Subject: [PATCH] Fixes #534 - wrong block stringifying. Flat blocks (`@font-face`) were omitted when adding optimization metadata, thus an important attribute was incorrectly added. --- History.md | 5 +++++ lib/selectors/optimization-metadata.js | 1 + test/selectors/optimization-metadata-test.js | 7 +++++++ test/source-map-test.js | 8 ++++++++ 4 files changed, 21 insertions(+) diff --git a/History.md b/History.md index 6adba11d..0551b8b1 100644 --- a/History.md +++ b/History.md @@ -3,6 +3,11 @@ * Fixed issue [#436](https://github.com/jakubpawlowicz/clean-css/issues/436) - refactors URI rewriting. +[3.2.1 / 2015-xx-xx](https://github.com/jakubpawlowicz/clean-css/compare/v3.2.0...3.2) +================== + +* Fixed issue [#534](https://github.com/jakubpawlowicz/clean-css/issues/534) - wrong `@font-face` stringifying. + [3.2.0 / 2015-04-19](https://github.com/jakubpawlowicz/clean-css/compare/v3.1.9...v3.2.0) ================== diff --git a/lib/selectors/optimization-metadata.js b/lib/selectors/optimization-metadata.js index d5b469eb..a0b27a8a 100644 --- a/lib/selectors/optimization-metadata.js +++ b/lib/selectors/optimization-metadata.js @@ -10,6 +10,7 @@ function addOptimizationMetadata(tokens) { var token = tokens[i]; switch (token[0]) { + case 'flat-block': case 'selector': addToProperties(token[2]); break; diff --git a/test/selectors/optimization-metadata-test.js b/test/selectors/optimization-metadata-test.js index 15907b3a..fec289c7 100644 --- a/test/selectors/optimization-metadata-test.js +++ b/test/selectors/optimization-metadata-test.js @@ -26,6 +26,13 @@ vows.describe(addOptimizationMetadata) assert.deepEqual(tokens, [['selector', ['a'], [[['color', true, false], ['red']]] ]]); } }, + 'flat block': { + 'topic': [['flat-block', ['@font-face'], [[['font-family'], ['x']]] ]], + 'metadata': function (tokens) { + addOptimizationMetadata(tokens); + assert.deepEqual(tokens, [['flat-block', ['@font-face'], [[['font-family', false, false], ['x']]] ]]); + } + }, 'underscore hack': { 'topic': [['selector', ['a'], [[['_color'], ['red']]] ]], 'metadata': function (tokens) { diff --git a/test/source-map-test.js b/test/source-map-test.js index da4318b9..ec6c8f09 100644 --- a/test/source-map-test.js +++ b/test/source-map-test.js @@ -34,6 +34,14 @@ vows.describe('source-map') 'gets right output': function (minified) { assert.equal(minified.styles, 'a{background:linear-gradient(to bottom,rgba(0,0,0,.1) 0,rgba(0,0,0,.1))}'); } + }, + 'important': { + 'topic': function () { + return new CleanCSS({ sourceMap: true }).minify('@font-face{font-family:si}a{font-family:si!important}'); + }, + 'gets right output': function (minified) { + assert.equal(minified.styles, '@font-face{font-family:si}a{font-family:si!important}'); + } } }) .addBatch({ -- 2.34.1