From: <rb...@us...> - 2014-01-23 20:18:24
|
Revision: 9049 http://sourceforge.net/p/htmlunit/code/9049 Author: rbri Date: 2014-01-23 20:18:20 +0000 (Thu, 23 Jan 2014) Log Message: ----------- improved width and height processing for html elements when simulating FF Modified Paths: -------------- trunk/htmlunit/src/changes/changes.xml trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLIFrameElement3Test.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableColElementTest.java Modified: trunk/htmlunit/src/changes/changes.xml =================================================================== --- trunk/htmlunit/src/changes/changes.xml 2014-01-23 19:33:17 UTC (rev 9048) +++ trunk/htmlunit/src/changes/changes.xml 2014-01-23 20:18:20 UTC (rev 9049) @@ -8,6 +8,9 @@ <body> <release version="2.14" date="???" description="FF24, Bugfixes, initial work on IE11"> + <action type="fix" dev="rbri"> + JavaScript: improved width and height processing for html elements when simulating FF. + </action> <action type="fix" dev="mguillem" issue="1564"> Fix IllegalArgumentException occuring for entities with invalid UTF16 code. </action> Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2014-01-23 19:33:17 UTC (rev 9048) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLElement.java 2014-01-23 20:18:20 UTC (rev 9049) @@ -2216,6 +2216,9 @@ */ protected String getWidthOrHeight(final String attributeName, final Boolean returnNegativeValues) { String value = getDomNodeOrDie().getAttribute(attributeName); + if (getBrowserVersion().hasFeature(JS_WIDTH_HEIGHT_ACCEPTS_ARBITRARY_VALUES)) { + return value; + } if (!PERCENT_VALUE.matcher(value).matches()) { try { final Float f = Float.valueOf(value); Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLIFrameElement3Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLIFrameElement3Test.java 2014-01-23 19:33:17 UTC (rev 9048) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLIFrameElement3Test.java 2014-01-23 20:18:20 UTC (rev 9049) @@ -257,9 +257,8 @@ * @throws Exception if an error occurs */ @Test - @Alerts(FF = {"", "100", "foo", "20%", "-5", "30.2", "400", "abc", "-5", "100.2", "10%", "300" }, - IE = {"", "100", "", "20%", "-5", "30", "error", "400", "100", "-5", "100", "10%", "300" }) - @NotYetImplemented(FF) + @Alerts(DEFAULT = {"", "100", "foo", "20%", "-5", "30.2", "400", "abc", "-5", "100.2", "10%", "-12.56" }, + IE = {"", "100", "", "20%", "-5", "30", "error", "400", "100", "-5", "100", "10%", "-12" }) public void width() throws Exception { final String html = "<html><body>\n" @@ -294,7 +293,7 @@ + "set(i3, -5);\n" + "set(i4, 100.2);\n" + "set(i5, '10%');\n" - + "set(i6, 300);\n" + + "set(i6, -12.56);\n" + "alert(i1.width);\n" + "alert(i2.width);\n" + "alert(i3.width);\n" @@ -310,9 +309,8 @@ * @throws Exception if an error occurs */ @Test - @Alerts(FF = {"", "100", "foo", "20%", "-5", "30.2", "400", "abc", "-5", "100.2", "10%", "300" }, - IE = {"", "100", "", "20%", "-5", "30", "error", "400", "100", "-5", "100", "10%", "300" }) - @NotYetImplemented(FF) + @Alerts(DEFAULT = {"", "100", "foo", "20%", "-5", "30.2", "400", "abc", "-5", "100.2", "10%", "-12.56" }, + IE = {"", "100", "", "20%", "-5", "30", "error", "400", "100", "-5", "100", "10%", "-12" }) public void height() throws Exception { final String html = "<html><body>\n" @@ -347,7 +345,7 @@ + "set(i3, -5);\n" + "set(i4, 100.2);\n" + "set(i5, '10%');\n" - + "set(i6, 300);\n" + + "set(i6, -12.56);\n" + "alert(i1.height);\n" + "alert(i2.height);\n" + "alert(i3.height);\n" @@ -365,6 +363,7 @@ */ @Test @Alerts(DEFAULT = { "uninitialized", "complete" }, + CHROME = { "complete", "complete" }, IE = { "loading", "complete" }) @NotYetImplemented(FF) public void readyState_IFrame() throws Exception { @@ -433,9 +432,9 @@ * @throws Exception if an error occurs */ @Test - @Alerts(IE = { "[object]", "[object]", "undefined", "" }, + @Alerts(DEFAULT = { "[object Window]", "[object HTMLIFrameElement]", "undefined", "" }, FF = { "[object HTMLIFrameElement]", "[object HTMLIFrameElement]", "", "" }, - IE11 = { "[object Window]", "[object HTMLIFrameElement]", "undefined", "" }) + IE8 = { "[object]", "[object]", "undefined", "" }) @NotYetImplemented(IE) public void idByName() throws Exception { final String html Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java 2014-01-23 19:33:17 UTC (rev 9048) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java 2014-01-23 20:18:20 UTC (rev 9049) @@ -445,7 +445,6 @@ @Test @Alerts(DEFAULT = { "100px", "200px", "400", "abc", "-5", "100.2", "10%" }, IE = { "100", "200", "400", "error", "400", "error", "400", "100", "10%" }) - @NotYetImplemented({ FF17, FF24 }) public void width() throws Exception { final String html = "<html>\n" Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableColElementTest.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableColElementTest.java 2014-01-23 19:33:17 UTC (rev 9048) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableColElementTest.java 2014-01-23 20:18:20 UTC (rev 9049) @@ -15,7 +15,6 @@ package com.gargoylesoftware.htmlunit.javascript.host.html; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF; -import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF17; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF24; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE8; @@ -272,7 +271,6 @@ @Test @Alerts(FF = { "50", "75%", "foo", "-7", "20.2", "", "80", "40", "abc", "-10", "30%", "33.3" }, IE = { "50", "75%", "", "", "20", "", "error", "error", "80", "40", "", "", "30%", "33" }) - @NotYetImplemented({ FF17, FF24 }) public void width() throws Exception { final String html = "<html><body><table>\n" |