collapseBoolean case-sensitivity
authorDuncan Beevers <duncan@dweebd.com>
Sun, 24 Aug 2014 10:18:58 +0000 (05:18 -0500)
committerDuncan Beevers <duncan@dweebd.com>
Sun, 24 Aug 2014 10:18:58 +0000 (05:18 -0500)
src/htmlminifier.js
tests/minifier.js

index 0ec98b5..c680dac 100644 (file)
   }
 
   function isBooleanAttribute(attrName) {
-    return (/^(?:allowfullscreen|async|autofocus|autoplay|checked|compact|controls|declare|default|defaultchecked|defaultmuted|defaultselected|defer|disabled|draggable|enabled|formnovalidate|hidden|indeterminate|inert|ismap|itemscope|loop|multiple|muted|nohref|noresize|noshade|novalidate|nowrap|open|pauseonexit|readonly|required|reversed|scoped|seamless|selected|sortable|spellcheck|truespeed|typemustmatch|visible)$/).test(attrName);
+    return (/^(?:allowfullscreen|async|autofocus|autoplay|checked|compact|controls|declare|default|defaultchecked|defaultmuted|defaultselected|defer|disabled|draggable|enabled|formnovalidate|hidden|indeterminate|inert|ismap|itemscope|loop|multiple|muted|nohref|noresize|noshade|novalidate|nowrap|open|pauseonexit|readonly|required|reversed|scoped|seamless|selected|sortable|spellcheck|truespeed|typemustmatch|visible)$/i).test(attrName);
   }
 
   function isUriTypeAttribute(attrName, tag) {
index 93fa1f6..27d1be4 100644 (file)
 
     input = '<input multiple="multiple">';
     equal(minify(input, { collapseBooleanAttributes: true }), '<input multiple>');
+
+    input = '<div Allowfullscreen=foo Async=foo Autofocus=foo Autoplay=foo Checked=foo Compact=foo Controls=foo ' +
+      'Declare=foo Default=foo Defaultchecked=foo Defaultmuted=foo Defaultselected=foo Defer=foo Disabled=foo ' +
+      'Draggable=foo Enabled=foo Formnovalidate=foo Hidden=foo Indeterminate=foo Inert=foo Ismap=foo Itemscope=foo ' +
+      'Loop=foo Multiple=foo Muted=foo Nohref=foo Noresize=foo Noshade=foo Novalidate=foo Nowrap=foo Open=foo ' +
+      'Pauseonexit=foo Readonly=foo Required=foo Reversed=foo Scoped=foo Seamless=foo Selected=foo Sortable=foo ' +
+      'Spellcheck=foo Truespeed=foo Typemustmatch=foo Visible=foo></div>';
+    output = '<div Allowfullscreen Async Autofocus Autoplay Checked Compact Controls Declare Default Defaultchecked ' +
+      'Defaultmuted Defaultselected Defer Disabled Draggable Enabled Formnovalidate Hidden Indeterminate Inert ' +
+      'Ismap Itemscope Loop Multiple Muted Nohref Noresize Noshade Novalidate Nowrap Open Pauseonexit Readonly ' +
+      'Required Reversed Scoped Seamless Selected Sortable Spellcheck Truespeed Typemustmatch Visible></div>';
+    equal(minify(input, { collapseBooleanAttributes: true, caseSensitive: true }), output);
   });
 
   test('keeping trailing slashes in tags', function() {