Revision: 6336
Author: [email protected]
Date: Fri Oct  9 08:59:44 2009
Log: Revert "Adding UrlBuilder and using it in Showcase and GwtTestCase so  
we don't remove gwt.hosted parameter in URLs," due to web mode test  
failures in   
com.google.gwt.user.client.WindowTest.testLocationCreateUrlBuilder

This reverts tr...@6329

John, you did run ant test, right?
http://code.google.com/p/google-web-toolkit/source/detail?r=6336

Deleted:
  /trunk/user/src/com/google/gwt/http/client/UrlBuilder.java
  /trunk/user/test/com/google/gwt/http/client/UrlBuilderTest.java
Modified:
   
/trunk/samples/showcase/src/com/google/gwt/sample/showcase/client/Showcase.java
  /trunk/user/src/com/google/gwt/user/client/Window.java
   
/trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
  /trunk/user/test/com/google/gwt/http/HTTPSuite.java
  /trunk/user/test/com/google/gwt/user/client/WindowTest.java

=======================================
--- /trunk/user/src/com/google/gwt/http/client/UrlBuilder.java  Thu Oct  8  
13:06:28 2009
+++ /dev/null
@@ -1,243 +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.http.client;
-
-import java.util.HashMap;
-import java.util.Map;
-
-/**
- * Utility class to build a URL from components.
- *
- * TODO(jlabanca): Add a constructor that parses an existing URL
- */
-public class UrlBuilder {
-
-  /**
-   * The port to use when no port should be specified.
-   */
-  public static final int PORT_UNSPECIFIED = Integer.MIN_VALUE;
-
-  /**
-   * A mapping of query parameters to their values.
-   */
-  private Map<String, String[]> listParamMap = new HashMap<String,  
String[]>();
-
-  private String protocol = "http";
-  private String host = null;
-  private int port = PORT_UNSPECIFIED;
-  private String path = null;
-  private String hash = null;
-
-  /**
-   * Build the URL and return it as an encoded string.
-   *
-   * @return the encoded URL string
-   */
-  public String buildString() {
-    StringBuilder url = new StringBuilder();
-
-    // http://
-    url.append(protocol).append("://");
-
-    // http://www.google.com
-    if (host != null) {
-      url.append(host);
-    }
-
-    // http://www.google.com:80
-    if (port != PORT_UNSPECIFIED) {
-      url.append(":").append(port);
-    }
-
-    // http://www.google.com:80/path/to/file.html
-    if (path != null && !"".equals(path)) {
-      url.append("/").append(path);
-    }
-
-    // Generate the query string.
-    // http://www.google.com:80/path/to/file.html?k0=v0&k1=v1
-    char prefix = '?';
-    for (Map.Entry<String, String[]> entry : listParamMap.entrySet()) {
-      for (String val : entry.getValue()) {
-        url.append(prefix).append(entry.getKey()).append('=');
-        if (val != null) {
-          url.append(val);
-        }
-        prefix = '&';
-      }
-    }
-
-    // http://www.google.com:80/path/to/file.html?k0=v0&k1=v1#token
-    if (hash != null) {
-      url.append("#").append(hash);
-    }
-
-    return URL.encode(url.toString());
-  }
-
-  /**
-   * Remove a query parameter from the map.
-   *
-   * @param name the parameter name
-   */
-  public UrlBuilder removeParameter(String name) {
-    listParamMap.remove(name);
-    return this;
-  }
-
-  /**
-   * Set the hash portion of the location (ex. myAnchor or #myAnchor).
-   *
-   * @param hash the hash
-   */
-  public UrlBuilder setHash(String hash) {
-    if (hash != null && hash.startsWith("#")) {
-      hash = hash.substring(1);
-    }
-    this.hash = hash;
-    return this;
-  }
-
-  /**
-   * Set the host portion of the location (ex. google.com). You can also  
specify
-   * the port in this method (ex. localhost:8888).
-   *
-   * @param host the host
-   */
-  public UrlBuilder setHost(String host) {
-    // Extract the port from the host.
-    if (host != null && host.contains(":")) {
-      String[] parts = host.split(":");
-      if (parts.length > 2) {
-        throw new IllegalArgumentException(
-            "Host contains more than one colon: " + host);
-      }
-      try {
-        setPort(Integer.parseInt(parts[1]));
-      } catch (NumberFormatException e) {
-        throw new IllegalArgumentException("Could not parse port out of  
host: "
-            + host);
-      }
-      host = parts[0];
-    }
-    this.host = host;
-    return this;
-  }
-
-  /**
-   * <p>
-   * Set a query parameter to a list of values. Each value in the list  
will be
-   * added as its own key/value pair.
-   *
-   * <p>
-   * <h3>Example Output</h3>
-   * <code>?mykey=value0&mykey=value1&mykey=value2</code>
-   * </p>
-   *
-   * @param key the key
-   * @param values the list of values
-   */
-  public UrlBuilder setParameter(String key, String... values) {
-    assertNotNullOrEmpty(key, "Key cannot be null or empty", false);
-    assertNotNull(values,
-        "Values cannot null. Try using removeParameter instead.");
-    if (values.length == 0) {
-      throw new IllegalArgumentException(
-          "Values cannot be empty.  Try using removeParameter instead.");
-    }
-    listParamMap.put(key, values);
-    return this;
-  }
-
-  /**
-   * Set the path portion of the location (ex. path/to/file.html).
-   *
-   * @param path the path
-   */
-  public UrlBuilder setPath(String path) {
-    if (path != null && path.startsWith("/")) {
-      path = path.substring(1);
-    }
-    this.path = path;
-    return this;
-  }
-
-  /**
-   * Set the port to connect to.
-   *
-   * @param port the port, or {...@link #PORT_UNSPECIFIED}
-   */
-  public UrlBuilder setPort(int port) {
-    this.port = port;
-    return this;
-  }
-
-  /**
-   * Set the protocol portion of the location (ex. http).
-   *
-   * @param protocol the protocol
-   */
-  public UrlBuilder setProtocol(String protocol) {
-    assertNotNull(protocol, "Protocol cannot be null");
-    if (protocol.endsWith("://")) {
-      protocol = protocol.substring(0, protocol.length() - 3);
-    } else if (protocol.endsWith(":/")) {
-      protocol = protocol.substring(0, protocol.length() - 2);
-    } else if (protocol.endsWith(":")) {
-      protocol = protocol.substring(0, protocol.length() - 1);
-    }
-    if (protocol.contains(":")) {
-      throw new IllegalArgumentException("Invalid protocol: " + protocol);
-    }
-    assertNotNullOrEmpty(protocol, "Protocol cannot be empty", false);
-    this.protocol = protocol;
-    return this;
-  }
-
-  /**
-   * Assert that the value is not null.
-   *
-   * @param value the value
-   * @param message the message to include with any exceptions
-   * @throws IllegalArgumentException if value is null
-   */
-  private void assertNotNull(Object value, String message)
-      throws IllegalArgumentException {
-    if (value == null) {
-      throw new IllegalArgumentException(message);
-    }
-  }
-
-  /**
-   * Assert that the value is not null or empty.
-   *
-   * @param value the value
-   * @param message the message to include with any exceptions
-   * @param isState if true, throw a state exception instead
-   * @throws IllegalArgumentException if value is null
-   * @throws IllegalStateException if value is null and isState is true
-   */
-  private void assertNotNullOrEmpty(String value, String message,
-      boolean isState) throws IllegalArgumentException {
-    if (value == null || value.length() == 0) {
-      if (isState) {
-        throw new IllegalStateException(message);
-      } else {
-        throw new IllegalArgumentException(message);
-      }
-    }
-  }
-}
=======================================
--- /trunk/user/test/com/google/gwt/http/client/UrlBuilderTest.java     Thu  
Oct  8 13:06:28 2009
+++ /dev/null
@@ -1,335 +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.http.client;
-
-import com.google.gwt.junit.client.GWTTestCase;
-
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * Test Case for {...@link UrlBuilder}.
- */
-public class UrlBuilderTest extends GWTTestCase {
-
-  @Override
-  public String getModuleName() {
-    return "com.google.gwt.http.HttpSuite";
-  }
-
-  /**
-   * Test that the URL is encoded correctly.
-   */
-  public void testBuildStringEncode() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-    builder.setPath("path to file");
-    builder.setParameter("the key", "the value");
-     
assertEquals("http://google.com/path%20to%20file?the%20key=the%20value";,
-        builder.buildString());
-  }
-
-  public void testBuildStringEntireUrl() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Host only.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Host:Port
-    builder.setPort(100);
-    assertEquals("http://google.com:100";, builder.buildString());
-
-    // Host:Port/Path
-    builder.setPath("path/to/file");
-    assertEquals("http://google.com:100/path/to/file";,  
builder.buildString());
-
-    // Host:Port/Path?Param
-    builder.setParameter("key", "value");
-    assertEquals("http://google.com:100/path/to/file?key=value";,
-        builder.buildString());
-
-    // Host:Port/Path?Param#Hash
-    builder.setHash("token");
-    assertEquals("http://google.com:100/path/to/file?key=value#token";,
-        builder.buildString());
-  }
-
-  public void testBuildStringEntireUrlWithReturns() {
-    UrlBuilder builder = new UrlBuilder();
-     
builder.setHost("google.com").setPort(100).setPath("path/to/file").setParameter(
-        "key", "value").setHash("token");
-    assertEquals("http://google.com:100/path/to/file?key=value#token";,
-        builder.buildString());
-  }
-
-  public void testBuildStringParts() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Host only.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Host:Port
-    builder.setPort(100);
-    assertEquals("http://google.com:100";, builder.buildString());
-    builder.setPort(UrlBuilder.PORT_UNSPECIFIED);
-
-    // Host/Path
-    builder.setPath("path/to/file");
-    assertEquals("http://google.com/path/to/file";, builder.buildString());
-    builder.setPath(null);
-
-    // Host?Param
-    builder.setParameter("key", "value");
-    assertEquals("http://google.com?key=value";, builder.buildString());
-    builder.removeParameter("key");
-
-    // Host#Hash
-    builder.setHash("token");
-    assertEquals("http://google.com#token";, builder.buildString());
-    builder.setHash(null);
-  }
-
-  public void testSetHash() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Hash not specified
-    assertEquals("http://google.com";, builder.buildString());
-
-    // # added if not present
-    builder.setHash("myHash");
-    assertEquals("http://google.com#myHash";, builder.buildString());
-
-    // Null hash
-    builder.setHash(null);
-    assertEquals("http://google.com";, builder.buildString());
-
-    // # not added if present
-    builder.setHash("#myHash2");
-    assertEquals("http://google.com#myHash2";, builder.buildString());
-  }
-
-  public void testSetHost() {
-    UrlBuilder builder = new UrlBuilder();
-
-    // Host not specified.
-    assertEquals("http://";, builder.buildString());
-
-    // Null host.
-    builder.setHost(null);
-    assertEquals("http://";, builder.buildString());
-
-    // Empty host.
-    builder.setHost("");
-    assertEquals("http://";, builder.buildString());
-
-    // google.com
-    builder.setHost("google.com");
-    assertEquals("http://google.com";, builder.buildString());
-
-    // google.com:80
-    builder.setHost("google.com:80");
-    assertEquals("http://google.com:80";, builder.buildString());
-
-    // google.com:80 with overridden port.
-    builder.setHost("google.com:80");
-    builder.setPort(1000);
-    assertEquals("http://google.com:1000";, builder.buildString());
-
-    // google.com:80 with overridden port in host.
-    builder.setPort(1000);
-    builder.setHost("google.com:80");
-    assertEquals("http://google.com:80";, builder.buildString());
-
-    // Specify to many ports.
-    // google.com:80:90
-    try {
-      builder.setHost("google.com:80:90");
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    // Specify invalid port.
-    // google.com:test
-    try {
-      builder.setHost("google.com:test");
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-  }
-
-  public void testSetParameter() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Parameters not specified.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Simple parameter.
-    builder.setParameter("key", "value");
-    assertEquals("http://google.com?key=value";, builder.buildString());
-
-    // Remove simple parameter.
-    builder.removeParameter("key");
-    assertEquals("http://google.com";, builder.buildString());
-
-    // List parameter.
-    List<String> values = new ArrayList<String>();
-    builder.setParameter("key", "value0", "value1", "value2");
-    assertEquals("http://google.com?key=value0&key=value1&key=value2";,
-        builder.buildString());
-
-    // Remove list parameter.
-    builder.removeParameter("key");
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Multiple parameters.
-    builder.setParameter("key0", "value0", "value1", "value2");
-    builder.setParameter("key1", "simpleValue");
-
-    // The order of query params is not defined, so either URL is  
acceptable.
-    String url = builder.buildString();
-     
assertTrue(url.equals("http://google.com?key0=value0&key0=value1&key0=value2&key1=simpleValue";)
-        ||  
url.equals("http://google.com?key1=simpleValue&key0=value0&key0=value1&key0=value2";));
-
-    // Empty list of multiple parameters.
-    builder.setParameter("key0", "value0", "value1", "value2");
-    builder.setParameter("key1", "simpleValue");
-     
assertTrue(url.equals("http://google.com?key0=value0&key0=value1&key0=value2&key1=simpleValue";)
-        ||  
url.equals("http://google.com?key1=simpleValue&key0=value0&key0=value1&key0=value2";));
-  }
-
-  public void testSetParameterToNull() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    try {
-      builder.setParameter(null, "value");
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    try {
-      builder.setParameter(null);
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    try {
-      builder.setParameter("key", new String[0]);
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    try {
-      builder.setParameter("key", (String[]) null);
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    // Null values are okay.
-    builder.setParameter("key", (String) null);
-    assertEquals("http://google.com?key=";, builder.buildString());
-  }
-
-  public void testSetPath() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Path not specified.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Null path.
-    builder.setPath(null);
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Empty path.
-    builder.setPath("");
-    assertEquals("http://google.com";, builder.buildString());
-
-    // path/to/file.html
-    builder.setPath("path/to/file.html");
-    assertEquals("http://google.com/path/to/file.html";,  
builder.buildString());
-
-    // /path/to/file.html
-    builder.setPath("/path/to/file.html");
-    assertEquals("http://google.com/path/to/file.html";,  
builder.buildString());
-  }
-
-  public void testSetPort() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Port not specified.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Port 1000.
-    builder.setPort(1000);
-    assertEquals("http://google.com:1000";, builder.buildString());
-
-    // PORT_UNSPECIFIED.
-    builder.setPort(UrlBuilder.PORT_UNSPECIFIED);
-    assertEquals("http://google.com";, builder.buildString());
-  }
-
-  public void testSetProtocol() {
-    UrlBuilder builder = new UrlBuilder();
-    builder.setHost("google.com");
-
-    // Protocol not specified.
-    assertEquals("http://google.com";, builder.buildString());
-
-    // Null host.
-    try {
-      builder.setProtocol(null);
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    // Empty host.
-    try {
-      builder.setProtocol("");
-      fail("Expected IllegalArgumentException");
-    } catch (IllegalArgumentException e) {
-      // Expected.
-    }
-
-    // ftp
-    builder.setProtocol("ftp");
-    assertEquals("ftp://google.com";, builder.buildString());
-
-    // tcp:
-    builder.setProtocol("tcp:");
-    assertEquals("tcp://google.com", builder.buildString());
-
-    // http:/
-    builder.setProtocol("http:/");
-    assertEquals("http://google.com";, builder.buildString());
-
-    // http://
-    builder.setProtocol("http://";);
-    assertEquals("http://google.com";, builder.buildString());
-  }
-}
=======================================
---  
/trunk/samples/showcase/src/com/google/gwt/sample/showcase/client/Showcase.java 
 
Thu Oct  8 13:06:28 2009
+++  
/trunk/samples/showcase/src/com/google/gwt/sample/showcase/client/Showcase.java 
 
Fri Oct  9 08:59:44 2009
@@ -29,7 +29,6 @@
  import com.google.gwt.event.logical.shared.SelectionHandler;
  import com.google.gwt.event.logical.shared.ValueChangeEvent;
  import com.google.gwt.event.logical.shared.ValueChangeHandler;
-import com.google.gwt.http.client.UrlBuilder;
  import com.google.gwt.i18n.client.LocaleInfo;
  import  
com.google.gwt.sample.showcase.client.content.i18n.CwConstantsExample;
  import  
com.google.gwt.sample.showcase.client.content.i18n.CwConstantsWithLookupExample;
@@ -70,7 +69,6 @@
  import com.google.gwt.user.client.Command;
  import com.google.gwt.user.client.History;
  import com.google.gwt.user.client.Window;
-import com.google.gwt.user.client.Window.Location;
  import com.google.gwt.user.client.ui.AbstractImagePrototype;
  import com.google.gwt.user.client.ui.HTML;
  import com.google.gwt.user.client.ui.HasHorizontalAlignment;
@@ -152,6 +150,29 @@
     */
    static String CUR_THEME = ShowcaseConstants.STYLE_THEMES[0];

+  /**
+   * Get the URL of the page, without an hash of query string.
+   *
+   * @return the location of the page
+   */
+  private static native String getHostPageLocation()
+  /*-{
+    var s = $doc.location.href;
+
+    // Pull off any hash.
+    var i = s.indexOf('#');
+    if (i != -1)
+      s = s.substring(0, i);
+
+    // Pull off any query string.
+    i = s.indexOf('?');
+    if (i != -1)
+      s = s.substring(0, i);
+
+    // Ensure a final slash if non-empty.
+    return s;
+  }-*/;
+
    /**
     * The {...@link Application}.
     */
@@ -428,9 +449,8 @@
      localeBox.addChangeHandler(new ChangeHandler() {
        public void onChange(ChangeEvent event) {
          String localeName =  
localeBox.getValue(localeBox.getSelectedIndex());
-        UrlBuilder builder =  
Location.createUrlBuilder().setParameter("locale",
-            localeName);
-        Window.Location.replace(builder.buildString());
+        Window.open(getHostPageLocation() + "?locale=" +  
localeName, "_self",
+            "");
        }
      });
      HorizontalPanel localeWrapper = new HorizontalPanel();
=======================================
--- /trunk/user/src/com/google/gwt/user/client/Window.java      Thu Oct  8  
13:06:28 2009
+++ /trunk/user/src/com/google/gwt/user/client/Window.java      Fri Oct  9  
08:59:44 2009
@@ -30,7 +30,6 @@
  import com.google.gwt.event.shared.HandlerRegistration;
  import com.google.gwt.event.shared.HasHandlers;
  import com.google.gwt.http.client.URL;
-import com.google.gwt.http.client.UrlBuilder;
  import com.google.gwt.user.client.impl.WindowImpl;

  import java.util.ArrayList;
@@ -131,39 +130,6 @@
      public static native void assign(String newURL) /*-{
        $wnd.location.assign(newURL);
      }-*/;
-
-    /**
-     * Create a {...@link UrlBuilder} based on this {...@link Location}.
-     *
-     * @return the new builder
-     */
-    public static UrlBuilder createUrlBuilder() {
-      UrlBuilder builder = new UrlBuilder();
-      builder.setProtocol(getProtocol());
-      builder.setHost(getHost());
-      String path = getPath();
-      if (path != null && path.length() > 0) {
-        builder.setPath(path);
-      }
-      String hash = getHash();
-      if (hash != null && hash.length() > 0) {
-        builder.setHash(hash);
-      }
-      String port = getPort();
-      if (port != null && port.length() > 0) {
-        builder.setPort(Integer.parseInt(port));
-      }
-
-      // Add query parameters.
-      Map<String, List<String>> params = getParameterMap();
-      for (Map.Entry<String, List<String>> entry : params.entrySet()) {
-        List<String> values = new ArrayList<String>(entry.getValue());
-        builder.setParameter(entry.getKey(),
-            values.toArray(new String[values.size()]));
-      }
-
-      return builder;
-    }

      /**
       * Gets the string to the right of the URL's hash.
@@ -434,7 +400,7 @@
    private static boolean resizeHandlersInitialized;
    private static int lastResizeWidth;
    private static int lastResizeHeight;
-
+
    private static final WindowImpl impl = GWT.create(WindowImpl.class);

    /**
@@ -512,8 +478,7 @@
     * Adds a listener to receive window scroll events.
     *
     * @param listener the listener to be informed when the window is  
scrolled
-   * @deprecated use {...@link Window#addWindowScrollHandler(ScrollHandler)}
-   *             instead
+   * @deprecated use {...@link Window#addWindowScrollHandler(ScrollHandler)}  
instead
     */
    @Deprecated
    public static void addWindowScrollListener(WindowScrollListener  
listener) {
=======================================
---  
/trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
      
Thu Oct  8 13:06:28 2009
+++  
/trunk/user/super/com/google/gwt/junit/translatable/com/google/gwt/junit/client/impl/GWTRunner.java
      
Fri Oct  9 08:59:44 2009
@@ -17,7 +17,6 @@

  import com.google.gwt.core.client.EntryPoint;
  import com.google.gwt.core.client.GWT;
-import com.google.gwt.http.client.UrlBuilder;
  import com.google.gwt.junit.client.GWTTestCase;
  import com.google.gwt.junit.client.impl.JUnitHost.TestBlock;
  import com.google.gwt.junit.client.impl.JUnitHost.TestInfo;
@@ -258,11 +257,18 @@
         * We're being asked to run a test in a different module. We must  
navigate
         * the browser to a new URL which will run that other module.
         */
-      UrlBuilder builder = Window.Location.createUrlBuilder();
-      builder.setParameter(BLOCKINDEX_QUERY_PARAM,
-          Integer.toString(currentBlock.getIndex())).setPath(
-          newModule + "/junit.html");
-      Window.Location.replace(builder.buildString());
+      String href = Window.Location.getHref();
+      if (href.contains("?")) {
+        href = href.substring(0, href.indexOf("?"));
+      } else if (href.contains("#")) {
+        href = href.substring(0, href.indexOf("#"));
+      }
+      String newHref = href.replace(currentModule, newModule);
+      newHref += "?" + BLOCKINDEX_QUERY_PARAM + "=" +  
currentBlock.getIndex();
+      if (maxRetryCount >= 0) {
+        newHref += "&" + RETRYCOUNT_QUERY_PARAM + "=" + maxRetryCount;
+      }
+      Window.Location.replace(newHref);
        currentBlock = null;
        currentTestIndex = 0;
      }
=======================================
--- /trunk/user/test/com/google/gwt/http/HTTPSuite.java Thu Oct  8 13:06:28  
2009
+++ /trunk/user/test/com/google/gwt/http/HTTPSuite.java Fri Oct  9 08:59:44  
2009
@@ -20,7 +20,6 @@
  import com.google.gwt.http.client.RequestTest;
  import com.google.gwt.http.client.ResponseTest;
  import com.google.gwt.http.client.URLTest;
-import com.google.gwt.http.client.UrlBuilderTest;
  import com.google.gwt.junit.tools.GWTTestSuite;

  import junit.framework.Test;
@@ -39,7 +38,6 @@
      suite.addTestSuite(RequestBuilderTest.class);
      suite.addTestSuite(RequestTest.class);
      suite.addTestSuite(ResponseTest.class);
-    suite.addTestSuite(UrlBuilderTest.class);

      return suite;
    }
=======================================
--- /trunk/user/test/com/google/gwt/user/client/WindowTest.java Thu Oct  8  
13:06:28 2009
+++ /trunk/user/test/com/google/gwt/user/client/WindowTest.java Fri Oct  9  
08:59:44 2009
@@ -16,11 +16,9 @@
  package com.google.gwt.user.client;

  import com.google.gwt.event.logical.shared.ResizeEvent;
-import com.google.gwt.http.client.UrlBuilder;
  import com.google.gwt.junit.DoNotRunWith;
  import com.google.gwt.junit.Platform;
  import com.google.gwt.junit.client.GWTTestCase;
-import com.google.gwt.user.client.Window.Location;
  import com.google.gwt.user.client.ui.Label;
  import com.google.gwt.user.client.ui.RootPanel;

@@ -34,8 +32,8 @@
  public class WindowTest extends GWTTestCase {

    private static native String getNodeName(Element elem) /*-{
-    return (elem.nodeName || "").toLowerCase();
-  }-*/;
+     return (elem.nodeName || "").toLowerCase();
+   }-*/;

    /**
     * Removes all elements in the body, except scripts and iframes.
@@ -86,46 +84,6 @@
      assertEquals(host, hostName + ":" + port);
      assertEquals(href, protocol + "//" + host + path + query + hash);
    }
-
-  public void testLocationCreateUrlBuilder() {
-    History.newItem("theHash");
-    String expected = Location.getHref();
-
-    // Build the string with the builder.
-    UrlBuilder builder = Location.createUrlBuilder();
-    String actual = builder.buildString();
-
-    // Check the hash.
-    {
-      String[] expectedParts = expected.split("#");
-      String[] actualParts = actual.split("#");
-      assertEquals(2, actualParts.length);
-      assertEquals(expectedParts[1], actualParts[1]);
-      expected = expectedParts[0];
-      actual = actualParts[0];
-    }
-
-    // Check the query parameters.
-    {
-      String[] expectedParts = expected.split("[?]");
-      String[] actualParts = actual.split("[?]");
-      if (expectedParts.length > 1) {
-        assertEquals(2, actualParts.length);
-        String[] expectedPairs = expectedParts[1].split("&");
-        String[] actualPairs = actualParts[1].split("&");
-        assertEquals(expectedPairs.length, actualPairs.length);
-        for (String actualPair : actualPairs) {
-          String[] kv = actualPair.split("=");
-          assertEquals(Location.getParameter(kv[0]), kv[1]);
-        }
-      }
-      expected = expectedParts[0];
-      actual = actualParts[0];
-    }
-
-    // Check everything but the query params and hash/
-    assertEquals(expected, actual);
-  }

    public void testLocationParsing() {
      Map<String, List<String>> map;
@@ -135,22 +93,23 @@
      assertEquals(map.size(), 3);
      assertEquals(map.get("foo").get(0), "bar");
      assertEquals(map.get("fuzzy").get(0), "bunnies");
-
+
      // multiple values for the same parameter
      map = Window.Location.buildListParamMap(
          "?fuzzy=bunnies&foo=bar&num=42&foo=baz");
      assertEquals(map.size(), 3);
      assertEquals(map.get("foo").get(0), "bar");
      assertEquals(map.get("foo").get(1), "baz");
-
+
      // no query parameters.
      map = Window.Location.buildListParamMap("");
      assertEquals(map.size(), 0);
-
+
      // blank keys should be ignored, but blank values are OK. Also,
      // keys can contain whitespace. (but the browser may give whitespace
      // back as escaped).
-    map = Window.Location.buildListParamMap("?&&  
&a&b=&c=c&d=d=d&=e&f=2&f=1&");
+    map = Window.Location.buildListParamMap(
+        "?&& &a&b=&c=c&d=d=d&=e&f=2&f=1&");
      assertEquals(map.size(), 6);
      assertEquals(map.get(" ").get(0), "");
      assertEquals(map.get("a").get(0), "");
@@ -161,7 +120,8 @@
      assertEquals(map.get("f").get(1), "1");

      // Values escaped with hex codes should work too.
-    map = Window.Location.buildListParamMap("?foo=bar%20baz%3aqux");
+    map = Window.Location.buildListParamMap(
+    "?foo=bar%20baz%3aqux");
      assertEquals(map.get("foo").get(0), "bar baz:qux");
    }

@@ -230,7 +190,7 @@
    @SuppressWarnings("deprecation")
    static class ListenerTester implements WindowResizeListener {
      static int resize = 0;
-
+
      public void onWindowResized(int width, int height) {
        ++resize;
      }
@@ -256,7 +216,7 @@
      Window.removeWindowResizeListener(r1);
      ListenerTester.fire();
      assertEquals(ListenerTester.resize, 1);
-
+
      Window.removeWindowResizeListener(r2);
      ListenerTester.fire();
      assertEquals(ListenerTester.resize, 0);

--~--~---------~--~----~------------~-------~--~----~
http://groups.google.com/group/Google-Web-Toolkit-Contributors
-~----------~----~----~----~------~----~------~--~---

Reply via email to