layout/style/test/test_variable_serialization_computed.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/layout/style/test/test_variable_serialization_computed.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,76 @@
     1.4 +<!DOCTYPE html>
     1.5 +<title>Test serialization of computed CSS variable values</title>
     1.6 +<script src="/MochiKit/MochiKit.js"></script>
     1.7 +<script src="/tests/SimpleTest/SimpleTest.js"></script>
     1.8 +<link rel="stylesheet" href="/tests/SimpleTest/test.css" type="text/css">
     1.9 +
    1.10 +<div>
    1.11 +  <span></span>
    1.12 +</div>
    1.13 +
    1.14 +<script>
    1.15 +// Each entry is an entire declaration followed by the property to check and
    1.16 +// its expected computed value.
    1.17 +var values = [
    1.18 +  ["", "--z", "an-inherited-value"],
    1.19 +  ["--a: ", "--a", " "],
    1.20 +  ["--a: initial", "--a", ""],
    1.21 +  ["--z: initial", "--z", ""],
    1.22 +  ["--a: inherit", "--a", ""],
    1.23 +  ["--z: inherit", "--z", "an-inherited-value"],
    1.24 +  ["--a: unset", "--a", ""],
    1.25 +  ["--z: unset", "--z", "an-inherited-value"],
    1.26 +  ["--a: 1px", "--a", " 1px"],
    1.27 +  ["--a: var(--a)", "--a", ""],
    1.28 +  ["--a: var(--b)", "--a", ""],
    1.29 +  ["--a: var(--b); --b: 1px", "--a", "  1px"],
    1.30 +  ["--a: var(--b, 1px)", "--a", "  1px"],
    1.31 +  ["--a: var(--a, 1px)", "--a", ""],
    1.32 +  ["--a: something 3px url(whereever) calc(var(--a) + 1px)", "--a", ""],
    1.33 +  ["--a: something 3px url(whereever) calc(var(--b,1em) + 1px)", "--a", " something 3px url(whereever) calc(1em + 1px)"],
    1.34 +  ["--a: var(--b, var(--c, var(--d, Black)))", "--a", "    Black"],
    1.35 +  ["--a: a var(--b) c; --b:b", "--a", " a b c"],
    1.36 +  ["--a: a var(--b,b var(--c) d) e; --c:c", "--a", " a b c d e"],
    1.37 +  ["--a: var(--b)red; --b:orange;", "--a", " orange/**/red"],
    1.38 +  ["--a: var(--b)var(--c); --b:orange; --c:red;", "--a", " orange/**/red"],
    1.39 +  ["--a: var(--b)var(--c,red); --b:orange;", "--a", " orange/**/red"],
    1.40 +  ["--a: var(--b,orange)var(--c); --c:red;", "--a", " orange/**/red"],
    1.41 +  ["counter-reset: var(--a)red; --a:orange;", "counter-reset", "orange 0 red 0"],
    1.42 +  ["--a: var(--b)var(--c); --c:[c]; --b:('ab", "--a", " ('ab')[c]"],
    1.43 +  ["--a: '", "--a", " ''"],
    1.44 +  ["--a: '\\", "--a", " ''"],
    1.45 +  ["--a: \\", "--a", " \\\ufffd"],
    1.46 +  ["--a: \"", "--a", " \"\""],
    1.47 +  ["--a: \"\\", "--a", " \"\""],
    1.48 +  ["--a: /* abc ", "--a", " /* abc */"],
    1.49 +  ["--a: /* abc *", "--a", " /* abc */"],
    1.50 +  ["--a: url(http://example.org/", "--a", " url(http://example.org/)"],
    1.51 +  ["--a: url(http://example.org/\\", "--a", " url(http://example.org/\\\ufffd)"],
    1.52 +  ["--a: url('http://example.org/", "--a", " url('http://example.org/')"],
    1.53 +  ["--a: url('http://example.org/\\", "--a", " url('http://example.org/')"],
    1.54 +  ["--a: url(\"http://example.org/", "--a", " url(\"http://example.org/\")"],
    1.55 +  ["--a: url(\"http://example.org/\\", "--a", " url(\"http://example.org/\")"]
    1.56 +];
    1.57 +
    1.58 +function runTest() {
    1.59 +  var div = document.querySelector("div");
    1.60 +  var span = document.querySelector("span");
    1.61 +
    1.62 +  div.setAttribute("style", "--z:an-inherited-value");
    1.63 +
    1.64 +  values.forEach(function(entry, i) {
    1.65 +    var declaration = entry[0];
    1.66 +    var property = entry[1];
    1.67 +    var expected = entry[2];
    1.68 +    span.setAttribute("style", declaration);
    1.69 +    var cs = getComputedStyle(span, "");
    1.70 +    is(cs.getPropertyValue(property), expected, "subtest #" + i);
    1.71 +  });
    1.72 +
    1.73 +  SimpleTest.finish();
    1.74 +}
    1.75 +
    1.76 +SimpleTest.waitForExplicitFinish();
    1.77 +SpecialPowers.pushPrefEnv({ set: [["layout.css.variables.enabled", true]] },
    1.78 +                          runTest);
    1.79 +</script>

mercurial