Skip to content

Instantly share code, notes, and snippets.

@fernandezpablo85
Created October 8, 2010 00:01
Show Gist options
  • Save fernandezpablo85/616146 to your computer and use it in GitHub Desktop.
Save fernandezpablo85/616146 to your computer and use it in GitHub Desktop.
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);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment