diff options
Diffstat (limited to 'WordPress/src/androidTest/java/org/wordpress/android/networking')
4 files changed, 198 insertions, 0 deletions
diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java new file mode 100644 index 000000000..c5936fd61 --- /dev/null +++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/AuthenticatorRequestTest.java @@ -0,0 +1,61 @@ +package org.wordpress.android.networking; + +import android.test.InstrumentationTestCase; + +import com.wordpress.rest.RestClient; + +import org.wordpress.android.FactoryUtils; + +public class AuthenticatorRequestTest extends InstrumentationTestCase { + RestClient mRestClient; + AuthenticatorRequest mAuthenticatorRequest; + + @Override + protected void setUp() throws Exception { + super.setUp(); + FactoryUtils.initWithTestFactories(); + mRestClient = RestClientFactory.instantiate(null); + mAuthenticatorRequest = new AuthenticatorRequest(null, null, mRestClient, null); + } + + @Override + protected void tearDown() throws Exception { + FactoryUtils.clearFactories(); + super.tearDown(); + } + + public void testExtractSiteIdFromUrl1() { + String url = ""; + assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl2() { + String url = null; + assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl3() { + String url = "https://public-api.wordpress.com/rest/v1/batch/?urls%5B%5D=%2Fsites%2F57991476%2Fstats%2Freferrers%3Fdate%3D2014-05-08&urls%5B%5D=%2Fsites%2F57991476%2Fstats%2Freferrers%3Fdate%3D2014-05-07"; + assertEquals("57991476", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl4() { + String url = "https://public-api.wordpress.com/rest/v1/sites/59073674/stats"; + assertEquals("59073674", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl5() { + String url = "https://public-api.wordpress.com/rest/v1/sites//stats"; + assertEquals("", mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl6() { + String url = "https://public-api.wordpress.com/rest/v1/batch/?urls%5B%5D=%2Fsites%2F"; + assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } + + public void testExtractSiteIdFromUrl7() { + String url = "https://public-api.wordpress.com/rest/v1/sites/"; + assertEquals(null, mAuthenticatorRequest.extractSiteIdFromUrl(mRestClient.getEndpointURL(), url)); + } +}
\ No newline at end of file diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java new file mode 100644 index 000000000..dc8ac78c8 --- /dev/null +++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java @@ -0,0 +1,44 @@ +package org.wordpress.android.networking; + +import android.test.InstrumentationTestCase; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; + +import okhttp3.Request; +import okhttp3.RequestBody; +import okio.Buffer; + +public class GravatarApiTest extends InstrumentationTestCase { + + public void testGravatarUploadRequest() throws IOException { + final String fileContent = "abcdefg"; + + File tempFile = new File(getInstrumentation().getTargetContext().getCacheDir(), "tempFile.jpg"); + FileOutputStream fos = new FileOutputStream(tempFile); + fos.write(fileContent.getBytes()); + fos.flush(); + fos.close(); + + final String email = "a@b.com"; + Request uploadRequest = GravatarApi.prepareGravatarUpload(email, tempFile); + + assertEquals("POST", uploadRequest.method()); + + RequestBody requestBody = uploadRequest.body(); + assertTrue(requestBody.contentType().toString().startsWith("multipart/form-data")); + + final Buffer buffer = new Buffer(); + requestBody.writeTo(buffer); + final String body = buffer.readUtf8(); + + assertTrue(body.contains("Content-Disposition: form-data; name=\"account\"")); + assertTrue(body.contains("Content-Length: " + email.length())); + assertTrue(body.contains(email)); + + assertTrue(body.contains("Content-Disposition: form-data; name=\"filedata\"; filename=\"" + tempFile.getName() + "\"")); + assertTrue(body.contains("Content-Type: multipart/form-data")); + assertTrue(body.contains(fileContent)); + } +} diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java new file mode 100644 index 000000000..3e0f0fb50 --- /dev/null +++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/WPNetworkImageViewTest.java @@ -0,0 +1,58 @@ +package org.wordpress.android.networking; + +import android.os.Handler; +import android.test.InstrumentationTestCase; + +import com.android.volley.VolleyError; +import com.android.volley.toolbox.ImageLoader.ImageContainer; +import com.android.volley.toolbox.ImageLoader.ImageListener; + +import org.wordpress.android.WordPress; +import org.wordpress.android.util.AppLog; +import org.wordpress.android.util.AppLog.T; + +import java.util.concurrent.CountDownLatch; +import java.util.concurrent.TimeUnit; + +public class WPNetworkImageViewTest extends InstrumentationTestCase { + @Override + protected void setUp() throws Exception { + super.setUp(); + } + + @Override + protected void tearDown() throws Exception { + super.tearDown(); + } + + // https://github.com/wordpress-mobile/WordPress-Android/issues/1549 + public void testVolleyImageLoaderGetNullHost() throws InterruptedException { + Handler mainLooperHandler = new Handler(WordPress.getContext().getMainLooper()); + final CountDownLatch countDownLatch = new CountDownLatch(1); + final boolean success[] = new boolean[1]; + Runnable getImage = new Runnable() { + @Override + public void run() { + try { + // This call crash on old volley versions + WordPress.imageLoader.get("http;///hello/null/host", new ImageListener() { + @Override + public void onResponse(ImageContainer imageContainer, boolean b) {} + + @Override + public void onErrorResponse(VolleyError volleyError) {} + }, 1, 1); + success[0] = true; + } catch (Exception e) { + AppLog.e(T.TESTS, e); + success[0] = false; + } finally { + countDownLatch.countDown(); + } + } + }; + mainLooperHandler.post(getImage); + countDownLatch.await(1, TimeUnit.SECONDS); + assertTrue("Invalid Volley library version", success[0]); + } +}
\ No newline at end of file diff --git a/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java b/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java new file mode 100644 index 000000000..4b5c8256c --- /dev/null +++ b/WordPress/src/androidTest/java/org/wordpress/android/networking/XMLRPCTest.java @@ -0,0 +1,35 @@ +package org.wordpress.android.networking; + +import org.wordpress.android.DefaultMocksInstrumentationTestCase; +import org.wordpress.android.mocks.XMLRPCFactoryTest; +import org.xmlrpc.android.ApiHelper.Method; +import org.xmlrpc.android.XMLRPCClientInterface; +import org.xmlrpc.android.XMLRPCFactory; + +import java.net.URI; + +public class XMLRPCTest extends DefaultMocksInstrumentationTestCase { + public void testNumberExceptionWithInvalidDouble() throws Exception { + XMLRPCFactoryTest.setPrefixAllInstances("invalid-double-xmlrpc"); + XMLRPCClientInterface xmlrpcClientInterface = XMLRPCFactory.instantiate(URI.create("http://test.com/ast"), "", + ""); + try { + xmlrpcClientInterface.call(Method.GET_MEDIA_LIBRARY, null); + } catch (NumberFormatException e) { + return; + } + assertTrue("invalid double format should trigger a NumberException", false); + } + + public void testNumberExceptionWithInvalidInteger() throws Exception { + XMLRPCFactoryTest.setPrefixAllInstances("invalid-integer-xmlrpc"); + XMLRPCClientInterface xmlrpcClientInterface = XMLRPCFactory.instantiate(URI.create("http://test.com/ast"), "", + ""); + try { + xmlrpcClientInterface.call(Method.GET_MEDIA_LIBRARY, null); + } catch (NumberFormatException e) { + return; + } + assertTrue("invalid double format should trigger a NumberException", false); + } +} |