chromium/third_party/blink/web_tests/fast/dom/setAttribute-using-initial-input-value.html

<html>
<head>
<script src="../../resources/js-test.js"></script>
<script>
    if (window.testRunner)
        testRunner.waitUntilDone();
</script>
</head>
<body>
<p id="description">
This test checks that an attribute is not removed when set to the initial value of an &lt;input&gt; tag
using <span style="font-family: monospace;">setAttribute()</span>.
If the test passes, you will see a list of <span class="pass" style="font-family: monospace;">PASS</span>
lines below, followed by <span class="pass" style="font-family: monospace;">TEST COMPLETE</span>.
See <a href="https://bugs.webkit.org/show_bug.cgi?id=4059">Bugzilla Bug 4059</a>
Some values used with setAttribute() cause the attribute to be removed (null strings vs. empty strings).
</p>
<div id="console"></div>
<input id="textInput" startval="" style="">
<script>
    var elem = document.getElementById("textInput");

    shouldBe("elem.value", "''");

    debug("<br>Before calling setAttribute(\"startval\", elem.value):<br>");
    shouldBe("elem.getAttribute('startval')", "''");

    elem.setAttribute("startval", elem.value);

    debug("<br>After calling setAttribute(\"startval\", elem.value):<br>");
    shouldBe("elem.getAttribute('startval')", "''");

    debug("<br>Before calling setAttribute(\"style\", elem.value):<br>");
    shouldBe("elem.getAttribute('style')", "''");

    elem.setAttribute("style", elem.value);

    debug("<br>After calling setAttribute(\"style\", elem.value):<br>");
    shouldBe("elem.getAttribute('style')", "''");
    debug("");
</script>
<script>
    elem.style.display = "none";
    if (window.testRunner)
        testRunner.notifyDone();
</script>
</body>
</html>