diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 656119fb8b..c30d4ff2e0 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -8,6 +8,12 @@
null
if this CSSStyleDeclaration is
diff --git a/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java b/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java
index 20d0f0a7c4..228097ff3b 100644
--- a/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java
+++ b/src/main/java/org/htmlunit/css/ComputedCssStyleDeclaration.java
@@ -433,7 +433,7 @@ else if (AUTO.equals(value)) {
* {@inheritDoc}
*/
@Override
- public Object item(final int index) {
+ public String item(final int index) {
return elementStyleDeclaration_.item(index);
}
diff --git a/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java b/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java
index 1444e4b804..8fd8eacdc7 100644
--- a/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java
+++ b/src/main/java/org/htmlunit/css/WrappedCssStyleDeclaration.java
@@ -131,8 +131,8 @@ public int getLength() {
* {@inheritDoc}
*/
@Override
- public Object item(final int index) {
- return cssStyleDeclarationImpl_.getProperties().get(index);
+ public String item(final int index) {
+ return cssStyleDeclarationImpl_.getProperties().get(index).toString();
}
/**
diff --git a/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java b/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java
index 2445bb3112..74b5ffedea 100644
--- a/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java
+++ b/src/main/java/org/htmlunit/javascript/host/css/CSSStyleDeclaration.java
@@ -901,15 +901,15 @@ public int getLength() {
}
/**
- * Returns the item in the given index.
* @param index the index
- * @return the item in the given index
+ * @return a CSS property name from a CSSStyleDeclaration by index.
*/
@JsxFunction
- public Object item(final int index) {
+ public String item(final int index) {
if (styleDeclaration_ == null) {
return null; // prototype
}
+
return styleDeclaration_.item(index);
}
diff --git a/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java b/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java
index 2edc8162c9..15463b4202 100644
--- a/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java
+++ b/src/test/java/org/htmlunit/javascript/host/css/CSSPageRuleTest.java
@@ -544,19 +544,31 @@ public void selectorTextSetCaseInsensitive() throws Exception {
*/
@Test
@Alerts(DEFAULT = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]", "4", "[object CSSPageRule]",
- "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"},
+ "margin: 1cm;",
+ "string margin-top",
+ "string margin-right",
+ "string margin-bottom",
+ "string margin-left"},
FF = {"[object CSSPageDescriptors]", "[object CSSPageDescriptors]", "4", "[object CSSPageRule]",
- "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"},
+ "margin: 1cm;",
+ "string margin-top",
+ "string margin-right",
+ "string margin-bottom",
+ "string margin-left"},
FF_ESR = {"[object CSS2Properties]", "[object CSS2Properties]", "4", "[object CSSPageRule]",
- "margin: 1cm;", "margin-top", "margin-right", "margin-bottom", "margin-left"})
+ "margin: 1cm;",
+ "string margin-top",
+ "string margin-right",
+ "string margin-bottom",
+ "string margin-left"})
@HtmlUnitNYI(CHROME = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]",
- "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"},
+ "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"},
EDGE = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]",
- "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"},
+ "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"},
FF = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]",
- "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"},
+ "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"},
FF_ESR = {"[object CSSStyleDeclaration]", "[object CSSStyleDeclaration]",
- "1", "[object CSSPageRule]", "margin: 1cm;", "margin: 1cm"})
+ "1", "[object CSSPageRule]", "margin: 1cm;", "string margin: 1cm"})
// FIXME FF returns CSS2Properties vs. default returns CSSStyleDeclaration :(
public void style() throws Exception {
final String html
@@ -577,7 +589,7 @@ public void style() throws Exception {
+ " log(style.parentRule);\n"
+ " log(style.cssText);\n"
+ " for (var i = 0; i < style.length; i++) {\n"
- + " log(style.item(i));\n"
+ + " log(typeof style.item(i) + ' ' + style.item(i));\n"
+ " }\n"
+ "\n"