From: <mgu...@us...> - 2012-12-18 17:03:53
|
Revision: 7886 http://sourceforge.net/p/htmlunit/code/7886 Author: mguillem Date: 2012-12-18 17:03:49 +0000 (Tue, 18 Dec 2012) Log Message: ----------- offsetHeight of most empty elements seems to be 0. It looks like it makes JQuery test 107 green for FF3_6 Modified Paths: -------------- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/ComputedCSSStyleDeclaration.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java Modified: trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/ComputedCSSStyleDeclaration.java =================================================================== --- trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/ComputedCSSStyleDeclaration.java 2012-12-18 16:48:15 UTC (rev 7885) +++ trunk/htmlunit/src/main/java/com/gargoylesoftware/htmlunit/javascript/host/css/ComputedCSSStyleDeclaration.java 2012-12-18 17:03:49 UTC (rev 7886) @@ -15,8 +15,8 @@ package com.gargoylesoftware.htmlunit.javascript.host.css; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CAN_INHERIT_CSS_PROPERTY_VALUES; +import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_DEFAULT_ELEMENT_HEIGHT_MARKS_MIN; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_DEFAULT_ELEMENT_HEIGHT_15; -import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_DEFAULT_ELEMENT_HEIGHT_MARKS_MIN; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_DEFAULT_WIDTH_AUTO; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_DISPLAY_DEFAULT; import static com.gargoylesoftware.htmlunit.BrowserVersionFeatures.CSS_FONT_STRECH_DEFAULT_NORMAL; @@ -51,6 +51,8 @@ import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLBodyElement; import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLCanvasElement; import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLElement; +import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLIFrameElement; +import com.gargoylesoftware.htmlunit.javascript.host.html.HTMLTextAreaElement; /** * A JavaScript object for a ComputedCSSStyleDeclaration. @@ -1644,10 +1646,24 @@ final boolean explicitHeightSpecified = super.getHeight().length() > 0; - int defaultHeight = 20; - if (getBrowserVersion().hasFeature(CSS_DEFAULT_ELEMENT_HEIGHT_15)) { + final int defaultHeight; + if (getElement().getFirstChild() == null) { + if (getElement() instanceof HTMLIFrameElement) { + defaultHeight = 154; + } + else if (getElement() instanceof HTMLTextAreaElement) { + defaultHeight = 49; + } + else { + defaultHeight = 0; + } + } + else if (getBrowserVersion().hasFeature(CSS_DEFAULT_ELEMENT_HEIGHT_15)) { defaultHeight = 15; } + else { + defaultHeight = 20; + } final int defaultValue = getElement() instanceof HTMLCanvasElement ? 150 : windowHeight; 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 2012-12-18 16:48:15 UTC (rev 7885) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/javascript/host/html/HTMLTableCellElementTest.java 2012-12-18 17:03:49 UTC (rev 7886) @@ -15,6 +15,7 @@ package com.gargoylesoftware.htmlunit.javascript.host.html; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF; +import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE; import org.junit.Test; import org.junit.runner.RunWith; @@ -22,6 +23,7 @@ import com.gargoylesoftware.htmlunit.BrowserRunner; import com.gargoylesoftware.htmlunit.BrowserRunner.Alerts; import com.gargoylesoftware.htmlunit.BrowserRunner.Browsers; +import com.gargoylesoftware.htmlunit.BrowserRunner.NotYetImplemented; import com.gargoylesoftware.htmlunit.WebDriverTestCase; /** @@ -479,4 +481,25 @@ + "</html>"; loadPageWithAlerts2(html); } + + /** + * @throws Exception if an error occurs + */ + @Test + @Alerts(DEFAULT = "0", IE = { "1" }) + @NotYetImplemented(IE) + public void offsetHeight() throws Exception { + final String html = + "<html><body>\n" + + "<table><tr>\n" + + "<td style='padding:0' id='it'></td>\n" + + "<td style='display: none'>t</td>" + + "</tr></table>\n" + + "<script>\n" + + "var it = document.getElementById('it');\n" + + "alert(it.offsetHeight);\n" + + "</script>\n" + + "</body></html>"; + loadPageWithAlerts2(html); + } } Modified: trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java =================================================================== --- trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java 2012-12-18 16:48:15 UTC (rev 7885) +++ trunk/htmlunit/src/test/java/com/gargoylesoftware/htmlunit/libraries/JQuery182Test.java 2012-12-18 17:03:49 UTC (rev 7886) @@ -16,9 +16,12 @@ import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF3_6; +import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF10; +import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.FF17; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE6; import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.IE7; +import static com.gargoylesoftware.htmlunit.BrowserRunner.Browser.CHROME; import static org.junit.Assert.fail; import org.eclipse.jetty.server.Server; @@ -1093,7 +1096,7 @@ @Alerts(FF3_6 = "support: Verify that the support tests resolve as expected per browser (0, 30, 30)", FF10 = "data: expando (0, 1, 1)", CHROME = "data: expando (0, 1, 1)", IE = "support: Verify that the support tests resolve as expected per browser (6, 24, 30)") - @NotYetImplemented + @NotYetImplemented({ FF10, FF17, IE, CHROME }) public void test_107() throws Exception { runTest(107); } |