add unit test for pretty=fuller query parameter
Change-Id: I07c7fcddc9953f9971c0ff4592f4b81cc6145528
diff --git a/javatests/com/google/gitiles/LogServletTest.java b/javatests/com/google/gitiles/LogServletTest.java
index 3ad90a8..d875e0e 100644
--- a/javatests/com/google/gitiles/LogServletTest.java
+++ b/javatests/com/google/gitiles/LogServletTest.java
@@ -32,6 +32,9 @@
public class LogServletTest extends ServletTest {
private static final TypeToken<Log> LOG = new TypeToken<Log>() {};
private static final String MAIN = "main";
+ private static final String AUTHOR_METADATA_ELEMENT = "<th class=\"Metadata-title\">author</th>";
+ private static final String COMMITTER_METADATA_ELEMENT =
+ "<th class=\"Metadata-title\">committer</th>";
@Test
public void basicLog() throws Exception {
@@ -195,4 +198,68 @@
+ parent.toObjectId().getName()
+ "\">");
}
+
+ @Test
+ public void prettyDefaultUsesDefaultCssClass() throws Exception {
+ RevCommit parent = repo.branch(MAIN).commit().add("foo", "contents").create();
+ RevCommit main = repo.branch(MAIN).commit().parent(parent).create();
+
+ String path =
+ "/repo/+log/" + parent.toObjectId().getName() + ".." + main.toObjectId().getName();
+ FakeHttpServletResponse res = buildResponse(path, "format=html", SC_OK);
+
+ assertThat(res.getActualBodyString())
+ .contains("<li class=\"CommitLog-item CommitLog-item--default\">");
+ assertThat(res.getActualBodyString()).doesNotContain(AUTHOR_METADATA_ELEMENT);
+ assertThat(res.getActualBodyString()).doesNotContain(COMMITTER_METADATA_ELEMENT);
+ }
+
+ @Test
+ public void prettyExplicitlyDefaultUsesDefaultCssClass() throws Exception {
+ testPrettyHtmlOutput(
+ "default", /* shouldShowAuthor= */ false, /* shouldShowCommitter= */ false);
+ }
+
+ @Test
+ public void prettyOnelineUsesOnelineCssClass() throws Exception {
+ testPrettyHtmlOutput(
+ "oneline", /* shouldShowAuthor= */ false, /* shouldShowCommitter= */ false);
+ }
+
+ @Test
+ public void prettyCustomTypeUsesCustomCssClass() throws Exception {
+ testPrettyHtmlOutput(
+ "aCustomPrettyType", /* shouldShowAuthor= */ false, /* shouldShowCommitter= */ false);
+ }
+
+ @Test
+ public void prettyFullerUsesFullerCssClass() throws Exception {
+ testPrettyHtmlOutput("fuller", /* shouldShowAuthor= */ true, /* shouldShowCommitter= */ true);
+ }
+
+ private void testPrettyHtmlOutput(
+ String prettyType, boolean shouldShowAuthor, boolean shouldShowCommitter) throws Exception {
+ RevCommit parent = repo.branch(MAIN).commit().add("foo", "contents").create();
+ RevCommit main = repo.branch(MAIN).commit().parent(parent).create();
+
+ String path =
+ "/repo/+log/" + parent.toObjectId().getName() + ".." + main.toObjectId().getName();
+ FakeHttpServletResponse res =
+ buildResponse(path, "format=html" + "&pretty=" + prettyType, SC_OK);
+
+ assertThat(res.getActualBodyString())
+ .contains("<li class=\"CommitLog-item CommitLog-item--" + prettyType + "\">");
+
+ if (shouldShowAuthor) {
+ assertThat(res.getActualBodyString()).contains(AUTHOR_METADATA_ELEMENT);
+ } else {
+ assertThat(res.getActualBodyString()).doesNotContain(AUTHOR_METADATA_ELEMENT);
+ }
+
+ if (shouldShowCommitter) {
+ assertThat(res.getActualBodyString()).contains(COMMITTER_METADATA_ELEMENT);
+ } else {
+ assertThat(res.getActualBodyString()).doesNotContain(COMMITTER_METADATA_ELEMENT);
+ }
+ }
}