diff --git a/user/test/com/google/gwt/emultest/java/util/ArrayListTest.java b/user/test/com/google/gwt/emultest/java/util/ArrayListTest.java
index 369f30e..48d5177 100644
--- a/user/test/com/google/gwt/emultest/java/util/ArrayListTest.java
+++ b/user/test/com/google/gwt/emultest/java/util/ArrayListTest.java
@@ -15,11 +15,8 @@
  */
 package com.google.gwt.emultest.java.util;
 
-import static java.util.Arrays.asList;
-
 import java.util.AbstractList;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.List;
 import java.util.ListIterator;
 
@@ -129,20 +126,6 @@
     assertEquals(0, l.size());
   }
 
-  public void testSort() {
-    ArrayList<String> list = new ArrayList<>();
-    list.sort(null);
-
-    Collections.addAll(list, "b", "a", "c");
-    list.sort(null);
-    assertEquals(asList("a", "b", "c"), list);
-
-    list = new ArrayList<>();
-    Collections.addAll(list, "b", "a", "c");
-    list.sort(Collections.reverseOrder());
-    assertEquals(asList("c", "b", "a"), list);
-  }
-
   @Override
   protected List makeEmptyList() {
     return new ArrayList();
diff --git a/user/test/com/google/gwt/emultest/java8/util/AbstractJava8ListTest.java b/user/test/com/google/gwt/emultest/java8/util/AbstractJava8ListTest.java
index b686142..5396d40 100644
--- a/user/test/com/google/gwt/emultest/java8/util/AbstractJava8ListTest.java
+++ b/user/test/com/google/gwt/emultest/java8/util/AbstractJava8ListTest.java
@@ -83,7 +83,7 @@
   }
 
   public void testReplaceAll() {
-    ArrayList<String> list = new ArrayList<>();
+    List<String> list = createEmptyList();
 
     try {
       list.replaceAll(null);
@@ -106,6 +106,20 @@
     assertEquals(asList("a01", "b01", "c1"), list);
   }
 
+  public void testSort() {
+    List<String> list = createEmptyList();
+    list.sort(null);
+
+    Collections.addAll(list, "b", "a", "c");
+    list.sort(null);
+    assertEquals(asList("a", "b", "c"), list);
+
+    list = createEmptyList();
+    Collections.addAll(list, "b", "a", "c");
+    list.sort(Collections.reverseOrder());
+    assertEquals(asList("c", "b", "a"), list);
+  }
+
   protected abstract List<String> createEmptyList();
 
 }
