mirror of
https://github.com/gitpitch/gitpitch.git
synced 2024-04-18 07:30:55 +08:00
2f22fdb395
- 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.
147 lines
5.6 KiB
Java
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);
|
|
}
|
|
});
|
|
}
|
|
|
|
}
|