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); + } + } }