<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=977029 --> <head> <title>Test for Bug 977029</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script> </head> <body> <div id="content"> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=977029">Bug 977029</a> <p> Goal of this test is to check that modifying defaultValue and value attribute of input types is working as expected. </p> <form> <input id='a' type="color" value="#00ff00"> <input id='b' type="text" value="foo"> <input id='c' type="email" value="foo"> <input id='d' type="date" value="2010-09-20"> <input id='e' type="search" value="foo"> <input id='f' type="tel" value="foo"> <input id='g' type="url" value="foo"> <input id='h' type="number" value="42"> <input id='i' type="range" value="42" min="0" max="100"> <input id='j' type="time" value="17:00:25.54"> </form> </div> <script type="application/javascript"> // [ element id | original defaultValue | another value | another default value] // Preferably use only valid values: the goal of this test isn't to test the // value sanitization algorithm (for input types which have one) as this is // already part of another test) var testData = [["a", "#00ff00", "#00aaaa", "#00ccaa"], ["b", "foo", "bar", "tulip"], ["c", "foo", "foo@bar.org", "tulip"], ["d", "2010-09-20", "2012-09-21", ""], ["e", "foo", "bar", "tulip"], ["f", "foo", "bar", "tulip"], ["g", "foo", "bar", "tulip"], ["h", "42", "1337", "3"], ["i", "42", "17", "3"], ["j", "17:00:25.54", "07:00:25", "03:00:03"], ]; for (var data of testData) { id = data[0]; input = document.getElementById(id); originalDefaultValue = data[1]; is(originalDefaultValue, input.defaultValue, "Default value isn't the expected one"); is(originalDefaultValue, input.value, "input.value original value is different from defaultValue"); input.defaultValue = data[2] is(input.defaultValue, input.value, "Changing default value before value was changed should change value too"); input.value = data[3]; input.defaultValue = originalDefaultValue; is(input.value, data[3], "Changing default value after value was changed should not change value"); input.value = data[2]; is(originalDefaultValue, input.defaultValue, "defaultValue shouldn't change when changing value"); input.defaultValue = data[3]; is(input.defaultValue, data[3], "defaultValue should have changed"); // Change the value... input.value = data[2]; is(input.value, data[2], "value should have changed"); // ...then reset the form input.form.reset(); is(input.defaultValue, input.value, "reset form should bring back the default value"); } </script> </body> </html>