Rollback r5208, since it is failing on IE7.


git-svn-id: https://google-web-toolkit.googlecode.com/svn/trunk@5210 8db76d5a-ed1c-0410-87a9-c151d255dfc7
diff --git a/user/src/com/google/gwt/jsonp/Jsonp.gwt.xml b/user/src/com/google/gwt/jsonp/Jsonp.gwt.xml
deleted file mode 100644
index fd39299..0000000
--- a/user/src/com/google/gwt/jsonp/Jsonp.gwt.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2009 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-	<inherits name='com.google.gwt.user.User'/>
-	<source path="client"/>
-</module>
diff --git a/user/src/com/google/gwt/jsonp/client/JsonpRequest.java b/user/src/com/google/gwt/jsonp/client/JsonpRequest.java
deleted file mode 100644
index fe64eec..0000000
--- a/user/src/com/google/gwt/jsonp/client/JsonpRequest.java
+++ /dev/null
@@ -1,215 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp.client;
-
-import com.google.gwt.dom.client.Document;
-import com.google.gwt.dom.client.Node;
-import com.google.gwt.dom.client.ScriptElement;
-import com.google.gwt.user.client.Command;
-import com.google.gwt.user.client.DeferredCommand;
-import com.google.gwt.user.client.Timer;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-/**
- * A JSONP request that is waiting for a response. The request can be cancelled.
- * 
- * @param <T> the type of the response object.
- */
-public class JsonpRequest<T> {
-
-  /**
-   * Each request will be assigned a new id.
-   */
-  private static int callbackCounter = 0;
-
-  private static native Node getDocumentElement() /*-{
-    return $doc.documentElement;
-  }-*/;
-  
-  private static String nextCallbackId() {
-    return "__jsonp" + (callbackCounter++) + "__";
-  }
-  
-  private final String callbackId;
-
-  private final int timeout;
-  
-  private final AsyncCallback<T> callback;
-  
-  /**
-   * Whether the result is expected to be an integer or not
-   */
-  @SuppressWarnings("unused") // used by JSNI
-  private final boolean expectInteger;
-
-  private final String callbackParam;
-
-  private final String failureCallbackParam;
-
-  /**
-   * Timer which keeps track of timeouts.
-   */
-  private Timer timer;
-
-  /**
-   * Create a new JSONP request.
-   * 
-   * @param callback The callback instance to notify when the response comes
-   *          back
-   * @param timeout Time in ms after which a {@link TimeoutException} will be
-   *          thrown
-   * @param expectInteger Should be true if T is {@link Integer}, false
-   *          otherwise
-   * @param callbackParam Name of the url param of the callback function name
-   * @param failureCallbackParam Name of the url param containing the the
-   *          failure callback function name, or null for no failure callback
-   */
-  JsonpRequest(AsyncCallback<T> callback, int timeout, boolean expectInteger,
-      String callbackParam, String failureCallbackParam) {
-    callbackId = nextCallbackId();
-    this.callback = callback;
-    this.timeout = timeout;
-    this.expectInteger = expectInteger;
-    this.callbackParam = callbackParam;
-    this.failureCallbackParam = failureCallbackParam;
-  }
-
-  /**
-   * Cancels a pending request.
-   */
-  public void cancel() {
-    timer.cancel();
-    unload();
-  }
-
-  public AsyncCallback<T> getCallback() {
-    return callback;
-  }
-
-  public int getTimeout() {
-    return timeout;
-  }
-
-  /**
-   * Sends a request using the JSONP mechanism.
-   * 
-   * @param baseUri To be sent to the server.
-   */
-  void send(final String baseUri) {
-    registerCallbacks();
-    StringBuffer uri = new StringBuffer(baseUri);
-    uri.append(baseUri.contains("?") ? "&" : "?");
-    uri.append(callbackParam).append("=").append(callbackId).append(
-        ".onSuccess");
-    if (failureCallbackParam != null) {
-      uri.append("&");
-      uri.append(failureCallbackParam).append("=").append(callbackId).append(
-          ".onFailure");
-    }
-    ScriptElement script = Document.get().createScriptElement();
-    script.setType("text/javascript");
-    script.setId(callbackId);
-    script.setSrc(uri.toString());
-    getDocumentElement().getFirstChild().appendChild(script);
-    timer = new Timer() {
-      @Override
-      public void run() {
-        onFailure(new TimeoutException("Timeout while calling " + baseUri));
-      }
-    };
-    timer.schedule(timeout);
-  }
-
-  @SuppressWarnings("unused") // used by JSNI
-  private void onFailure(String message) {
-    onFailure(new Exception(message));
-  }
-
-  private void onFailure(Throwable ex) {
-    timer.cancel();
-    try {
-      if (callback != null) {
-        callback.onFailure(ex);
-      }
-    } finally {
-      unload();
-    }
-  }
-
-  @SuppressWarnings("unused") // used by JSNI
-  private void onSuccess(T data) {
-    timer.cancel();
-    try {
-      if (callback != null) {
-        callback.onSuccess(data);
-      }
-    } finally {
-      unload();
-    }
-  }
-
-  /**
-   * Registers the callback methods that will be called when the JSONP response
-   * comes back. 2 callbacks are created, one to return the value, and one to
-   * notify a failure.
-   */
-  private native void registerCallbacks() /*-{
-    var self = this;
-    var callback = new Object();
-    $wnd[this.@com.google.gwt.jsonp.client.JsonpRequest::callbackId] = callback;
-    callback.onSuccess = function(data) {
-      // Box primitive types
-      if (typeof data == 'boolean') {
-        data = @java.lang.Boolean::new(Z)(data);
-      } else if (typeof data == 'number') {
-        if (self.@com.google.gwt.jsonp.client.JsonpRequest::expectInteger) {
-          data = @java.lang.Integer::new(I)(data);
-        } else {
-          data = @java.lang.Double::new(D)(data);
-        }
-      }
-      self.@com.google.gwt.jsonp.client.JsonpRequest::onSuccess(Ljava/lang/Object;)(data);
-    };
-    if (this.@com.google.gwt.jsonp.client.JsonpRequest::failureCallbackParam) {
-      callback.onFailure = function(message) {
-        self.@com.google.gwt.jsonp.client.JsonpRequest::onFailure(Ljava/lang/String;)(message);
-      };
-    }
-  }-*/;
-
-  /**
-   * Cleans everything once the response has been received: deletes the script
-   * tag, unregisters the callback.
-   */
-  private void unload() {
-    /*
-     * Some browsers (IE7) require the script tag to be deleted outside the
-     * scope of the script itself. Therefore, we need to defer the delete
-     * statement after the callback execution.
-     */
-    DeferredCommand.addCommand(new Command() {
-      public void execute() {
-        unregisterCallbacks();
-        Node script = Document.get().getElementById(callbackId);
-        getDocumentElement().getFirstChild().removeChild(script);
-      }
-    });
-  }
-
-  private native void unregisterCallbacks() /*-{
-    delete $wnd[this.@com.google.gwt.jsonp.client.JsonpRequest::callbackId];
-  }-*/;
-}
diff --git a/user/src/com/google/gwt/jsonp/client/JsonpRequestBuilder.java b/user/src/com/google/gwt/jsonp/client/JsonpRequestBuilder.java
deleted file mode 100644
index 7d26448..0000000
--- a/user/src/com/google/gwt/jsonp/client/JsonpRequestBuilder.java
+++ /dev/null
@@ -1,201 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp.client;
-
-import com.google.gwt.core.client.JavaScriptObject;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-
-/**
- * Class to send cross domain requests to an http server. The server will receive a request
- * including a callback url parameter, which should be used to return the response as following:
- *
- * <pre>&lt;callback&gt;(&lt;json&gt;);</pre>
- *
- * where &lt;callback&gt; is the url parameter (see {@link #setCallbackParam(String)}), and
- * &lt;json&gt; is the response to the request in json format.
- *
- * This will result on the client to call the corresponding {@link AsyncCallback#onSuccess(Object)}
- * method.
- *
- * <p>
- * If needed, errors can be handled by a separate callback:
- *
- * <pre>&lt;failureCallback&gt;(&lt;error&gt;);</pre>
- *
- * where &lt;error&gt; is a string containing an error message. This will result on the client to
- * call the corresponding {@link AsyncCallback#onFailure(Throwable)} method. See
- * {@link #setFailureCallbackParam(String)}.
- *
- * <p>
- * Example using <a href="http://code.google.com/apis/gdata/json.html#Request">JSON Google Calendar
- * GData API</a>:
- *
- * <pre>
- * String url = "http://www.google.com/calendar/feeds/developer-calendar@google.com/public/full" +
- *     "?alt=json-in-script";
- * JsonpRequestBuilder jsonp = new JsonpRequestBuilder();
- * jsonp.requestObject(url,
- *     new AsyncCallback&lt;Feed&gt;() {
- *       public void onFailure(Throwable throwable) {
- *         Log.severe("Error: " + throwable);
- *       }
- *
- *       public void onSuccess(Feed feed) {
- *         JsArray&lt;Entry&gt; entries = feed.getEntries();
- *         for (int i = 0; i &lt; entries.length(); i++) {
- *           Entry entry = entries.get(i);
- *           Log.info(entry.getTitle() +
- *                    " (" + entry.getWhere() + "): " +
- *                    entry.getStartTime() + " -> " +
- *                    entry.getEndTime());
- *         }
- *       }
- *     });
- * </pre>
- *
- * This example uses these overlay types:
- *
- * <pre>
- * class Entry extends JavaScriptObject {
- *   protected Entry() {}
- *
- *   public final native String getTitle() &#47;*-{
- *     return this.title.$t;
- *   }-*&#47;;
- *
- *   public final native String getWhere() &#47;*-{
- *     return this.gd$where[0].valueString;
- *   }-*&#47;;
- *
- *   public final native String getStartTime() &#47;*-{
- *     return this.gd$when ? this.gd$when[0].startTime : null;
- *   }-*&#47;;
- *
- *   public final native String getEndTime() &#47;*-{
- *     return this.gd$when ? this.gd$when[0].endTime : null;
- *   }-*&#47;;
- * }
- *
- * class Feed extends JavaScriptObject {
- *   protected Feed() {}
- *
- *   public final native JsArray&lt;Entry&gt; getEntries() &#47;*-{
- *     return this.feed.entry;
- *   }-*&#47;;
- * }
- * </pre>
- *
- * </p>
- */
-public class JsonpRequestBuilder {
-  private int timeout = 10000;
-  private String callbackParam = "callback";
-  private String failureCallbackParam = null;
-
-  /**
-   * @return the name of the callback url parameter to send to the server. The default value is
-   *     "callback".
-   */
-  public String getCallbackParam() {
-    return callbackParam;
-  }
-
-  /**
-   * @return the name of the failure callback url parameter to send to the server. The default is
-   *     null.
-   */
-  public String getFailureCallbackParam() {
-    return failureCallbackParam;
-  }
-
-  /**
-   * @return the expected timeout (ms) for this request.
-   */
-  public int getTimeout() {
-    return timeout;
-  }
-
-  public JsonpRequest<Boolean> requestBoolean(String url, AsyncCallback<Boolean> callback) {
-    return send(url, callback, false);
-  }
-
-  public JsonpRequest<Double> requestDouble(String url, AsyncCallback<Double> callback) {
-    return send(url, callback, false);
-  }
-
-  public JsonpRequest<Integer> requestInteger(String url, AsyncCallback<Integer> callback) {
-    return send(url, callback, true);
-  }
-
-  /**
-   * Sends a JSONP request and expects a JavaScript object as a result. The caller can either use
-   * {@link com.google.gwt.json.client.JSONObject} to parse it, or use a JavaScript overlay class.
-   */
-  public <T extends JavaScriptObject> JsonpRequest<T> requestObject(String url,
-      AsyncCallback<T> callback) {
-    return send(url, callback, false);
-  }
-
-  public JsonpRequest<String> requestString(String url, AsyncCallback<String> callback) {
-    return send(url, callback, false);
-  }
-
-  /**
-   * Sends a JSONP request and does not expect any results.
-   */
-  public void send(String url) {
-    send(url, null, false);
-  }
-
-  /**
-   * Sends a JSONP request, does not expect any result, but still allows to be notified when the
-   * request has been executed on the server.
-   */
-  public JsonpRequest<Void> send(String url, AsyncCallback<Void> callback) {
-    return send(url, callback, false);
-  }
-
-  /**
-   * @param callbackParam The name of the callback url parameter to send to the server. The default
-   *     value is "callback".
-   */
-  public void setCallbackParam(String callbackParam) {
-    this.callbackParam = callbackParam;
-  }
-
-  /**
-   * @param failureCallbackParam The name of the failure callback url parameter to send to the
-   *     server. The default is null.
-   */
-  public void setFailureCallbackParam(String failureCallbackParam) {
-    this.failureCallbackParam = failureCallbackParam;
-  }
-
-  /**
-   * @param timeout The expected timeout (ms) for this request. The default is 10s.
-   */
-  public void setTimeout(int timeout) {
-    this.timeout = timeout;
-  }
-
-  private <T> JsonpRequest<T> send(String url, AsyncCallback<T> callback, boolean expectInteger) {
-    JsonpRequest<T> request = new JsonpRequest<T>(callback, timeout, expectInteger, callbackParam,
-        failureCallbackParam);
-    request.send(url);
-    return request;
-  }
-}
diff --git a/user/src/com/google/gwt/jsonp/client/TimeoutException.java b/user/src/com/google/gwt/jsonp/client/TimeoutException.java
deleted file mode 100644
index 703f663..0000000
--- a/user/src/com/google/gwt/jsonp/client/TimeoutException.java
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp.client;
-
-/**
- * Exception sent when a JSONP calls expires the timeout.
- */
-public class TimeoutException extends Exception {
-
-  public TimeoutException() {
-  }
-
-  public TimeoutException(String s) {
-    super(s);
-  }
-}
diff --git a/user/test/com/google/gwt/jsonp/JsonpRequestSuite.java b/user/test/com/google/gwt/jsonp/JsonpRequestSuite.java
deleted file mode 100644
index 34fe230..0000000
--- a/user/test/com/google/gwt/jsonp/JsonpRequestSuite.java
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp;
-
-import com.google.gwt.jsonp.client.JsonpRequestTest;
-
-import junit.framework.Test;
-import junit.framework.TestCase;
-import junit.framework.TestSuite;
-
-/**
- * Suite for JSONP tests.
- */
-public class JsonpRequestSuite extends TestCase {
-  public static Test suite() {
-    TestSuite suite = new TestSuite();
-    suite.addTestSuite(JsonpRequestTest.class);
-    return suite;
-  }
-}
diff --git a/user/test/com/google/gwt/jsonp/JsonpTest.gwt.xml b/user/test/com/google/gwt/jsonp/JsonpTest.gwt.xml
deleted file mode 100644
index 989fc8d..0000000
--- a/user/test/com/google/gwt/jsonp/JsonpTest.gwt.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--                                                                        -->
-<!-- Copyright 2009 Google Inc.                                             -->
-<!-- Licensed under the Apache License, Version 2.0 (the "License"); you    -->
-<!-- may not use this file except in compliance with the License. You may   -->
-<!-- may obtain a copy of the License at                                    -->
-<!--                                                                        -->
-<!-- http://www.apache.org/licenses/LICENSE-2.0                             -->
-<!--                                                                        -->
-<!-- Unless required by applicable law or agreed to in writing, software    -->
-<!-- distributed under the License is distributed on an "AS IS" BASIS,      -->
-<!-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or        -->
-<!-- implied. License for the specific language governing permissions and   -->
-<!-- limitations under the License.                                         -->
-
-<module>
-  <!-- Inherit the JUnit support -->
-  <inherits name='com.google.gwt.junit.JUnit'/>
-  <inherits name = 'com.google.gwt.jsonp.Jsonp'/>
-
-  <!-- Include client-side source for the test cases -->
-  <source path="client"/>
-
-  <!-- JSONP servlet for testing -->
-  <servlet path='/echo' class='com.google.gwt.jsonp.server.EchoServlet'/>
-</module>
diff --git a/user/test/com/google/gwt/jsonp/client/JsonpRequestTest.java b/user/test/com/google/gwt/jsonp/client/JsonpRequestTest.java
deleted file mode 100644
index 7784827..0000000
--- a/user/test/com/google/gwt/jsonp/client/JsonpRequestTest.java
+++ /dev/null
@@ -1,182 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp.client;
-
-import com.google.gwt.core.client.GWT;
-import com.google.gwt.junit.client.GWTTestCase;
-import com.google.gwt.user.client.rpc.AsyncCallback;
-
-/**
- * Tests for {@link JsonpRequest}.
- */
-public class JsonpRequestTest extends GWTTestCase {
-
-  /**
-   * Checks that an error is received.
-   */
-  private class AssertFailureCallback<T> implements AsyncCallback<T> {
-    private String expectedMessage;
-
-    public AssertFailureCallback(String expectedMessage) {
-      this.expectedMessage = expectedMessage;
-    }
-
-    public void onFailure(Throwable throwable) {
-      assertEquals(expectedMessage, throwable.getMessage());
-      finishTest();
-    }
-
-    public void onSuccess(T value) {
-      fail();
-    }
-  }
-
-  /**
-   * Checks that the received value is as expected.
-   */
-  private class AssertSuccessCallback<T> implements AsyncCallback<T> {
-    private T expectedValue;
-
-    private AssertSuccessCallback(T expectedValue) {
-      this.expectedValue = expectedValue;
-    }
-
-    public void onFailure(Throwable throwable) {
-      fail();
-    }
-
-    public void onSuccess(T value) {
-      assertEquals(expectedValue, value);
-      finishTest();
-    }
-  }
-
-  /**
-   * Checks that a timeout happens.
-   */
-  private class AssertTimeoutException<T> implements AsyncCallback<T> {
-    public void onFailure(Throwable throwable) {
-      assertTrue(throwable instanceof TimeoutException);
-      finishTest();
-    }
-
-    public void onSuccess(T value) {
-      fail();
-    }
-  }
-
-  private static String echo(String value) {
-    return GWT.getModuleBaseURL() + "echo?action=SUCCESS&value=" + value;
-  }
-
-  private static String echoFailure(String error) {
-    return GWT.getModuleBaseURL() + "echo?action=FAILURE&error=" + error;
-  }
-
-  private static String echoTimeout() {
-    return GWT.getModuleBaseURL() + "echo?action=TIMEOUT";
-  }
-
-  private JsonpRequestBuilder jsonp;
-
-  @Override
-  public String getModuleName() {
-    return "com.google.gwt.jsonp.JsonpTest";
-  }
-
-  public void testBooleanFalse() {
-    jsonp.requestBoolean(echo("false"), new AssertSuccessCallback<Boolean>(
-        Boolean.FALSE));
-    delayTestFinish(500);
-  }
-
-  public void testBooleanTrue() {
-    jsonp.requestBoolean(echo("true"), new AssertSuccessCallback<Boolean>(
-        Boolean.TRUE));
-    delayTestFinish(500);
-  }
-
-  public void testDouble() {
-    jsonp.requestDouble(echo("123.456"), new AssertSuccessCallback<Double>(
-        123.456));
-    delayTestFinish(500);
-  }
-
-  public void testFailureCallback() {
-    jsonp.setFailureCallbackParam("failureCallback");
-    jsonp.requestString(echoFailure("ERROR"),
-        new AssertFailureCallback<String>("ERROR"));
-    delayTestFinish(500);
-  }
-
-  public void testInteger() {
-    jsonp.requestInteger(echo("123"), new AssertSuccessCallback<Integer>(123));
-    delayTestFinish(500);
-  }
-
-  /**
-   * Tests that if no failure callback is defined, the servlet receives well
-   * only a 'callback' parameter, and sends back the error to it.
-   */
-  public void testNoFailureCallback() {
-    jsonp.setFailureCallbackParam(null);
-    jsonp.requestString(echoFailure("ERROR"),
-        new AssertSuccessCallback<String>("ERROR"));
-    delayTestFinish(500);
-  }
-
-  public void testNullBoolean() {
-    jsonp.requestBoolean(echo("null"), new AssertSuccessCallback<Boolean>(null));
-    delayTestFinish(500);
-  }
-
-  public void testNullDouble() {
-    jsonp.requestDouble(echo("null"), new AssertSuccessCallback<Double>(null));
-    delayTestFinish(500);
-  }
-
-  public void testNullInteger() {
-    jsonp.requestInteger(echo("null"), new AssertSuccessCallback<Integer>(null));
-    delayTestFinish(500);
-  }
-
-  public void testNullString() {
-    jsonp.requestString(echo("null"), new AssertSuccessCallback<String>(null));
-    delayTestFinish(500);
-  }
-
-  public void testString() {
-    jsonp.requestString(echo("'Hello'"), new AssertSuccessCallback<String>(
-        "Hello"));
-    delayTestFinish(500);
-  }
-
-  public void testTimeout() {
-    jsonp.requestString(echoTimeout(), new AssertTimeoutException<String>());
-    delayTestFinish(2000);
-  }
-
-  public void testVoid() {
-    jsonp.send(echo(null), new AssertSuccessCallback<Void>(null));
-    delayTestFinish(500);
-  }
-
-  @Override
-  protected void gwtSetUp() throws Exception {
-    jsonp = new JsonpRequestBuilder();
-    jsonp.setTimeout(1000);
-  }
-}
diff --git a/user/test/com/google/gwt/jsonp/server/EchoServlet.java b/user/test/com/google/gwt/jsonp/server/EchoServlet.java
deleted file mode 100644
index bdee3ef..0000000
--- a/user/test/com/google/gwt/jsonp/server/EchoServlet.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright 2009 Google Inc.
- * 
- * Licensed under the Apache License, Version 2.0 (the "License"); you may not
- * use this file except in compliance with the License. You may obtain a copy of
- * the License at
- * 
- * http://www.apache.org/licenses/LICENSE-2.0
- * 
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
- * License for the specific language governing permissions and limitations under
- * the License.
- */
-package com.google.gwt.jsonp.server;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServlet;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * A servlet that returns a given value, following the JSONP protocol.
- * Expected url parameters:
- *
- * <ul>
- *   <li>action: one of the following values:
- *     <ul>
- *       <li>TIMEOUT: don't respond anything to simulate a timeout
- *       <li>SUCCESS: return a JSON value
- *       <li>FAILURE: return an error
- *     </ul>
- *   <li>value: the JSON value to return if action == "SUCCESS"
- *   <li>error: the error message to return if action == "FAILURE"
- * </ul>
- */
-public class EchoServlet extends HttpServlet {
-
-  private enum Action {
-    SUCCESS,
-    FAILURE,
-    TIMEOUT
-  }
-
-  @Override
-  protected void service(HttpServletRequest req, HttpServletResponse res)
-      throws ServletException, IOException {
-    switch (Action.valueOf(req.getParameter("action"))) {
-      case SUCCESS: {
-        String callback = req.getParameter("callback");
-        String value = req.getParameter("value");
-        if (value == null) {
-          value = "";
-        }
-        res.getWriter().println(callback + "(" + value + ");");
-        break;
-      }
-
-      case FAILURE: {
-        String failureCallback = req.getParameter("failureCallback");
-        String error = req.getParameter("error");
-        if (failureCallback != null) {
-          res.getWriter().println(failureCallback + "('" + error + "');");
-        } else {
-          // If no failure callback is defined, send the error through the
-          // success callback.
-          String callback = req.getParameter("callback");
-          res.getWriter().println(callback + "('" + error + "');");
-        }
-        break;
-      }
-
-      case TIMEOUT:
-        // Don't respond anything so that a timeout happens.
-    }
-  }
-}