aboutsummaryrefslogtreecommitdiff
path: root/WordPress/src/androidTest/java/org/wordpress/android/networking/GravatarApiTest.java
blob: dc8ac78c8c574edd1a860ce8b626c37849d4f381 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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));
    }
}