Fixes an issue with incorrect source maps inside property blocks.
authorJakub Pawlowicz <contact@jakubpawlowicz.com>
Sun, 23 Nov 2014 10:31:28 +0000 (10:31 +0000)
committerJakub Pawlowicz <contact@jakubpawlowicz.com>
Mon, 8 Dec 2014 09:39:15 +0000 (09:39 +0000)
lib/utils/extractors.js
test/source-map-test.js

index 9575907..7ce9f07 100644 (file)
@@ -77,7 +77,7 @@ var Extractors = {
       if (addSourceMap)
         token.metadata = SourceMaps.saveAndTrack(all.join(''), context, false);
     } else if (all.indexOf('\n') > -1) {
-      SourceMaps.track(all.join('\n'), context);
+      SourceMaps.track(all.join(''), context);
     }
 
     return {
index 535f5bb..d02dacf 100644 (file)
@@ -205,6 +205,67 @@ vows.describe('source-map')
         assert.deepEqual(mapping, minified.sourceMap._mappings[2]);
       }
     },
+    'keyframes': {
+      'topic': new CleanCSS({ sourceMap: true }).minify('@-webkit-keyframes frames {\n  0% {\n    border: 1px;\n  }\n  100% {\n    border: 3px;\n  }\n}'),
+      'should have 5 mappings': function(minified) {
+        assert.equal(5, minified.sourceMap._mappings.length);
+      },
+      'should have _@keframes_ mapping': function (minified) {
+        var mapping = {
+          generatedLine: 1,
+          generatedColumn: 1,
+          originalLine: 1,
+          originalColumn: 1,
+          source: '__stdin__.css',
+          name: '@-webkit-keyframes frames'
+        };
+        assert.deepEqual(mapping, minified.sourceMap._mappings[0]);
+      },
+      'should have _0%_ mapping': function (minified) {
+        var mapping = {
+          generatedLine: 1,
+          generatedColumn: 27,
+          originalLine: 2,
+          originalColumn: 3,
+          source: '__stdin__.css',
+          name: '0%'
+        };
+        assert.deepEqual(mapping, minified.sourceMap._mappings[1]);
+      },
+      'should have _border:1px_ mapping': function (minified) {
+        var mapping = {
+          generatedLine: 1,
+          generatedColumn: 30,
+          originalLine: 3,
+          originalColumn: 5,
+          source: '__stdin__.css',
+          name: 'border:1px'
+        };
+        assert.deepEqual(mapping, minified.sourceMap._mappings[2]);
+      },
+      'should have _100%_ mapping': function (minified) {
+        var mapping = {
+          generatedLine: 1,
+          generatedColumn: 41,
+          originalLine: 5,
+          originalColumn: 3,
+          source: '__stdin__.css',
+          name: '100%'
+        };
+        assert.deepEqual(mapping, minified.sourceMap._mappings[3]);
+      },
+      'should have _border:3px_ mapping': function (minified) {
+        var mapping = {
+          generatedLine: 1,
+          generatedColumn: 46,
+          originalLine: 6,
+          originalColumn: 5,
+          source: '__stdin__.css',
+          name: 'border:3px'
+        };
+        assert.deepEqual(mapping, minified.sourceMap._mappings[4]);
+      }
+    }
   })
   .addBatch({
     'input map as string': {