All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.googlecode.gwt.test.internal.patchers.URLPatcher Maven / Gradle / Ivy

There is a newer version: 0.63
Show newest version
package com.googlecode.gwt.test.internal.patchers;

import com.google.gwt.http.client.URL;
import com.google.gwt.safehtml.shared.UriUtils;
import com.googlecode.gwt.test.exceptions.GwtTestPatchException;
import com.googlecode.gwt.test.patchers.PatchClass;
import com.googlecode.gwt.test.patchers.PatchMethod;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.net.URLEncoder;

@PatchClass(URL.class)
class URLPatcher {

    @PatchMethod
    static String encodeImpl(String decodedURL) {
        return UriUtils.encode(decodedURL);
    }

    @PatchMethod
    static String encodePathSegmentImpl(String decodedURLComponent) {
        try {
            String url = URLEncoder.encode(decodedURLComponent, "UTF-8");
            return url.replaceAll("\\+", "%20").replaceAll("%2B", "+");
        } catch (UnsupportedEncodingException e) {
            throw new GwtTestPatchException(e);
        }
    }

    @PatchMethod
    static String encodeQueryStringImpl(String decodedURLComponent) {
        return encodePathSegmentImpl(decodedURLComponent).replaceAll("%20", "+");
    }

    @PatchMethod
    static String decodeImpl(String encodedURL) {
        try {
            return URLDecoder.decode(encodedURL, "UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new GwtTestPatchException(e);
        }
    }

    @PatchMethod
    static String decodePathSegmentImpl(String encodedURLComponent) {
        return decodeImpl(encodedURLComponent);
    }

    @PatchMethod
    static String decodeQueryStringImpl(String encodedURLComponent) {
        return decodePathSegmentImpl(encodedURLComponent).replaceAll("\\+", "%20");
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy