Fixes #390 - Merging of :fullscreen rules
authorsilverwind <silv3rwind@gmail.com>
Sun, 30 Nov 2014 23:22:56 +0000 (00:22 +0100)
committersilverwind <silv3rwind@gmail.com>
Sun, 30 Nov 2014 23:22:56 +0000 (00:22 +0100)
lib/utils/compatibility.js
test/integration-test.js
test/utils/compatibility-test.js

index 4ab79e6..17fbfb3 100644 (file)
@@ -13,7 +13,7 @@ var DEFAULTS = {
     },
     selectors: {
       ie7Hack: false, // *+html hack
-      special: /\-(moz|ms|o|webkit)\-/ // special selectors which prevent merging
+      special: /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:fullscreen)/ // special selectors which prevent merging
     },
     units: {
       rem: true
index 3aeee51..7be2cc0 100644 (file)
@@ -2084,6 +2084,24 @@ title']{display:block}",
       'body{background:#000}'
     ]
   }),
+  'merging of rules': cssContext({
+    'rules without pseudo classes should be merged': [
+      'a{color:red}b{color:red}',
+      'a,b{color:red}'
+    ],
+    'rules with standard pseudo classes should be merged': [
+      'a:focus{color:red}b{color:red}',
+      'a:focus,b{color:red}'
+    ],
+    'rules with prefixed pseudo classes should not be merged': [
+      'a:-moz-full-screen{color:red}b{color:red}',
+      'a:-moz-full-screen{color:red}b{color:red}'
+    ],
+    'rules with standard, but unimplemented pseudo classes should not be merged': [
+      'a:fullscreen{color:red}b{color:red}',
+      'a:fullscreen{color:red}b{color:red}'
+    ]
+  }),
   'complex granular properties': cssContext({
     'two granular properties': 'a{border-bottom:1px solid red;border-color:red}',
     'more understandable granular property should override less understandable': [
index e453312..d0f7324 100644 (file)
@@ -14,7 +14,7 @@ vows.describe(Compatibility)
         assert.isTrue(options.properties.merging);
         assert.isTrue(options.units.rem);
         assert.isTrue(options.colors.opacity);
-        assert.deepEqual(options.selectors.special, /\-(moz|ms|o|webkit)\-/);
+        assert.deepEqual(options.selectors.special, /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:fullscreen)/);
       }
     },
     'not given': {
@@ -33,7 +33,7 @@ vows.describe(Compatibility)
         assert.isTrue(options.properties.merging);
         assert.isFalse(options.units.rem);
         assert.isTrue(options.colors.opacity);
-        assert.deepEqual(options.selectors.special, /\-(moz|ms|o|webkit)\-/);
+        assert.deepEqual(options.selectors.special, /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:fullscreen)/);
       }
     }
   })
@@ -95,7 +95,7 @@ vows.describe(Compatibility)
         assert.isTrue(options.properties.merging);
         assert.isTrue(options.units.rem);
         assert.isTrue(options.colors.opacity);
-        assert.deepEqual(options.selectors.special, /\-(moz|ms|o|webkit)\-/);
+        assert.deepEqual(options.selectors.special, /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:fullscreen)/);
       }
     },
     'as a complex string value without group': {
@@ -108,7 +108,7 @@ vows.describe(Compatibility)
         assert.isTrue(options.properties.merging);
         assert.isFalse(options.units.rem);
         assert.isTrue(options.colors.opacity);
-        assert.deepEqual(options.selectors.special, /\-(moz|ms|o|webkit)\-/);
+        assert.deepEqual(options.selectors.special, /(\-moz\-|\-ms\-|\-o\-|\-webkit\-|:fullscreen)/);
       }
     }
   })