From: <rb...@us...> - 2013-05-01 13:42:10
|
Revision: 8250 http://sourceforge.net/p/htmlunit/code/8250 Author: rbri Date: 2013-05-01 13:42:06 +0000 (Wed, 01 May 2013) Log Message: ----------- Checked state of radio buttons and checkboxes changes when setting defaultChecked in IE8ff. Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2013-05-01 13:18:24 UTC (rev 8249) +++ trunk/htmlunit/src/changes/changes.xml 2013-05-01 13:42:06 UTC (rev 8250) @@ -8,6 +8,9 @@ <body> <release version="2.13" date="???" description="Bugfixes"> + <action type="fix" dev="rbri"> + Checked state of radio buttons and checkboxes changes when setting defaultChecked in IE8ff. + </action> <action type="update" dev="rbri"> Upgrade commons-codec to 1.8 </action> Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java 2013-05-01 13:18:24 UTC (rev 8249) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java 2013-05-01 13:42:06 UTC (rev 8250) @@ -425,6 +425,42 @@ * @throws Exception if the test fails */ @Test + @Alerts(DEFAULT = { "true-true", "true-true", "false-false", "false-false", "true-true", "false-false" }) + public void defaultChecked() throws Exception { + final String html = + "<!DOCTYPE HTML>\n<html>\n" + + "<head>\n" + + " <script>\n" + + " function test() {\n" + + " chkbox = document.getElementById('chkboxChecked');\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + " chkbox.defaultChecked = true;\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + " chkbox.defaultChecked = false;\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + + " chkbox = document.getElementById('chkboxNotChecked');\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + " chkbox.defaultChecked = true;\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + " chkbox.defaultChecked = false;\n" + + " alert(chkbox.checked + '-' + chkbox.defaultChecked);\n" + + " }\n" + + " </script>\n" + + "</head><body onload='test()'>\n" + + " <form>" + + " <input type='checkbox' id='chkboxChecked' checked>\n" + + " <input type='checkbox' id='chkboxNotChecked'>\n" + + " </form>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test @Alerts(DEFAULT = "foo,change,", IE = { }) public void onchangeFires() throws Exception { final String html = "<html><head><title>foo</title>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java 2013-05-01 13:18:24 UTC (rev 8249) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java 2013-05-01 13:42:06 UTC (rev 8250) @@ -452,6 +452,76 @@ } /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "true-true", "false-false", "true-true", "false-false", "false-false", "false-false" }) + public void defaultChecked() throws Exception { + final String html = + "<!DOCTYPE HTML>\n<html>\n" + + "<head>\n" + + " <script>\n" + + " function test() {\n" + + " radio = document.getElementById('rad1');\n" + + " radio2 = document.getElementById('rad2');\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + + " radio.defaultChecked = true;\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + + " radio.defaultChecked = false;\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + " }\n" + + " </script>\n" + + "</head><body onload='test()'>\n" + + " <form>" + + " <input type='radio' id='rad1' name='radar' checked>\n" + + " <input type='radio' id='rad2' name='radar'>\n" + + " </form>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "false-false", "false-false", "true-true", "false-false", "false-false", "false-false" }) + public void defaultChecked_notchecked() throws Exception { + final String html = + "<!DOCTYPE HTML>\n<html>\n" + + "<head>\n" + + " <script>\n" + + " function test() {\n" + + " radio = document.getElementById('rad1');\n" + + " radio2 = document.getElementById('rad2');\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + + " radio.defaultChecked = true;\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + + " radio.defaultChecked = false;\n" + + " alert(radio.checked + '-' + radio.defaultChecked);\n" + + " alert(radio2.checked + '-' + radio2.defaultChecked);\n" + + " }\n" + + " </script>\n" + + "</head><body onload='test()'>\n" + + " <form>" + + " <input type='radio' id='rad1' name='radar'>\n" + + " <input type='radio' id='rad2' name='radar'>\n" + + " </form>\n" + + "</body></html>"; + + loadPageWithAlerts2(html); + } + + /** * Regression test for bug 2956588. * As of HttmlUnit-2.8-SNAPSHOT on 26.02.10, reading responseXML with xhtml namespace * was causing ClassCastException for IE simulation when it contained a checked radio button. |