From ffb1042146e4d05b265b2a8892ef06e41820f1de Mon Sep 17 00:00:00 2001 From: Pablo Fernandez Date: Thu, 7 Oct 2010 21:09:51 -0300 Subject: [PATCH] Added support for custom URIs --- pom.xml | 2 +- src/main/java/org/scribe/utils/Preconditions.java | 5 ++++- src/test/java/org/scribe/utils/PreconditionsTest.java | 11 +++++++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 137ccf6..ef0710a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.scribe scribe jar - 1.0.3 + 1.0.4 OAuth Library diff --git a/src/main/java/org/scribe/utils/Preconditions.java b/src/main/java/org/scribe/utils/Preconditions.java index de22b4e..06bd151 100644 --- a/src/main/java/org/scribe/utils/Preconditions.java +++ b/src/main/java/org/scribe/utils/Preconditions.java @@ -1,10 +1,13 @@ package org.scribe.utils; +import java.util.regex.Pattern; + import org.scribe.model.OAuthConstants; public class Preconditions { private static final String DEFAULT_MESSAGE = "Received an invalid parameter"; + private static final Pattern URL_PATTERN = Pattern.compile("[a-zA-Z]+://\\S+"); public static void checkNotNull(Object object, String errorMsg) { @@ -33,7 +36,7 @@ public class Preconditions static boolean isUrl(String url) { - return url.startsWith("http://") || url.startsWith("https://"); + return URL_PATTERN.matcher(url).matches(); } private static void check(boolean requirements, String error) diff --git a/src/test/java/org/scribe/utils/PreconditionsTest.java b/src/test/java/org/scribe/utils/PreconditionsTest.java index f2290a3..0add2f6 100644 --- a/src/test/java/org/scribe/utils/PreconditionsTest.java +++ b/src/test/java/org/scribe/utils/PreconditionsTest.java @@ -53,6 +53,17 @@ public class PreconditionsTest Preconditions.checkValidUrl("https://www.example.com", ERROR_MSG); } + public void shouldAllowNonStandarProtocolsForAndroid() + { + Preconditions.checkValidUrl("myUrl://www.example.com", ERROR_MSG); + } + + @Test(expected = IllegalArgumentException.class) + public void shouldNotAllowStrangeProtocolNames() + { + Preconditions.checkValidUrl("_weird*://www.example.com", ERROR_MSG); + } + public void shouldAllowOutOfBandAsValidCallbackValue() { Preconditions.checkValidOAuthCallback("oob", ERROR_MSG);