From 577e0253e89bc5ef89d52578022edcb54886759b Mon Sep 17 00:00:00 2001 From: Will Kwon Date: Thu, 3 Sep 2015 15:22:58 -0700 Subject: [PATCH 1/3] Updating build tools to 23.0.1 --- WordPressUtils/build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/WordPressUtils/build.gradle b/WordPressUtils/build.gradle index 4c77b82bc0e8..06e48011763c 100644 --- a/WordPressUtils/build.gradle +++ b/WordPressUtils/build.gradle @@ -20,7 +20,7 @@ dependencies { exclude group: 'commons-logging' } compile 'com.mcxiaoke.volley:library:1.0.18' - compile 'com.android.support:support-v13:23.0.0' + compile 'com.android.support:support-v13:23.0.1' } android { @@ -29,7 +29,7 @@ android { publishNonDefault true compileSdkVersion 23 - buildToolsVersion '23.0.0' + buildToolsVersion '23.0.1' defaultConfig { versionName "1.5.0" From 167f96de993360a6bdf1a911dac718ad0d6c4ad7 Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 9 Sep 2015 12:18:46 +0200 Subject: [PATCH 2/3] new UrlUtils method: appendPreviewURLParameter --- .../src/main/java/org/wordpress/android/util/UrlUtils.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java index 7ac4dbaf089d..c2529526a898 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java @@ -10,7 +10,6 @@ import java.io.UnsupportedEncodingException; import java.net.IDN; import java.net.URI; -import java.net.URL; import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.Charset; @@ -214,4 +213,8 @@ public static boolean isImageUrl(String url) { return cleanedUrl.endsWith("jpg") || cleanedUrl.endsWith("jpeg") || cleanedUrl.endsWith("gif") || cleanedUrl.endsWith("png"); } + + public static String appendPreviewURLParameter(String url) { + return Uri.parse(url).buildUpon().appendQueryParameter("preview", "true").build().toString(); + } } From 05310091a61a465b6e39ab54d127252130cbed1e Mon Sep 17 00:00:00 2001 From: Maxime Biais Date: Wed, 9 Sep 2015 15:35:49 +0200 Subject: [PATCH 3/3] generic approach to add parameters to a URL --- .../wordpress/android/util/UrlUtilsTest.java | 54 +++++++++++++++++++ .../org/wordpress/android/util/UrlUtils.java | 22 +++++--- 2 files changed, 69 insertions(+), 7 deletions(-) diff --git a/WordPressUtils/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java b/WordPressUtils/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java index 7b0bb6beeca7..8174d7004c61 100644 --- a/WordPressUtils/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java +++ b/WordPressUtils/src/androidTest/java/org/wordpress/android/util/UrlUtilsTest.java @@ -2,6 +2,9 @@ import android.test.InstrumentationTestCase; +import java.util.HashMap; +import java.util.Map; + public class UrlUtilsTest extends InstrumentationTestCase { public void testGetDomainFromUrlWithEmptyStringDoesNotReturnNull() { assertNotNull(UrlUtils.getDomainFromUrl("")); @@ -17,4 +20,55 @@ public void testGetDomainFromUrlWithHostReturnsHost() { assertTrue(host.equals("www.wordpress.com")); } + + public void testAppendUrlParameter1() { + String url = UrlUtils.appendUrlParameter("http://wp.com/test", "preview", "true"); + assertEquals("http://wp.com/test?preview=true", url); + } + + public void testAppendUrlParameter2() { + String url = UrlUtils.appendUrlParameter("http://wp.com/test?q=pony", "preview", "true"); + assertEquals("http://wp.com/test?q=pony&preview=true", url); + } + + public void testAppendUrlParameter3() { + String url = UrlUtils.appendUrlParameter("http://wp.com/test?q=pony#unicorn", "preview", "true"); + assertEquals("http://wp.com/test?q=pony&preview=true#unicorn", url); + } + + public void testAppendUrlParameter4() { + String url = UrlUtils.appendUrlParameter("/relative/test", "preview", "true"); + assertEquals("/relative/test?preview=true", url); + } + + public void testAppendUrlParameter5() { + String url = UrlUtils.appendUrlParameter("/relative/", "preview", "true"); + assertEquals("/relative/?preview=true", url); + } + + public void testAppendUrlParameter6() { + String url = UrlUtils.appendUrlParameter("http://wp.com/test/", "preview", "true"); + assertEquals("http://wp.com/test/?preview=true", url); + } + + public void testAppendUrlParameter7() { + String url = UrlUtils.appendUrlParameter("http://wp.com/test/?q=pony", "preview", "true"); + assertEquals("http://wp.com/test/?q=pony&preview=true", url); + } + + public void testAppendUrlParameters1() { + Map params = new HashMap<>(); + params.put("w", "200"); + params.put("h", "300"); + String url = UrlUtils.appendUrlParameters("http://wp.com/test", params); + assertEquals("http://wp.com/test?h=300&w=200", url); + } + + public void testAppendUrlParameters2() { + Map params = new HashMap<>(); + params.put("h", "300"); + params.put("w", "200"); + String url = UrlUtils.appendUrlParameters("/relative/test", params); + assertEquals("/relative/test?h=300&w=200", url); + } } diff --git a/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java b/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java index c2529526a898..834fd8b48c6a 100644 --- a/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java +++ b/WordPressUtils/src/main/java/org/wordpress/android/util/UrlUtils.java @@ -13,6 +13,8 @@ import java.net.URLDecoder; import java.net.URLEncoder; import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Map; public class UrlUtils { public static String urlEncode(final String text) { @@ -143,11 +145,7 @@ public static String removeQuery(final String urlString) { if (urlString == null) { return null; } - int pos = urlString.indexOf("?"); - if (pos == -1) { - return urlString; - } - return urlString.substring(0, pos); + return Uri.parse(urlString).buildUpon().clearQuery().toString(); } /** @@ -214,7 +212,17 @@ public static boolean isImageUrl(String url) { cleanedUrl.endsWith("gif") || cleanedUrl.endsWith("png"); } - public static String appendPreviewURLParameter(String url) { - return Uri.parse(url).buildUpon().appendQueryParameter("preview", "true").build().toString(); + public static String appendUrlParameter(String url, String paramName, String paramValue) { + Map parameters = new HashMap<>(); + parameters.put(paramName, paramValue); + return appendUrlParameters(url, parameters); + } + + public static String appendUrlParameters(String url, Map parameters) { + Uri.Builder uriBuilder = Uri.parse(url).buildUpon(); + for (Map.Entry parameter : parameters.entrySet()) { + uriBuilder.appendQueryParameter(parameter.getKey(), parameter.getValue()); + } + return uriBuilder.build().toString(); } }