gitpitch/test/com/gitpitch/FunctionalTest.java
David Russell 2f22fdb395 Added oEmbed discovery and embedding support.
- Added support for oEmbed.com discovery and embedding for GitPitch presentations.

- Changed policy regarding GitPitch menu, now closed by default on small screens or when embedded within iframe.

- Fixed functional tests to reflect new 404 not-found page.
2017-10-11 09:18:50 +07:00

147 lines
5.6 KiB
Java

package com.gitpitch;
import org.junit.Test;
import play.Logger;
import play.libs.ws.*;
import play.test.TestServer;
import java.util.concurrent.CompletionStage;
import static org.junit.Assert.assertEquals;
import static play.mvc.Http.Status.OK;
import static play.mvc.Http.Status.SEE_OTHER;
import static play.test.Helpers.*;
public class FunctionalTest {
final static Logger.ALogger log = Logger.of("com.gitpitch.ServerTest");
private static final String SLIDESHOW_PITCH_FOUND = "/gitpitch/hello-world";
private static final String SLIDESHOW_PITCH_NOT_FOUND = "/gitpitch/hello-world/not-found";
private static final String MARKDOWN_PITCH_FOUND =
"/pitchme/markdown/github/gitpitch/hello-world/master/PITCHME.md";
private static final String MARKDOWN_PITCH_NOT_FOUND =
"/pitchme/markdown/github/gitpitch/hello-world/not-found/PITCHME.md";
private static final String UNSUPPORTED_ENDPOINT = "/unsupported";
private static final String INVALID_ENDPOINT = "/invalid/endpoint/";
private static final int SERVER_TEST_PORT = 3333;
private static final String CONTENT_TYPE = "Content-Type";
private static final String CONTENT_TYPE_HTML = "text/html; charset=utf-8";
private static final String CONTENT_TYPE_MD = "text/markdown";
private static final String CONTENT_TYPE_UNDEF = null;
@Test
public void testSlideshowPitchFound() throws Exception {
TestServer server = testServer(3333);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(3333);
CompletionStage<WSResponse> completionStage =
ws.url(SLIDESHOW_PITCH_FOUND).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(OK, response.getStatus());
assertEquals(CONTENT_TYPE_HTML, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
@Test
public void testSlideshowPitchNotFound() throws Exception {
TestServer server = testServer(3333);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(3333);
CompletionStage<WSResponse> completionStage =
ws.url(SLIDESHOW_PITCH_NOT_FOUND).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(OK, response.getStatus());
assertEquals(CONTENT_TYPE_HTML, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
@Test
public void testMarkdownPitchFound() throws Exception {
TestServer server = testServer(3333);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(3333);
CompletionStage<WSResponse> completionStage =
ws.url(MARKDOWN_PITCH_FOUND).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(OK, response.getStatus());
assertEquals(CONTENT_TYPE_MD, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
@Test
public void testMarkdownPitchNotFound() throws Exception {
TestServer server = testServer(3333);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(3333);
CompletionStage<WSResponse> completionStage =
ws.url(MARKDOWN_PITCH_NOT_FOUND).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(OK, response.getStatus());
assertEquals(CONTENT_TYPE_MD, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
@Test
public void testUnsupportedEndpoint() throws Exception {
TestServer server = testServer(SERVER_TEST_PORT);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(SERVER_TEST_PORT);
CompletionStage<WSResponse> completionStage =
ws.url(UNSUPPORTED_ENDPOINT).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(OK, response.getStatus());
assertEquals(CONTENT_TYPE_HTML, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
@Test
public void testInvalidEndpoint() throws Exception {
TestServer server = testServer(SERVER_TEST_PORT);
running(server, () -> {
try {
WSClient ws = play.libs.ws.WS.newClient(SERVER_TEST_PORT);
CompletionStage<WSResponse> completionStage =
ws.url(INVALID_ENDPOINT).get();
WSResponse response = completionStage.toCompletableFuture().get();
ws.close();
assertEquals(SEE_OTHER, response.getStatus());
assertEquals(CONTENT_TYPE_UNDEF, response.getHeader(CONTENT_TYPE));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
});
}
}