Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/twbs/mq4-hover-shim.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorChris Rebert <code@rebertia.com>2015-01-19 03:57:41 +0300
committerChris Rebert <code@rebertia.com>2015-01-19 03:57:41 +0300
commit9d035dd8ce8301982f3f28b6017625c29f0f59da (patch)
tree18317c4ef659c9e6a1bb3f86261cfffe15429dbc /test
parent2ee4471b3df5e924109d22461b8c67432322116d (diff)
Fix handling of media-type-only media queries
@media print {...} (& similar) were making us crash.
Diffstat (limited to 'test')
-rw-r--r--test/postprocessor_test.js46
1 files changed, 43 insertions, 3 deletions
diff --git a/test/postprocessor_test.js b/test/postprocessor_test.js
index 715706c..2878ed6 100644
--- a/test/postprocessor_test.js
+++ b/test/postprocessor_test.js
@@ -41,20 +41,36 @@ exports.mq4HoverShim = {
);
test.done();
},
- 'skips media queries with ORs': function (test) {
+ 'skips media queries with only a media type': function (test) {
test.expect(1);
test.deepEqual(
+ postprocessor.process("@media screen { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen { .foobar { display: none; } }"
+ );
+ test.done();
+ },
+ 'skips media queries with ORs': function (test) {
+ test.expect(2);
+ test.deepEqual(
postprocessor.process("@media (hover: hover), (orientation: landscape) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
"@media (hover: hover), (orientation: landscape) { .foobar { display: none; } }"
);
+ test.deepEqual(
+ postprocessor.process("@media screen (hover: hover), (orientation: landscape) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen (hover: hover), (orientation: landscape) { .foobar { display: none; } }"
+ );
test.done();
},
'skips media queries with ANDs': function (test) {
- test.expect(1);
+ test.expect(2);
test.deepEqual(
postprocessor.process("@media (hover: hover) and (orientation: landscape) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
"@media (hover: hover) and (orientation: landscape) { .foobar { display: none; } }"
);
+ test.deepEqual(
+ postprocessor.process("@media screen (hover: hover) and (orientation: landscape) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen (hover: hover) and (orientation: landscape) { .foobar { display: none; } }"
+ );
test.done();
},
'skips media queries that are not about the hover media feature': function (test) {
@@ -86,15 +102,39 @@ exports.mq4HoverShim = {
test.done();
},
'handles nested at-rules': function (test) {
- test.expect(2);
+ test.expect(4);
test.deepEqual(
postprocessor.process("@media (orientation: landscape) { @media (hover: hover) { .foobar { display: none; } } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
"@media (orientation: landscape) { PREFIX>.foobar { display: none; } }"
);
test.deepEqual(
+ postprocessor.process("@media screen (orientation: landscape) { @media (hover: hover) { .foobar { display: none; } } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen (orientation: landscape) { PREFIX>.foobar { display: none; } }"
+ );
+ test.deepEqual(
postprocessor.process("@media (hover: hover) { @media (orientation: landscape) { .foobar { display: none; } } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
"@media (orientation: landscape) {\n PREFIX>.foobar {\n display: none;\n }\n}"
);
+ test.deepEqual(
+ postprocessor.process("@media (hover: hover) { @media screen (orientation: landscape) { .foobar { display: none; } } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen (orientation: landscape) {\n PREFIX>.foobar {\n display: none;\n }\n}"
+ );
+ test.done();
+ },
+ 'handles applicable media types': function (test) {
+ test.expect(1);
+ test.deepEqual(
+ postprocessor.process("@media screen (hover: hover) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ "@media screen { PREFIX>.foobar { display: none; } }"
+ );
+ test.done();
+ },
+ 'handles non-applicable media types': function (test) {
+ test.expect(1);
+ test.deepEqual(
+ postprocessor.process("@media print (hover: hover) { .foobar { display: none; } }", {hoverSelectorPrefix: 'PREFIX>'}).css,
+ ""
+ );
test.done();
},
'errors when hoverSelectorPrefix is not provided': function (test) {