Fix StackTraceCreatorTest in hosted mode. Patch by: bobv Review by: rjrjr (TBR) git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5792 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/test/com/google/gwt/core/client/impl/StackTraceCreatorTest.java b/user/test/com/google/gwt/core/client/impl/StackTraceCreatorTest.java index abddc36..25545ba 100644 --- a/user/test/com/google/gwt/core/client/impl/StackTraceCreatorTest.java +++ b/user/test/com/google/gwt/core/client/impl/StackTraceCreatorTest.java
@@ -17,6 +17,7 @@ import com.google.gwt.core.client.GWT; import com.google.gwt.core.client.JavaScriptException; +import com.google.gwt.core.client.JavaScriptObject; import com.google.gwt.core.client.JsArrayString; import com.google.gwt.junit.client.GWTTestCase; @@ -26,7 +27,7 @@ */ public class StackTraceCreatorTest extends GWTTestCase { public static void testJavaScriptException() { - JsArrayString start = StackTraceCreator.createStackTrace(); + JsArrayString start = sample(); Throwable t = null; try { throwNative(); @@ -54,7 +55,7 @@ checkStack(myName, t); - JsArrayString end = StackTraceCreator.createStackTrace(); + JsArrayString end = sample(); assertEquals(start, end); } @@ -63,22 +64,22 @@ */ public static void testReentrantCalls() { if (!GWT.isScript()) { - // StackTraceCreator.createStackTrace() is useless in hosted mode + // sample is useless in hosted mode return; } - JsArrayString start = StackTraceCreator.createStackTrace(); + JsArrayString start = sample(); JsArrayString stack = countDown(5); assertNotNull(stack); assertTrue(stack.length() > 0); - JsArrayString end = StackTraceCreator.createStackTrace(); + JsArrayString end = sample(); assertEquals(start, end); } public static void testStackTraces() { - JsArrayString start = StackTraceCreator.createStackTrace(); + JsArrayString start = sample(); Throwable t; try { @@ -96,10 +97,17 @@ checkStack(myName, t); - JsArrayString end = StackTraceCreator.createStackTrace(); + JsArrayString end = sample(); assertEquals(start, end); } + private static void assertEquals(JsArrayString start, JsArrayString end) { + assertEquals("length", start.length(), end.length()); + for (int i = 0, j = start.length(); i < j; i++) { + assertEquals("frame " + i, start.get(i), end.get(i)); + } + } + private static void checkStack(String myName, Throwable t) { assertNotNull("myName", myName); assertNotNull("t", t); @@ -130,18 +138,19 @@ found); } - private static void assertEquals(JsArrayString start, JsArrayString end) { - assertEquals("length", start.length(), end.length()); - for (int i = 0, j = start.length(); i < j; i++) { - assertEquals("frame " + i, start.get(i), end.get(i)); - } - } - private static JsArrayString countDown(int count) { if (count > 0) { return countDown(count - 1); } else { + return sample(); + } + } + + private static JsArrayString sample() { + if (GWT.isScript()) { return StackTraceCreator.createStackTrace(); + } else { + return JavaScriptObject.createArray().cast(); } }