From: <rb...@us...> - 2013-05-06 17:04:40
|
Revision: 8264 http://sourceforge.net/p/htmlunit/code/8264 Author: rbri Date: 2013-05-06 17:04:31 +0000 (Mon, 06 May 2013) Log Message: ----------- and again more test for the default values and some more fixes Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInput.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlFileInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInputTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlImageInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPasswordInputTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInputTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlTextInput2Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -543,6 +543,22 @@ @BrowserFeature(@WebBrowser(IE)) HTMLBGSOUND, + /** Set this checked state back to default when added to page (IE6). */ + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 7)) + HTMLCHECKEDINPUT_SET_CHECKED_TO_DEFAULT_WHEN_ADDED, + + /** Set this checked state to false when added to page (IE). */ + @BrowserFeature(@WebBrowser(value = IE)) + HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE, + + /** Setting defaultCheced updates checked also. */ + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 8), @WebBrowser(CHROME) }) + HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED, + + /** Set the default value based on the current value when clone (IE). */ + @BrowserFeature(@WebBrowser(value = IE)) + HTMLCHECKEDINPUT_SET_DEFAULT_VALUE_WHEN_CLONE, + /** Indicates that comment nodes should be treated similar to elements, e.g. getElementsByTagName(). */ @BrowserFeature(@WebBrowser(IE)) HTMLCOLLECTION_COMMENT_IS_ELEMENT, @@ -598,18 +614,6 @@ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) HTMLIMAGE_NAME_VALUE_PARAMS, - /** Set this checked state back to default when added to page (IE6). */ - @BrowserFeature(@WebBrowser(value = IE, maxVersion = 7)) - HTMLINPUT_SET_CHECKED_TO_DEFAULT_WHEN_ADDED, - - /** Set this checked state to false when added to page (IE). */ - @BrowserFeature(@WebBrowser(value = IE)) - HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE, - - /** Setting defaultCheced updates checked also. */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 8), @WebBrowser(CHROME) }) - HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED, - /** Setting defaultValue updates the value also. */ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 9), @WebBrowser(CHROME) }) HTMLINPUT_SET_DEFAULT_VALUE_UPDATES_VALUE, @@ -1192,6 +1196,10 @@ @BrowserFeature(@WebBrowser(value = IE, minVersion = 8)) QUERYSELECTORALL_NOT_IN_QUIRKS, + /** Set the value attribute of a reset input to 'Reset' if no value attribute specified. */ + @BrowserFeature(@WebBrowser(IE)) + RESETINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED, + /** Indicates that escaping in attrubute selectors is supported. */ @BrowserFeature({ @WebBrowser(FF), @WebBrowser(CHROME) }) SELECTOR_ATTRIBUTE_ESCAPING, Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -15,8 +15,9 @@ package com.gargoylesoftware.htmlunit.html; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.EVENT_ONCHANGE_LOSING_FOCUS; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_DEFAULT_VALUE_WHEN_CLONE; import java.io.IOException; import java.util.Map; @@ -169,10 +170,10 @@ @Override public void setDefaultChecked(final boolean defaultChecked) { defaultCheckedState_ = defaultChecked; - if (hasFeature(HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED)) { setChecked(defaultChecked); } - if (hasFeature(HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { reset(); forceChecked_ = true; } @@ -219,10 +220,13 @@ @Override public DomNode cloneNode(final boolean deep) { final HtmlCheckBoxInput clone = (HtmlCheckBoxInput) super.cloneNode(deep); - if (wasCreatedByJavascript() && hasFeature(HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { + if (wasCreatedByJavascript() && hasFeature(HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { clone.removeAttribute("checked"); clone.forceChecked_ = isDefaultChecked(); } + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_VALUE_WHEN_CLONE)) { + clone.setDefaultValue(getValueAttribute(), false); + } return clone; } @@ -254,7 +258,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if (hasFeature(HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED) && "value".equals(qualifiedName)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED) && "value".equals(qualifiedName)) { setDefaultValue(attributeValue, false); } super.setAttributeNS(namespaceURI, qualifiedName, attributeValue); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -15,8 +15,9 @@ package com.gargoylesoftware.htmlunit.html; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.EVENT_ONCHANGE_LOSING_FOCUS; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLCHECKEDINPUT_SET_DEFAULT_VALUE_WHEN_CLONE; import java.io.IOException; import java.util.List; @@ -222,10 +223,10 @@ @Override public void setDefaultChecked(final boolean defaultChecked) { defaultCheckedState_ = defaultChecked; - if (hasFeature(HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED)) { setChecked(isDefaultChecked()); } - if (hasFeature(HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { reset(); forceChecked_ = true; } @@ -267,7 +268,7 @@ @Override protected void onAddedToDocumentFragment() { super.onAddedToPage(); - if (hasFeature(HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { forceChecked_ = true; } } @@ -279,10 +280,13 @@ public DomNode cloneNode(final boolean deep) { final HtmlRadioButtonInput clone = (HtmlRadioButtonInput) super.cloneNode(deep); clone.forceChecked_ = false; - if (wasCreatedByJavascript() && hasFeature(HTMLINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { + if (wasCreatedByJavascript() && hasFeature(HTMLCHECKEDINPUT_SET_CHECKED_TO_FALSE_WHEN_CLONE)) { clone.removeAttribute("checked"); clone.forceChecked_ = true; } + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_VALUE_WHEN_CLONE)) { + clone.setDefaultValue(getValueAttribute(), false); + } return clone; } @@ -314,7 +318,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if (hasFeature(HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED) && "value".equals(qualifiedName)) { + if (hasFeature(HTMLCHECKEDINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED) && "value".equals(qualifiedName)) { setDefaultValue(attributeValue, false); } super.setAttributeNS(namespaceURI, qualifiedName, attributeValue); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -15,10 +15,12 @@ package com.gargoylesoftware.htmlunit.html; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.RESETINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED; import java.io.IOException; import java.util.Map; +import com.gargoylesoftware.htmlunit.BrowserVersion; import com.gargoylesoftware.htmlunit.SgmlPage; /** @@ -35,6 +37,11 @@ public class HtmlResetInput extends HtmlInput { /** + * Value to use if no specified <tt>value</tt> attribute. + */ + private static final String DEFAULT_VALUE = "Reset"; + + /** * Creates an instance. * * @param namespaceURI the URI that identifies an XML namespace @@ -44,10 +51,40 @@ */ HtmlResetInput(final String namespaceURI, final String qualifiedName, final SgmlPage page, final Map<String, DomAttr> attributes) { - super(namespaceURI, qualifiedName, page, attributes); + super(namespaceURI, qualifiedName, page, addValueIfNeeded(page, attributes)); + + // fix the default value in case we have set it + if (hasFeature(RESETINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED) + && getAttribute("value") == DEFAULT_VALUE) { + setDefaultValue(ATTRIBUTE_NOT_DEFINED, false); + } } /** + * Add missing attribute if needed by fixing attribute map rather to add it afterwards as this second option + * triggers the instantiation of the script object at a time where the DOM node has not yet been added to its + * parent. + */ + private static Map<String, DomAttr> addValueIfNeeded(final SgmlPage page, + final Map<String, DomAttr> attributes) { + + final BrowserVersion browserVersion = page.getWebClient().getBrowserVersion(); + if (browserVersion.hasFeature(RESETINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED)) { + for (final String key : attributes.keySet()) { + if ("value".equalsIgnoreCase(key)) { + return attributes; // value attribute was specified + } + } + + // value attribute was not specified, add it + final DomAttr newAttr = new DomAttr(page, null, "value", DEFAULT_VALUE, true); + attributes.put("value", newAttr); + } + + return attributes; + } + + /** * {@inheritDoc} */ @Override Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInput.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInput.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -56,6 +56,12 @@ HtmlSubmitInput(final String namespaceURI, final String qualifiedName, final SgmlPage page, final Map<String, DomAttr> attributes) { super(namespaceURI, qualifiedName, page, addValueIfNeeded(page, attributes)); + + // fix the default value in case we have set it + if (hasFeature(SUBMITINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED) + && getAttribute("value") == DEFAULT_VALUE) { + setDefaultValue(ATTRIBUTE_NOT_DEFINED, false); + } } /** Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -35,7 +35,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -51,9 +51,40 @@ + " builder.innerHTML = '<input type=\"button\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='button' id='button1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('button1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'button';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"button\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" 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-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlCheckBoxInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -614,8 +614,7 @@ * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = { "on-", "on-", "on-", "on-", "on-" }, - IE = { "on-", "on-", "on-", "on-", "on-on" }) + @Alerts({ "on-", "on-", "on-", "on-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -634,9 +633,46 @@ + " builder.innerHTML = '<input type=\"checkbox\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='checkbox' id='chkbox1'>\n" + + " <input type='checkbox' id='chkbox2' checked='true'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "on-", "on-", "on-", "on-" }, + IE = { "on-on", "on-on", "on-on", "on-on" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('chkbox1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.getElementById('chkbox2');\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'checkbox';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"checkbox\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlFileInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlFileInput2Test.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlFileInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -306,7 +306,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -322,9 +322,40 @@ + " builder.innerHTML = '<input type=\"file\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='file' id='file1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('file1');\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " input = input.cloneNode(false);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'file';\n" + + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"file\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInputTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInputTest.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInputTest.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -56,7 +56,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -72,9 +72,40 @@ + " builder.innerHTML = '<input type=\"hidden\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='hidden' id='hidden1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('hidden1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'hidden';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"hidden\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlImageInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlImageInput2Test.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlImageInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -34,7 +34,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -50,9 +50,40 @@ + " builder.innerHTML = '<input type=\"image\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='image' id='image1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterclone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('image1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'image';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"image\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPasswordInputTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPasswordInputTest.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPasswordInputTest.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -168,7 +168,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -184,9 +184,40 @@ + " builder.innerHTML = '<input type=\"password\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='password' id='password1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('password1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'password';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"password\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\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-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlRadioButtonInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -713,8 +713,7 @@ * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = { "on-", "on-", "on-", "on-", "on-" }, - IE = { "on-", "on-", "on-", "on-", "on-on" }) + @Alerts({ "on-", "on-", "on-", "on-", }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -733,9 +732,46 @@ + " builder.innerHTML = '<input type=\"radio\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='radio' id='radio1'>\n" + + " <input type='radio' id='radio2' checked='true'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "on-", "on-", "on-", "on-" }, + IE = { "on-on", "on-on", "on-on", "on-on" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('radio1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.getElementById('radio2');\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'radio';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"radio\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput2Test.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -34,8 +34,8 @@ * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = { "-", "-", "-", "-" }, - IE = { "Reset-", "Reset-", "Reset-", "Reset-" }) + @Alerts(DEFAULT = { "-", "-", "-" }, + IE = { "Reset-", "Reset-", "Reset-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -51,9 +51,41 @@ + " builder.innerHTML = '<input type=\"reset\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='reset' id='reset1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "-", "-", "-" }, + IE = { "Reset-", "Reset-", "Reset-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('reset1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'reset';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"reset\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInputTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInputTest.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInputTest.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -196,8 +196,8 @@ * @throws Exception if the test fails */ @Test - @Alerts(DEFAULT = { "-", "-", "-", "-" }, - IE = { "Submit Query-", "Submit Query-", "Submit Query-", "Submit Query-" }) + @Alerts(DEFAULT = { "-", "-", "-" }, + IE = { "Submit Query-", "Submit Query-", "Submit Query-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -213,9 +213,41 @@ + " builder.innerHTML = '<input type=\"submit\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='submit' id='submit1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts(DEFAULT = { "-", "-", "-" }, + IE = { "Submit Query-", "Submit Query-", "Submit Query-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('submit1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'submit';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"submit\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlTextInput2Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlTextInput2Test.java 2013-05-05 17:46:16 UTC (rev 8263) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlTextInput2Test.java 2013-05-06 17:04:31 UTC (rev 8264) @@ -34,7 +34,7 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-", "-", "-", "-" }) + @Alerts({ "-", "-", "-" }) public void defaultValues() throws Exception { final String html = "<html><head><title>foo</title>\n" + "<script>\n" @@ -50,9 +50,40 @@ + " builder.innerHTML = '<input type=\"text\">';\n" + " input = builder.firstChild;\n" + " alert(input.value + '-' + input.defaultValue);\n" + + " }\n" + + "</script>\n" + + "</head><body onload='test()'>\n" + + "<form>\n" + + " <input type='text' id='text1'>\n" + + "</form>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } + + /** + * @throws Exception if the test fails + */ + @Test + @Alerts({ "-", "-", "-" }) + public void defaultValuesAfterClone() throws Exception { + final String html = "<html><head><title>foo</title>\n" + + "<script>\n" + + " function test() {\n" + + " var input = document.getElementById('text1');\n" + " input = input.cloneNode(false);\n" + " alert(input.value + '-' + input.defaultValue);\n" + + + " input = document.createElement('input');\n" + + " input.type = 'text';\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + + + " var builder = document.createElement('div');\n" + + " builder.innerHTML = '<input type=\"text\">';\n" + + " input = builder.firstChild;\n" + + " input = input.cloneNode(false);\n" + + " alert(input.value + '-' + input.defaultValue);\n" + " }\n" + "</script>\n" + "</head><body onload='test()'>\n" |