diff --git a/src/main/java/com/snowplowanalytics/refererparser/Parser.java b/src/main/java/com/snowplowanalytics/refererparser/Parser.java index 4d9c232..d26a5de 100644 --- a/src/main/java/com/snowplowanalytics/refererparser/Parser.java +++ b/src/main/java/com/snowplowanalytics/refererparser/Parser.java @@ -125,7 +125,7 @@ private Referer parse(String scheme, String host, String path, String query, Str private Referer parse(String scheme, String host, String path, String query, String pageHost, List internalDomains){ - if (scheme == null || (!scheme.equals("http") && !scheme.equals("https"))) return null; + if (scheme == null || (!scheme.equals("http") && !scheme.equals("https") && !scheme.equals("android-app"))) return null; // Internal link if hosts match exactly // TODO: would also be nice to: diff --git a/src/test/java/com/snowplowanalytics/refererparser/ParserTest.java b/src/test/java/com/snowplowanalytics/refererparser/ParserTest.java index 3ea1be8..8657996 100644 --- a/src/test/java/com/snowplowanalytics/refererparser/ParserTest.java +++ b/src/test/java/com/snowplowanalytics/refererparser/ParserTest.java @@ -66,4 +66,24 @@ public void basicTests() throws URISyntaxException, MalformedURLException, JSONE result = parser.parse(new URL(u), ref); assertEquals("URL, String", expected, result.toString()); } + + @Test + public void schemeTest() throws URISyntaxException { + // Test different supported schemes + String ref = "m.facebook.com"; + String u = "www.example.com"; + String expected = "{medium: social, source: Facebook, term: null}"; + + // http + Referer result = parser.parse(new URI("http://"+ref), new URI(u)); + assertEquals("http", expected, result.toString()); + + // https + result = parser.parse(new URI("https://"+ref), new URI(u)); + assertEquals("https", expected, result.toString()); + + // android-app + result = parser.parse(new URI("android-app://"+ref), new URI(u)); + assertEquals("android-app", expected, result.toString()); + } }