| <!DOCTYPE html> |
| <html> |
| <head> |
| <style type="text/css"> |
| /* Valid viewport syntax with no properties. */ |
| @-webkit-viewport { |
| } |
| |
| /* Shorthands should be evaluated to the respective attributes. */ |
| @-webkit-viewport { |
| width: 400px 500px; |
| height: 200px 300px; |
| } |
| |
| /* Shorthands with single value should assume this value for min and max. */ |
| @-webkit-viewport { |
| width: 500px; |
| height: 300px; |
| } |
| |
| /* Shorthands should override properties if defined later. */ |
| @-webkit-viewport { |
| min-width: 100px; |
| min-width: 100px; |
| max-height: 100px; |
| max-height: 100px; |
| width: 500px; |
| height: 300px; |
| } |
| |
| /* All valid properties with valid initial values. */ |
| @-webkit-viewport { |
| min-width: auto; |
| max-width: auto; |
| min-height: auto; |
| max-height: auto; |
| min-zoom: auto; |
| max-zoom: auto; |
| orientation: auto; |
| user-zoom: zoom; |
| zoom: auto; |
| } |
| |
| /* All valid properties with valid values. */ |
| @-webkit-viewport { |
| min-width: 50%; |
| max-width: 100px; |
| min-height: device-width; |
| max-height: device-height; |
| min-zoom: 50%; |
| max-zoom: 0.5; |
| orientation: landscape; |
| user-zoom: fixed; |
| zoom: 0.6; |
| } |
| |
| /* All valid properties with invalid initial values. Should be empty. */ |
| @-webkit-viewport { |
| min-width: zoom; |
| max-width: fixed; |
| min-height: landscape; |
| max-height: portrait; |
| min-zoom: 10px; |
| max-zoom: 50px; |
| orientation: 50%; |
| user-zoom: auto; |
| zoom: device-height; |
| } |
| |
| /* Negative numbers should be dropped on zoom. */ |
| @-webkit-viewport { |
| min-zoom: -1; |
| max-zoom: -0.5; |
| zoom: -0.6; |
| } |
| |
| /* Viewport attributes inside selectors should be dropped. */ |
| .foo { |
| min-zoom: auto; |
| max-zoom: auto; |
| orientation: auto; |
| user-zoom: zoom; |
| zoom: auto; |
| } |
| |
| /* Invalid attributes among valid should be dropped. */ |
| @-webkit-viewport { |
| font-family: sans-serif; |
| min-width: device-width; |
| max-width: device-height; |
| foo: auto; |
| min-height: 500px; |
| max-height: 50%; |
| text-indent: 0; |
| min-zoom: 0.5; |
| max-zoom: 50%; |
| orientation: portrait; |
| color: red; |
| user-zoom: zoom; |
| zoom: 60%; |
| letter-spacing: 0.5em; |
| } |
| </style> |
| <meta charset="utf-8" /> |
| <link rel="help" href="http://www.w3.org/TR/css-device-adapt/#syntax" /> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script type="text/javascript"> |
| var rules = document.styleSheets[0].cssRules; |
| |
| test(function() { |
| assert_equals(rules.item(0).cssText, "@-webkit-viewport { }"); |
| }, "Rule with no attributes"); |
| |
| test(function() { |
| assert_equals(rules.item(1).cssText, |
| "@-webkit-viewport {" + |
| " min-width: 400px;" + |
| " max-width: 500px;" + |
| " min-height: 200px;" + |
| " max-height: 300px; }"); |
| }, "Shorthands with double value"); |
| |
| test(function() { |
| assert_equals(rules.item(2).cssText, |
| "@-webkit-viewport {" + |
| " min-width: 500px;" + |
| " max-width: 500px;" + |
| " min-height: 300px;" + |
| " max-height: 300px; }"); |
| }, "Shorthands with single value"); |
| |
| test(function() { |
| assert_equals(rules.item(3).cssText, |
| "@-webkit-viewport {" + |
| " min-width: 500px;" + |
| " max-width: 500px;" + |
| " min-height: 300px;" + |
| " max-height: 300px; }"); |
| }, "Shorthands should override properties if defined later"); |
| |
| test(function() { |
| assert_equals(rules.item(4).cssText, |
| "@-webkit-viewport {" + |
| " min-width: auto;" + |
| " max-width: auto;" + |
| " min-height: auto;" + |
| " max-height: auto;" + |
| " min-zoom: auto;" + |
| " max-zoom: auto;" + |
| " orientation: auto;" + |
| " user-zoom: zoom;" + |
| " zoom: auto; }"); |
| }, "All valid properties with valid intial values"); |
| |
| test(function() { |
| assert_equals(rules.item(5).cssText, |
| "@-webkit-viewport {" + |
| " min-width: 50%;" + |
| " max-width: 100px;" + |
| " min-height: device-width;" + |
| " max-height: device-height;" + |
| " min-zoom: 50%;" + |
| " max-zoom: 0.5;" + |
| " orientation: landscape;" + |
| " user-zoom: fixed;" + |
| " zoom: 0.6; }"); |
| }, "All valid properties with valid values"); |
| |
| test(function() { |
| assert_equals(rules.item(6).cssText, "@-webkit-viewport { }"); |
| }, "All valid properties with invalid intial values"); |
| |
| test(function() { |
| assert_equals(rules.item(7).cssText, "@-webkit-viewport { }"); |
| }, "Negative numbers should be dropped on zoom attribute"); |
| |
| test(function() { |
| assert_equals(rules.item(8).cssText, ".foo { }"); |
| }, "Viewport attributes inside selectors should be dropped"); |
| |
| test(function() { |
| assert_equals(rules.item(9).cssText, |
| "@-webkit-viewport {" + |
| " min-width: device-width;" + |
| " max-width: device-height;" + |
| " min-height: 500px;" + |
| " max-height: 50%;" + |
| " min-zoom: 0.5;" + |
| " max-zoom: 50%;" + |
| " orientation: portrait;" + |
| " user-zoom: zoom;" + |
| " zoom: 60%; }"); |
| }, "Invalid attributes among valid should be dropped"); |
| </script> |
| </head> |
| <body> |
| <div id="log"></div> |
| </body> |
| </html> |