From: <rb...@us...> - 2013-05-03 07:09:46
|
Revision: 8256 http://sourceforge.net/p/htmlunit/code/8256 Author: rbri Date: 2013-05-03 07:09:37 +0000 (Fri, 03 May 2013) Log Message: ----------- rechecked default handling with IE8; test adjusted and impl fixed Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput.java trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInput.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/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/HtmlResetInput2Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInputTest.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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/BrowserVersionFeatures.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -216,7 +216,7 @@ EXECCOMMAND_THROWS_ON_WRONG_COMMAND, /** */ - @BrowserFeature(@WebBrowser(value = IE, maxVersion = 7)) + @BrowserFeature(@WebBrowser(value = IE, maxVersion = 8)) FILEINPUT_EMPTY_DEFAULT_VALUE, /** For new pages the focus points to the html root node. */ @@ -611,9 +611,13 @@ HTMLINPUT_SET_DEFAULT_CHECKED_UPDATES_CHECKED, /** Setting defaultValue updates the value also. */ - @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 8), @WebBrowser(CHROME) }) + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 9), @WebBrowser(CHROME) }) HTMLINPUT_SET_DEFAULT_VALUE_UPDATES_VALUE, + /** Setting value updates the defaultValue also. */ + @BrowserFeature({ @WebBrowser(FF), @WebBrowser(value = IE, minVersion = 9), @WebBrowser(CHROME) }) + HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE, + /** * Set this property if the browser does NOT * support the disabling of an individual option group. Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput.java 2013-05-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -14,6 +14,8 @@ */ package com.gargoylesoftware.htmlunit.html; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE; + import java.util.Map; import com.gargoylesoftware.htmlunit.SgmlPage; @@ -57,7 +59,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if ("value".equals(qualifiedName)) { + if (hasFeature(HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE) && "value".equals(qualifiedName)) { setDefaultValue(attributeValue, false); } super.setAttributeNS(namespaceURI, qualifiedName, attributeValue); Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInput.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInput.java 2013-05-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInput.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -14,6 +14,8 @@ */ package com.gargoylesoftware.htmlunit.html; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE; + import java.util.Map; import com.gargoylesoftware.htmlunit.SgmlPage; @@ -50,7 +52,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if ("value".equals(qualifiedName)) { + if (hasFeature(HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE) && "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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -14,6 +14,8 @@ */ package com.gargoylesoftware.htmlunit.html; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE; + import java.io.IOException; import java.util.Map; @@ -73,7 +75,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if ("value".equals(qualifiedName)) { + if (hasFeature(HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE) && "value".equals(qualifiedName)) { setDefaultValue(attributeValue, false); } super.setAttributeNS(namespaceURI, qualifiedName, attributeValue); 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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInput.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -14,6 +14,7 @@ */ package com.gargoylesoftware.htmlunit.html; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.SUBMITINPUT_DEFAULT_VALUE_IF_VALUE_NOT_DEFINED; import java.io.IOException; @@ -155,7 +156,7 @@ */ @Override public void setAttributeNS(final String namespaceURI, final String qualifiedName, final String attributeValue) { - if ("value".equals(qualifiedName)) { + if (hasFeature(HTMLINPUT_SET_VALUE_UPDATES_DEFAULT_VALUE) && "value".equals(qualifiedName)) { setDefaultValue(attributeValue, false); } super.setAttributeNS(namespaceURI, qualifiedName, attributeValue); 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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlButtonInput2Test.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -35,9 +35,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "initial-initial", "some text-some text", "some text-some text" }) + @Alerts(DEFAULT = { "initial-initial", "initial-initial", "some text-some text", "some text-some text" }, + IE8 = { "initial-initial", "initial-initial", "some text-initial", "some text-initial" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var button = document.getElementById('testId');\n" @@ -67,9 +68,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var button = document.getElementById('testId');\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlFileInput2Test.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -40,8 +40,8 @@ import org.openqa.selenium.ie.InternetExplorerDriver; import com.gargoylesoftware.htmlunit.BrowserRunner; +import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; import com.gargoylesoftware.htmlunit.WebDriverTestCase; -import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; /** * Tests for {@link HtmlFileInput}. @@ -306,7 +306,8 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "-initial", "-default" }) + @Alerts(DEFAULT = { "-initial", "-default" }, + IE8 = { "-", "-default" }) public void defaultValue() throws Exception { final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + "<script>\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlHiddenInputTest.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -56,9 +56,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "initial-initial", "some text-some text", "some text-some text" }) + @Alerts(DEFAULT = { "initial-initial", "initial-initial", "some text-some text", "some text-some text" }, + IE8 = { "initial-initial", "initial-initial", "some text-initial", "some text-initial" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var hidden = document.getElementById('testId');\n" @@ -88,9 +89,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var hidden = document.getElementById('testId');\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlImageInput2Test.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -36,7 +36,7 @@ @Test @Alerts({ "initial-initial", "initial-initial", "some text-some text", "some text-some text" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var image = document.getElementById('testId');\n" @@ -68,7 +68,7 @@ @Test @Alerts({ "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var image = document.getElementById('testId');\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlPasswordInputTest.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -170,7 +170,7 @@ @Test @Alerts({ "initial-initial", "initial-initial", "some text-initial", "some text-initial" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var password = document.getElementById('testId');\n" @@ -200,9 +200,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-default", "some text-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-default", "some text-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var password = document.getElementById('testId');\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInput2Test.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -34,9 +34,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var reset = document.getElementById('testId');\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInputTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInputTest.java 2013-05-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlResetInputTest.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -41,8 +41,7 @@ @Test public void reset() throws Exception { final String htmlContent - = "<!DOCTYPE HTML>\n" - + "<html><head><title>foo</title></head><body>\n" + = "<html><head><title>foo</title></head><body>\n" + "<form id='form1'>\n" + "<input type='text' name='textfield1' id='textfield1' value='foo'/>\n" + "<input type='password' name='password1' id='password1' value='foo'/>\n" @@ -98,7 +97,12 @@ // this is strange but this is the way the browsers are working // com.gargoylesoftware.htmlunit.html.HtmlHiddenInputTest.reset() - assertEquals("Flintstone", page.<HtmlHiddenInput>getHtmlElementById("hidden1").getValueAttribute()); + if (getBrowserVersion().isIE() && getBrowserVersion().getBrowserVersionNumeric() < 9) { + assertEquals("foo", page.<HtmlHiddenInput>getHtmlElementById("hidden1").getValueAttribute()); + } + else { + assertEquals("Flintstone", page.<HtmlHiddenInput>getHtmlElementById("hidden1").getValueAttribute()); + } assertEquals("foo", page.<HtmlPasswordInput>getHtmlElementById("password1").getValueAttribute()); assertEquals("", page.<HtmlIsIndex>getHtmlElementById("isindex1").getValue()); @@ -110,8 +114,7 @@ @Test public void resetClick_onClick() throws Exception { final String htmlContent - = "<!DOCTYPE HTML>\n" - + "<html><head><title>foo</title></head><body>\n" + = "<html><head><title>foo</title></head><body>\n" + "<form id='form1' onSubmit='alert(\"bar\")' onReset='alert(\"reset\")'>\n" + " <button type='reset' name='button' id='button' " + "onClick='alert(\"foo\")'>Push me</button>\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlSubmitInputTest.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -196,9 +196,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "initial-initial", "some text-some text", "some text-some text" }) + @Alerts(DEFAULT = { "initial-initial", "initial-initial", "some text-some text", "some text-some text" }, + IE8 = { "initial-initial", "initial-initial", "some text-initial", "some text-initial" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var submit = document.getElementById('testId');\n" @@ -228,9 +229,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-some text", "newdefault-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var submit = document.getElementById('testId');\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-02 18:33:18 UTC (rev 8255) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/html/HtmlTextInput2Test.java 2013-05-03 07:09:37 UTC (rev 8256) @@ -36,7 +36,7 @@ @Test @Alerts({ "initial-initial", "initial-initial", "some text-initial", "some text-initial" }) public void reset() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var text = document.getElementById('testId');\n" @@ -66,9 +66,10 @@ * @throws Exception if the test fails */ @Test - @Alerts({ "initial-initial", "default-default", "some text-default", "some text-newdefault" }) + @Alerts(DEFAULT = { "initial-initial", "default-default", "some text-default", "some text-newdefault" }, + IE8 = { "initial-initial", "initial-default", "some text-default", "some text-newdefault" }) public void defaultValue() throws Exception { - final String html = "<!DOCTYPE HTML>\n<html><head><title>foo</title>\n" + final String html = "<html><head><title>foo</title>\n" + "<script>\n" + " function test() {\n" + " var text = document.getElementById('testId');\n" |