Skip to content

Commit b5620ae

Browse files
authored
add test for PageConfig#isUnreadable() (#4862)
1 parent 3876c1a commit b5620ae

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

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

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1032,4 +1032,40 @@ public String getPathInfo() {
10321032
env.releaseIndexSearchers();
10331033
IOUtils.removeRecursive(env.getDataRootFile().toPath());
10341034
}
1035+
1036+
@ParameterizedTest
1037+
@ValueSource(strings = {"main.c", "nonexistent"})
1038+
void testIsUnreadableFalse(String fileName) {
1039+
HttpServletRequest req = new DummyHttpServletRequest() {
1040+
@Override
1041+
public String getPathInfo() {
1042+
return "mercurial/" + fileName;
1043+
}
1044+
};
1045+
1046+
PageConfig cfg = PageConfig.get(req);
1047+
assertFalse(cfg.isUnreadable());
1048+
}
1049+
1050+
// File.setReadable() does not change the behavior of File.canRead() on Windows.
1051+
@EnabledOnOs({OS.LINUX, OS.MAC, OS.SOLARIS, OS.AIX, OS.OTHER})
1052+
@Test
1053+
void testIsUnreadableTrue() {
1054+
final String relativePath = Path.of("mercurial", "Makefile").toString();
1055+
HttpServletRequest req = new DummyHttpServletRequest() {
1056+
@Override
1057+
public String getPathInfo() {
1058+
return relativePath;
1059+
}
1060+
};
1061+
1062+
final File file = new File(RuntimeEnvironment.getInstance().getSourceRootPath(), relativePath);
1063+
assertTrue(file.exists());
1064+
assertTrue(file.setReadable(false, false));
1065+
PageConfig cfg = PageConfig.get(req);
1066+
assertTrue(cfg.isUnreadable());
1067+
1068+
// cleanup
1069+
assertTrue(file.setReadable(true, false));
1070+
}
10351071
}

0 commit comments

Comments
 (0)