Browse Source

Fix css offenders parsing when containing line breaks

Gaël Métais 10 years ago
parent
commit
137b4d25b9
2 changed files with 14 additions and 0 deletions
  1. 3 0
      lib/offendersHelpers.js
  2. 11 0
      test/core/offendersHelpersTest.js

+ 3 - 0
lib/offendersHelpers.js

@@ -151,6 +151,9 @@ var OffendersHelpers = function() {
     };
 
     this.cssOffenderPattern = function(offender) {
+        // Remove any line breaks
+        offender = offender.replace(/(\r\n|\n|\r)/gm, '');
+
         var parts = /^(.*) (?:<([^ \(]*)>|\[inline CSS\]) @ (\d+):(\d+)$/.exec(offender);
         
         if (!parts) {

+ 11 - 0
test/core/offendersHelpersTest.js

@@ -299,6 +299,17 @@ describe('offendersHelpers', function() {
             });
         });
 
+        it('should handle line breaks inside the string', function() {
+            var result = offendersHelpers.cssOffenderPattern('.card-mask-wrap { -moz-transform: translate3d(0, \n-288px\n, 0) } // was required by firefox 15 and earlier [inline CSS] @ 29:3');
+
+            result.should.deep.equal({
+                css: '.card-mask-wrap { -moz-transform: translate3d(0, -288px, 0) } // was required by firefox 15 and earlier',
+                file: null,
+                line: 29,
+                column: 3
+            });
+        }); 
+
     });
 
     describe('fileWithSizePattern', function() {