layout/style/test/test_css_supports_variables.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/layout/style/test/test_css_supports_variables.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,248 @@
     1.4 +<!DOCTYPE HTML>
     1.5 +<html>
     1.6 +<!--
     1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=773296
     1.8 +-->
     1.9 +<head>
    1.10 +  <title>Test for Bug 773296</title>
    1.11 +  <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    1.12 +  <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
    1.13 +</head>
    1.14 +<body>
    1.15 +<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=773296">Mozilla Bug 773296</a>
    1.16 +<p id="display"></p>
    1.17 +<div id="content" style="display: none">
    1.18 +
    1.19 +</div>
    1.20 +<pre id="test">
    1.21 +<script type="application/javascript">
    1.22 +
    1.23 +/** Test for Bug 773296 **/
    1.24 +
    1.25 +function runTest()
    1.26 +{
    1.27 +  var passingConditions = [
    1.28 +    "(color:var(--a))",
    1.29 +    "(color: var(--a))",
    1.30 +    "(color: var(--a) )",
    1.31 +    "(color: var( --a ) )",
    1.32 +    "(color: var(--a, ))",
    1.33 +    "(color: var(--))",
    1.34 +    "(color: var(--a,/**/a))",
    1.35 +    "(color: 1px var(--a))",
    1.36 +    "(color: var(--a) 1px)",
    1.37 +    "(color: something 3px url(whereever) calc(var(--a) + 1px))",
    1.38 +    "(color: var(--a) !important)",
    1.39 +    "(color: var(--a)var(--b))",
    1.40 +    "(color: var(--a, var(--b, var(--c, black))))",
    1.41 +    "(color: var(--a) <!--)",
    1.42 +    "(color: --> var(--a))",
    1.43 +    "(color: { [ var(--a) ] })",
    1.44 +    "(color: [;] var(--a))",
    1.45 +    "(color: var(--a,(;)))",
    1.46 +    "(color: VAR(--a))",
    1.47 +    "(color: var(--0))",
    1.48 +    "(color: var(--\\30))",
    1.49 +    "(color: var(--\\d800))",
    1.50 +    "(color: var(--\\ffffff))",
    1.51 +    "(color: var(--",
    1.52 +    "(color: var(--a",
    1.53 +    "(color: var(--a , ",
    1.54 +    "(color: var(--a, ",
    1.55 +    "(color: var(--a, var(--b",
    1.56 +    "(color: var(--a /* unclosed comment",
    1.57 +    "(color: var(--a, '",
    1.58 +    "(color: var(--a, '\\",
    1.59 +    "(color: var(--a, \\",
    1.60 +
    1.61 +    "(--a:var(--b))",
    1.62 +    "(--a: var(--b))",
    1.63 +    "(--a: var(--b) )",
    1.64 +    "(--a: var( --b ) )",
    1.65 +    "(--a: var(--b, ))",
    1.66 +    "(--a: var(--b,/**/a))",
    1.67 +    "(--a: 1px var(--b))",
    1.68 +    "(--a: var(--b) 1px)",
    1.69 +    "(--a: something 3px url(whereever) calc(var(--b) + 1px))",
    1.70 +    "(--a: var(--b) !important)",
    1.71 +    "(--a: var(--b)var(--b))",
    1.72 +    "(--a: var(--b, var(--c, var(--d, black))))",
    1.73 +    "(--a: var(--b) <!--)",
    1.74 +    "(--a: --> var(--b))",
    1.75 +    "(--a: { [ var(--b) ] })",
    1.76 +    "(--a: [;] var(--b))",
    1.77 +    "(--a: )",
    1.78 +    "(--a:var(--a))",
    1.79 +    "(--0: a)",
    1.80 +    "(--\\30: a)",
    1.81 +    "(--\\61: a)",
    1.82 +    "(--\\d800: a)",
    1.83 +    "(--\\ffffff: a)",
    1.84 +    "(--\0: 1)",
    1.85 +    "(--a: ",
    1.86 +    "(--a: /* unclosed comment",
    1.87 +    "(--a: var(--b",
    1.88 +    "(--a: var(--b, ",
    1.89 +    "(--a: var(--b, var(--c",
    1.90 +    "(--a: [{(((",
    1.91 +    "(--a: '",
    1.92 +    "(--a: '\\",
    1.93 +    "(--a: \\",
    1.94 +    "(--: a)",
    1.95 +  ];
    1.96 +
    1.97 +  var failingConditions = [
    1.98 +    "(color: var(--a,))",
    1.99 +    "(color: var(--a,/**/))",
   1.100 +    "(color: var(--a,!))",
   1.101 +    "(color: var(--a,!important))",
   1.102 +    "(color: var(--a) !important !important)",
   1.103 +    "(color: var(--a,;))",
   1.104 +    "(color: var(--a);)",
   1.105 +    "(color: var(1px))",
   1.106 +    "(color: var(--a)))",
   1.107 +    "(color: var(--a) \"\n",
   1.108 +    "(color: var(--a) url(\"\n",
   1.109 +    "(color: var(a))",
   1.110 +
   1.111 +    "(--a: var(--b,))",
   1.112 +    "(--a: var(--b,/**/))",
   1.113 +    "(--a: var(--b,!))",
   1.114 +    "(--a: var(--b,!important))",
   1.115 +    "((--a: var(--b) !important !important))",
   1.116 +    "(--a: var(--b,;))",
   1.117 +    "(--a: var(--b);)",
   1.118 +    "(--a:)",
   1.119 +    "(--a: var(1px))",
   1.120 +    "(--a: a))",
   1.121 +    "(--a: \"\n",
   1.122 +    "(--a: url(\"\n",
   1.123 +    "(--a: var(a))",
   1.124 +  ];
   1.125 +
   1.126 +  var passingDeclarations = [
   1.127 +    ["color", "var(--a)"],
   1.128 +    ["color", " var(--a)"],
   1.129 +    ["color", "var(--a) "],
   1.130 +    ["color", "var( --a ) "],
   1.131 +    ["color", "var(--a, )"],
   1.132 +    ["color", "var(--a,/**/a)"],
   1.133 +    ["color", "1px var(--a)"],
   1.134 +    ["color", "var(--a) 1px"],
   1.135 +    ["color", "something 3px url(whereever) calc(var(--a) + 1px)"],
   1.136 +    ["color", "var(--a)var(--b)"],
   1.137 +    ["color", "var(--a, var(--b, var(--c, black)))"],
   1.138 +    ["color", "var(--a) <!--"],
   1.139 +    ["color", "--> var(--a)"],
   1.140 +    ["color", "{ [ var(--a) ] }"],
   1.141 +    ["color", "[;] var(--a)"],
   1.142 +    ["color", "var(--a,(;))"],
   1.143 +    ["color", "VAR(--a)"],
   1.144 +    ["color", "var(--0)"],
   1.145 +    ["color", "var(--\\30)"],
   1.146 +    ["color", "var(--\\d800)"],
   1.147 +    ["color", "var(--\\ffffff)"],
   1.148 +    ["color", "var(--a"],
   1.149 +    ["color", "var(--a , "],
   1.150 +    ["color", "var(--a, "],
   1.151 +    ["color", "var(--a, var(--b"],
   1.152 +    ["color", "var(--a /* unclosed comment"],
   1.153 +    ["color", "var(--a, '"],
   1.154 +    ["color", "var(--a, '\\"],
   1.155 +    ["color", "var(--a, \\"],
   1.156 +    ["color", "var(--"],
   1.157 +
   1.158 +    ["--a", " var(--b)"],
   1.159 +    ["--a", "var(--b)"],
   1.160 +    ["--a", "var(--b) "],
   1.161 +    ["--a", "var( --b ) "],
   1.162 +    ["--a", "var(--b, )"],
   1.163 +    ["--a", "var(--b,/**/a)"],
   1.164 +    ["--a", "1px var(--b)"],
   1.165 +    ["--a", "var(--b) 1px"],
   1.166 +    ["--a", "something 3px url(whereever) calc(var(--b) + 1px)"],
   1.167 +    ["--a", "var(--b)var(--b)"],
   1.168 +    ["--a", "var(--b, var(--c, var(--d, black)))"],
   1.169 +    ["--a", "var(--b) <!--"],
   1.170 +    ["--a", "--> var(--b)"],
   1.171 +    ["--a", "{ [ var(--b) ] }"],
   1.172 +    ["--a", "[;] var(--b)"],
   1.173 +    ["--a", " "],
   1.174 +    ["--a", "var(--a)"],
   1.175 +    ["--0", "a"],
   1.176 +    ["--\\30", "a"],
   1.177 +    ["--\\61", "a"],
   1.178 +    ["--\\d800", "a"],
   1.179 +    ["--\\ffffff", "a"],
   1.180 +    ["--\0", "a"],
   1.181 +    ["--\ud800", "a"],
   1.182 +    ["--a", "a /* unclosed comment"],
   1.183 +    ["--a", "var(--b"],
   1.184 +    ["--a", "var(--b, "],
   1.185 +    ["--a", "var(--b, var(--c"],
   1.186 +    ["--a", "[{((("],
   1.187 +    ["--a ", "a"],
   1.188 +    ["--a ", "'"],
   1.189 +    ["--a ", "'\\"],
   1.190 +    ["--a ", "\\"],
   1.191 +    ["--", "a"],
   1.192 +  ];
   1.193 +
   1.194 +  var failingDeclarations = [
   1.195 +    ["color", "var(--a,)"],
   1.196 +    ["color", "var(--a,/**/)"],
   1.197 +    ["color", "var(--a,!)"],
   1.198 +    ["color", "var(--a,!important)"],
   1.199 +    ["color", "var(--a,;)"],
   1.200 +    ["color", "var(--a);"],
   1.201 +    ["color", "var(1px)"],
   1.202 +    ["color", "var(--a))"],
   1.203 +    ["color", "var(--a) \"\n"],
   1.204 +    ["color", "var(--a) url(\"\n"],
   1.205 +    ["color", "var(--a) !important"],
   1.206 +    ["color", "var(--a) !important !important"],
   1.207 +    ["color", "var(a)"],
   1.208 +
   1.209 +    ["--a", "var(--b,)"],
   1.210 +    ["--a", "var(--b,/**/)"],
   1.211 +    ["--a", "var(--b,!)"],
   1.212 +    ["--a", "var(--b,!important)"],
   1.213 +    ["--a", "var(--b) !important !important"],
   1.214 +    ["--a", "var(--b,;)"],
   1.215 +    ["--a", "var(--b);"],
   1.216 +    ["--a", ""],
   1.217 +    ["--a", "var(1px)"],
   1.218 +    ["(VAR-a", "a"],
   1.219 +    ["--a", "a)"],
   1.220 +    ["--a", "\"\n"],
   1.221 +    ["--a", "url(\"\n"],
   1.222 +    ["--a", "var(--b))"],
   1.223 +    ["--a", "var(b)"],
   1.224 +  ];
   1.225 +
   1.226 +  passingConditions.forEach(function(aCondition) {
   1.227 +    is(CSS.supports(aCondition), true, "CSS.supports returns true for passing condition \"" + aCondition + "\"");
   1.228 +  });
   1.229 +
   1.230 +  failingConditions.forEach(function(aCondition) {
   1.231 +    is(CSS.supports(aCondition), false, "CSS.supports returns false for failing condition \"" + aCondition + "\"");
   1.232 +  });
   1.233 +
   1.234 +  passingDeclarations.forEach(function(aDeclaration) {
   1.235 +    is(CSS.supports(aDeclaration[0], aDeclaration[1]), true, "CSS.supports returns true for supported declaration \"" + aDeclaration.join(":") + "\"");
   1.236 +  });
   1.237 +
   1.238 +  failingDeclarations.forEach(function(aDeclaration) {
   1.239 +    is(CSS.supports(aDeclaration[0], aDeclaration[1]), false, "CSS.supports returns false for unsupported declaration \"" + aDeclaration.join(":") + "\"");
   1.240 +  });
   1.241 +
   1.242 +  SimpleTest.finish();
   1.243 +}
   1.244 +
   1.245 +SimpleTest.waitForExplicitFinish();
   1.246 +SpecialPowers.pushPrefEnv({ "set": [["layout.css.supports-rule.enabled", true],
   1.247 +                                    ["layout.css.variables.enabled", true]] }, runTest);
   1.248 +</script>
   1.249 +</pre>
   1.250 +</body>
   1.251 +</html>

mercurial