Skip to content

Commit af87427

Browse files
committed
add basic test for PageConfig#isNotModified()
1 parent 6acb7d0 commit af87427

File tree

2 files changed

+28
-1
lines changed

2 files changed

+28
-1
lines changed

opengrok-web/src/main/java/org/opengrok/web/PageConfig.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1842,7 +1842,6 @@ public boolean isNotModified(HttpServletRequest request, HttpServletResponse res
18421842
);
18431843

18441844
String headerEtag = request.getHeader(HttpHeaders.IF_NONE_MATCH);
1845-
18461845
if (headerEtag != null && headerEtag.equals(currentEtag)) {
18471846
// weak ETag has not changed, return 304 NOT MODIFIED
18481847
response.setStatus(HttpServletResponse.SC_NOT_MODIFIED);

opengrok-web/src/test/java/org/opengrok/web/PageConfigTest.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,8 @@
3939
import java.util.stream.Stream;
4040

4141
import jakarta.servlet.http.HttpServletRequest;
42+
import jakarta.servlet.http.HttpServletResponse;
43+
import jakarta.ws.rs.core.HttpHeaders;
4244
import org.apache.commons.lang3.tuple.Pair;
4345
import org.junit.jupiter.api.AfterAll;
4446
import org.junit.jupiter.api.BeforeAll;
@@ -47,6 +49,7 @@
4749
import org.junit.jupiter.api.condition.OS;
4850
import org.junit.jupiter.params.ParameterizedTest;
4951
import org.junit.jupiter.params.provider.MethodSource;
52+
import org.mockito.Mockito;
5053
import org.opengrok.indexer.authorization.AuthControlFlag;
5154
import org.opengrok.indexer.authorization.AuthorizationFramework;
5255
import org.opengrok.indexer.authorization.AuthorizationPlugin;
@@ -68,6 +71,8 @@
6871
import static org.junit.jupiter.api.Assertions.assertThrows;
6972
import static org.junit.jupiter.api.Assertions.assertTrue;
7073
import static org.junit.jupiter.api.Assumptions.assumeTrue;
74+
import static org.mockito.ArgumentMatchers.eq;
75+
import static org.mockito.ArgumentMatchers.startsWith;
7176
import static org.opengrok.indexer.condition.RepositoryInstalled.Type.MERCURIAL;
7277
import static org.opengrok.indexer.history.LatestRevisionUtil.getLatestRevision;
7378

@@ -647,4 +652,27 @@ public String getPathInfo() {
647652
}
648653
};
649654
}
655+
656+
@Test
657+
void testIsNotModified() {
658+
HttpServletRequest req = new DummyHttpServletRequest() {
659+
@Override
660+
public String getHeader(String name) {
661+
if (name.equals(HttpHeaders.IF_NONE_MATCH)) {
662+
return "foo"; // will not match the hash computed in
663+
}
664+
return null;
665+
}
666+
667+
@Override
668+
public String getPathInfo() {
669+
return "path";
670+
}
671+
};
672+
673+
PageConfig cfg = PageConfig.get(req);
674+
HttpServletResponse resp = Mockito.mock(HttpServletResponse.class);
675+
assertFalse(cfg.isNotModified(req, resp));
676+
Mockito.verify(resp).setHeader(eq(HttpHeaders.ETAG), startsWith("W/"));
677+
}
650678
}

0 commit comments

Comments
 (0)