diff --git a/user/test/com/google/gwt/user/client/ui/ElementWrappingTest.java b/user/test/com/google/gwt/user/client/ui/ElementWrappingTest.java
index c20221a782..6bb932e246 100644
--- a/user/test/com/google/gwt/user/client/ui/ElementWrappingTest.java
+++ b/user/test/com/google/gwt/user/client/ui/ElementWrappingTest.java
@@ -64,13 +64,13 @@ public void testButton() {
public void testDetachNowTwiceFails() {
// Testing hosted-mode-only assertion.
if (!GWT.isScript()) {
+ // Trying to pass the same widget to RootPanel.detachNow() twice
+ // should fail an assertion.
+ ensureDiv().setInnerHTML(
+ "myAnchor");
+ Anchor a = Anchor.wrap(Document.get().getElementById("foo"));
+ RootPanel.detachNow(a); // pass
try {
- // Trying to pass the same widget to RootPanel.detachNow() twice
- // should fail an assertion.
- ensureDiv().setInnerHTML(
- "myAnchor");
- Anchor a = Anchor.wrap(Document.get().getElementById("foo"));
- RootPanel.detachNow(a); // pass
RootPanel.detachNow(a); // fail
throw new Error("Expected assertion failure calling detachNow() twice");
} catch (AssertionError e) {
diff --git a/user/test/com/google/gwt/user/client/ui/ImageTest.java b/user/test/com/google/gwt/user/client/ui/ImageTest.java
index 15189f39b7..4123ff715d 100644
--- a/user/test/com/google/gwt/user/client/ui/ImageTest.java
+++ b/user/test/com/google/gwt/user/client/ui/ImageTest.java
@@ -790,11 +790,28 @@ public void testWrapOfSubclass() {
assertNotNull(image);
// Cleanup.
+ Document.get().getBody().removeChild(div);
RootPanel.detachNow(image);
}
/**
- * Same test, but with removeFromParent
+ * Same test, but don't remove from the dom first
+ */
+ public void testWrapOfSubclassWithoutRemove() {
+ String uid = Document.get().createUniqueId();
+ DivElement div = Document.get().createDivElement();
+ div.setInnerHTML("
");
+ Document.get().getBody().appendChild(div);
+
+ final TestImage image = TestImage.wrap(Document.get().getElementById(uid));
+ assertNotNull(image);
+
+ // Cleanup.
+ RootPanel.detachNow(image);
+ }
+
+ /**
+ * Same test, but with removeFromParent instead of detachNow
*/
public void testRemoveFromParent() {
String uid = Document.get().createUniqueId();
@@ -805,6 +822,24 @@ public void testRemoveFromParent() {
final TestImage image = TestImage.wrap(Document.get().getElementById(uid));
assertNotNull(image);
+ // Cleanup.
+ Document.get().getBody().removeChild(div);
+ image.removeFromParent();
+ }
+
+ /**
+ * Same test, but with removeFromParent isntead of detachNow, and don't remove the dom manually
+ * first.
+ */
+ public void testRemoveFromParentWithoutRemove() {
+ String uid = Document.get().createUniqueId();
+ DivElement div = Document.get().createDivElement();
+ div.setInnerHTML("
");
+ Document.get().getBody().appendChild(div);
+
+ final TestImage image = TestImage.wrap(Document.get().getElementById(uid));
+ assertNotNull(image);
+
// Cleanup.
image.removeFromParent();
}