/* * Copyright 2007 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; /** * Tests for the URL utility class. */ public class URLTest extends GWTTestCase { private final String DECODED_URL = "http://www.foo \u00E9+bar.com/1_!~*'();/?@&=+$,#"; private final String DECODED_URL_COMPONENT = "-_.!~*'():/#?@ \u00E9+"; private final String ENCODED_URL = "http://www.foo%20%C3%A9+bar.com/1_!~*'();/?@&=+$,#"; private final String ENCODED_URL_COMPONENT = "-_.!~*'()%3A%2F%23%3F%40%20%C3%A9%2B"; private final String ENCODED_URL_COMPONENT_QS = "-_.!~*'()%3A%2F%23%3F%40+%C3%A9%2B"; public String getModuleName() { return "com.google.gwt.http.HttpSuite"; } /** * Test method for * {@link com.google.gwt.http.client.URL#decode(java.lang.String)}. */ public void testDecode() { try { URL.decode(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.decode("")); assertEquals(" ", URL.decode(" ")); String actualURL = URL.decode(ENCODED_URL); assertEquals(DECODED_URL, actualURL); } /** * Test method for * {@link com.google.gwt.http.client.URL#decodeComponent(java.lang.String)}. */ @SuppressWarnings("deprecation") public void testDecodeComponent() { try { URL.decodeComponent(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.decodeComponent("")); assertEquals(" ", URL.decodeComponent(" ")); assertEquals(" ", URL.decodeComponent("+")); assertEquals(" ", URL.decodeComponent("%20")); String actualURLComponent = URL.decodeComponent(ENCODED_URL_COMPONENT); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); actualURLComponent = URL.decodeComponent(ENCODED_URL_COMPONENT_QS); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#decodeComponent(java.lang.String,boolean)}. */ @SuppressWarnings("deprecation") public void testDecodeComponent2() { try { URL.decodeComponent(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.decodeComponent("", false)); assertEquals("", URL.decodeComponent("", true)); assertEquals(" ", URL.decodeComponent(" ", false)); assertEquals(" ", URL.decodeComponent(" ", true)); assertEquals("+", URL.decodeComponent("+", false)); assertEquals(" ", URL.decodeComponent("+", true)); assertEquals(" ", URL.decodeComponent("%20", false)); assertEquals(" ", URL.decodeComponent("%20", true)); String actualURLComponent = URL.decodeComponent(ENCODED_URL_COMPONENT, false); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); actualURLComponent = URL.decodeComponent(ENCODED_URL_COMPONENT_QS, true); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#decodePathSegment(java.lang.String,boolean)}. */ public void testDecodePathSegment() { try { URL.decodePathSegment(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.decodePathSegment("")); assertEquals(" ", URL.decodePathSegment(" ")); assertEquals("+", URL.decodePathSegment("+")); assertEquals(" ", URL.decodePathSegment("%20")); String actualURLComponent = URL.decodePathSegment(ENCODED_URL_COMPONENT); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#decodeQueryString(java.lang.String)}. */ public void testDecodeQueryString() { try { URL.decodeQueryString(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.decodeQueryString("")); assertEquals(" ", URL.decodeQueryString(" ")); assertEquals(" ", URL.decodeQueryString("+")); assertEquals(" ", URL.decodeQueryString("%20")); String actualURLComponent = URL.decodeQueryString(ENCODED_URL_COMPONENT); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); actualURLComponent = URL.decodeQueryString(ENCODED_URL_COMPONENT_QS); assertEquals(DECODED_URL_COMPONENT, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#encode(java.lang.String)}. */ public void testEncode() { try { URL.encode(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.encode("")); assertEquals("%20",URL.encode(" ")); String actualURL = URL.encode(DECODED_URL); assertEquals(ENCODED_URL, actualURL); } /** * Test method for * {@link com.google.gwt.http.client.URL#encodeComponent(java.lang.String)}. */ @SuppressWarnings("deprecation") public void testEncodeComponent() { try { URL.encodeComponent(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.encodeComponent("")); assertEquals("+", URL.encodeComponent(" ")); String actualURLComponent = URL.encodeComponent(DECODED_URL_COMPONENT); assertEquals(ENCODED_URL_COMPONENT_QS, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#encodeComponent(java.lang.String,boolean)}. */ @SuppressWarnings("deprecation") public void testEncodeComponent2() { try { URL.encodeComponent(null, false); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } try { URL.encodeComponent(null, true); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.encodeComponent("", false)); assertEquals("", URL.encodeComponent("", true)); assertEquals("%20", URL.encodeComponent(" ", false)); assertEquals("+", URL.encodeComponent(" ", true)); String actualURLComponent = URL.encodeComponent(DECODED_URL_COMPONENT, false); assertEquals(ENCODED_URL_COMPONENT, actualURLComponent); actualURLComponent = URL.encodeComponent(DECODED_URL_COMPONENT, true); assertEquals(ENCODED_URL_COMPONENT_QS, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#encodePathSegment(java.lang.String,boolean)}. */ public void testEncodePathSegment() { try { URL.encodePathSegment(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.encodePathSegment("")); assertEquals("%20", URL.encodePathSegment(" ")); String actualURLComponent = URL.encodePathSegment(DECODED_URL_COMPONENT); assertEquals(ENCODED_URL_COMPONENT, actualURLComponent); } /** * Test method for * {@link com.google.gwt.http.client.URL#encodeQueryString(java.lang.String)}. */ public void testEncodeQueryString() { try { URL.encodeQueryString(null); fail("Expected NullPointerException"); } catch (NullPointerException ex) { // expected exception was thrown } assertEquals("", URL.encodeQueryString("")); assertEquals("+", URL.encodeQueryString(" ")); String actualURLComponent = URL.encodeQueryString(DECODED_URL_COMPONENT); assertEquals(ENCODED_URL_COMPONENT_QS, actualURLComponent); } }