Fixes issue #446 "DOM.insertChild fails on IE6 when the index parameter is greater than the num of children". Patch by: sandymac, tobyr Review by: bruce git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@984 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java b/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java index 59b5046..792117a 100644 --- a/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java +++ b/user/src/com/google/gwt/user/client/impl/DOMImplIE6.java
@@ -154,7 +154,7 @@ }-*/; public native void insertChild(Element parent, Element child, int index) /*-{ - if (index == parent.children.length) + if (index >= parent.children.length) parent.appendChild(child); else parent.insertBefore(child, parent.children[index]);
diff --git a/user/test/com/google/gwt/user/client/ui/DOMTest.java b/user/test/com/google/gwt/user/client/ui/DOMTest.java index 7f6cc37..865d0d1 100644 --- a/user/test/com/google/gwt/user/client/ui/DOMTest.java +++ b/user/test/com/google/gwt/user/client/ui/DOMTest.java
@@ -53,7 +53,7 @@ cssClass = DOM.getElementAttribute(div, "class"); assertNull(cssClass); } - + /** * Tests the ability to do a parent-ward walk in the DOM. */ @@ -73,6 +73,18 @@ } /** + * Tests {@link DOM#insertChild(Element, Element, int)}. + * + */ + public void testInsertChild() { + Element parent = RootPanel.get().getElement(); + Element div = DOM.createDiv(); + DOM.insertChild(parent, div, Integer.MAX_VALUE); + Element child = DOM.getChild(RootPanel.get().getElement(), DOM.getChildCount(parent) - 1); + assertEquals(div, child); + } + + /** * Tests that {@link DOM#isOrHasChild(Element, Element)} works consistently * across browsers. */