content/base/test/test_bug338679.html

changeset 0
6474c204b198
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/content/base/test/test_bug338679.html	Wed Dec 31 06:09:35 2014 +0100
     1.3 @@ -0,0 +1,78 @@
     1.4 +<!DOCTYPE html>
     1.5 +<html>
     1.6 +<!--
     1.7 +https://bugzilla.mozilla.org/show_bug.cgi?id=338679
     1.8 +-->
     1.9 +<head>
    1.10 +<title>Bug 338679: correct reporting of newValue/prevValue in
    1.11 +       DOMAttrModified events</title>
    1.12 +<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
    1.13 +<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css" />
    1.14 +</head>
    1.15 +<body>
    1.16 +<a target="_blank"
    1.17 +   href="https://bugzilla.mozilla.org/show_bug.cgi?id=338679">Bug
    1.18 +   338679: correct reporting of newValue/prevValue in
    1.19 +   DOMAttrModified events</a>
    1.20 +
    1.21 +<div id="test" style="width:20em"></div>
    1.22 +
    1.23 +<script>
    1.24 +var testDiv = document.getElementById("test");
    1.25 +var e_new, e_prev = testDiv.getAttribute("style");
    1.26 +var phase, recursive = false;
    1.27 +
    1.28 +/* driver */
    1.29 +var tests = [ test_1, test_2, test_3 ];
    1.30 +var i = 0;
    1.31 +function nextTest() {
    1.32 +  if (i < tests.length) {
    1.33 +    phase = tests[i];
    1.34 +    i++;
    1.35 +    phase();
    1.36 +  } else {
    1.37 +    SimpleTest.finish();
    1.38 +  }
    1.39 +}
    1.40 +
    1.41 +SimpleTest.waitForExplicitFinish();
    1.42 +testDiv.addEventListener("DOMAttrModified", attr_modified, false);
    1.43 +nextTest();
    1.44 +
    1.45 +/* event handler */
    1.46 +function attr_modified(ev) {
    1.47 +  is(ev.newValue, e_new,
    1.48 +     phase.name + (recursive ? " recursive" : "") + ": newValue");
    1.49 +  is(ev.prevValue, e_prev,
    1.50 +     phase.name + (recursive ? " recursive" : "") + ": prevValue");
    1.51 +
    1.52 +  e_prev = e_new;
    1.53 +  if (!recursive) {
    1.54 +    recursive = true;
    1.55 +    e_new = "width: 0px;";
    1.56 +    testDiv.style.width = "0";
    1.57 +  } else {
    1.58 +    recursive = false;
    1.59 +    setTimeout(nextTest, 0);
    1.60 +  }
    1.61 +}
    1.62 +
    1.63 +/* tests */
    1.64 +function test_1() {
    1.65 +  e_new = "width: auto;";
    1.66 +  testDiv.style.width = "auto";
    1.67 +}
    1.68 +
    1.69 +function test_2() {
    1.70 +  e_new = "width: 15%;";
    1.71 +  testDiv.style.width = "15%";
    1.72 +}
    1.73 +
    1.74 +function test_3() {
    1.75 +  window.getComputedStyle(testDiv, null).width; // force style resolution
    1.76 +  e_new = "width: inherit;";
    1.77 +  testDiv.style.width = "inherit";
    1.78 +}
    1.79 +</script>
    1.80 +</body>
    1.81 +</html>

mercurial