From aca666cdf1af5eb1fecd63d2dea4314c043cb9ed Mon Sep 17 00:00:00 2001 From: Peter Stuifzand Date: Thu, 26 Apr 2018 02:07:25 +0200 Subject: [PATCH] Add basic tests for url and parsing of syndication --- .../micropub/MicropubConfigTest.java | 50 +++++++++++++++++++ .../java/eu/stuifzand/micropub/UrlTest.java | 19 +++++++ 2 files changed, 69 insertions(+) create mode 100644 app/src/test/java/eu/stuifzand/micropub/MicropubConfigTest.java create mode 100644 app/src/test/java/eu/stuifzand/micropub/UrlTest.java diff --git a/app/src/test/java/eu/stuifzand/micropub/MicropubConfigTest.java b/app/src/test/java/eu/stuifzand/micropub/MicropubConfigTest.java new file mode 100644 index 0000000..58816c7 --- /dev/null +++ b/app/src/test/java/eu/stuifzand/micropub/MicropubConfigTest.java @@ -0,0 +1,50 @@ +package eu.stuifzand.micropub; + +import com.google.gson.JsonArray; +import com.google.gson.JsonElement; +import com.google.gson.JsonObject; +import com.google.gson.JsonParser; + +import org.junit.Assert; +import org.junit.Test; + +import java.util.ArrayList; + +import eu.stuifzand.micropub.client.MicropubConfigResponseCallback; +import eu.stuifzand.micropub.client.Syndication; + +public class MicropubConfigTest { + @Test public void testConfigParse(){ + String configJson = "{\"syndicate-to\":[{\"uid\":\"bridgy-publish_twitter\",\"name\":\"Twitter via Bridgy Publish\"},{\"uid\":\"bridgy-publish_facebook\",\"name\":\"Facebook via Bridgy Publish\"},{\"uid\":\"bridgy-publish_github\",\"name\":\"Github via Bridgy Publish\"}]}"; + JsonParser parser = new JsonParser(); + JsonElement configElement = parser.parse(configJson); + + ArrayList syndicates = new ArrayList<>(); + + // Media endpoint + JsonObject config = configElement.getAsJsonObject(); + JsonElement elem = config.get("media-endpoint"); + if (elem != null) { + Assert.fail("media endpoint not available"); + } + + // Syndications. + JsonArray arr = config.getAsJsonArray("syndicate-to"); + if (arr != null) { + syndicates.clear(); + for (int i = 0; i < arr.size(); i++) { + JsonObject syn = arr.get(i).getAsJsonObject(); + syndicates.add(new Syndication(syn.get("uid").getAsString(), syn.get("name").getAsString())); + } + } + + Assert.assertEquals(syndicates.get(0).name.get(), "Twitter via Bridgy Publish"); + Assert.assertEquals(syndicates.get(0).uid.get(), "bridgy-publish_twitter"); + + Assert.assertEquals(syndicates.get(1).name.get(), "Facebook via Bridgy Publish"); + Assert.assertEquals(syndicates.get(1).uid.get(), "bridgy-publish_facebook"); + + Assert.assertEquals(syndicates.get(2).name.get(), "Github via Bridgy Publish"); + Assert.assertEquals(syndicates.get(2).uid.get(), "bridgy-publish_github"); + } +} diff --git a/app/src/test/java/eu/stuifzand/micropub/UrlTest.java b/app/src/test/java/eu/stuifzand/micropub/UrlTest.java new file mode 100644 index 0000000..eb37d55 --- /dev/null +++ b/app/src/test/java/eu/stuifzand/micropub/UrlTest.java @@ -0,0 +1,19 @@ +package eu.stuifzand.micropub; + +import org.junit.Assert; +import org.junit.Test; + +import okhttp3.HttpUrl; + +public class UrlTest { + @Test + public void testBuildUrl() { + String configKey = "config"; + HttpUrl micropubBackend = HttpUrl.parse("https://tiny.n9n.us/?micropub=endpoint"); + HttpUrl backend = micropubBackend.newBuilder() + .setQueryParameter("q", configKey) + .build(); + + Assert.assertEquals(backend.toString(), "https://tiny.n9n.us/?micropub=endpoint&q=config"); + } +}