Skip to content

Commit 6bce304

Browse files
committed
add tests for PageConfig#getSortOrder()
1 parent 3c36cda commit 6bce304

File tree

3 files changed

+51
-4
lines changed

3 files changed

+51
-4
lines changed

opengrok-indexer/src/main/java/org/opengrok/indexer/web/SortOrder.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919

2020
/*
2121
* Copyright (c) 2011, Jens Elkner.
22-
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
22+
* Copyright (c) 2011, 2025, Oracle and/or its affiliates. All rights reserved.
2323
*/
2424
package org.opengrok.indexer.web;
2525

@@ -37,6 +37,7 @@ public enum SortOrder {
3737
RELEVANCY("relevancy", "relevance"),
3838
/** sort by path. */
3939
BY_PATH("fullpath", "path");
40+
4041
private final String name;
4142
private final String desc;
4243

@@ -53,7 +54,7 @@ public enum SortOrder {
5354
* @see #toString()
5455
*/
5556
public static SortOrder get(String name) {
56-
if (name == null || name.length() == 0) {
57+
if (name == null || name.isEmpty()) {
5758
return null;
5859
}
5960
for (SortOrder s : values()) {
@@ -74,7 +75,7 @@ public String toString() {
7475
}
7576

7677
/**
77-
* A more user friendly description (UI name) of the sort order.
78+
* A more user-friendly description (UI name) of the sort order.
7879
* @return a very short description.
7980
*/
8081
public String getDesc() {

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,9 @@ public class PageConfig {
129129

130130
private static final String HISTORY_JSP_ATTR_NAME = "history.jsp-hist";
131131

132+
@VisibleForTesting
133+
static final String SORTING_COOKIE_NAME = "OpenGrokSorting";
134+
132135
// query parameters
133136
static final String PROJECT_PARAM_NAME = "project";
134137
static final String GROUP_PARAM_NAME = "group";
@@ -627,7 +630,7 @@ public List<SortOrder> getSortOrder() {
627630
}
628631
}
629632
if (sort.isEmpty()) {
630-
vals = getCookieVals("OpenGrokSorting");
633+
vals = getCookieVals(SORTING_COOKIE_NAME);
631634
for (String s : vals) {
632635
SortOrder so = SortOrder.get(s);
633636
if (so != null) {

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

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
import java.util.stream.Collectors;
3939
import java.util.stream.Stream;
4040

41+
import jakarta.servlet.http.Cookie;
4142
import jakarta.servlet.http.HttpServletRequest;
4243
import jakarta.servlet.http.HttpServletResponse;
4344
import jakarta.ws.rs.core.HttpHeaders;
@@ -66,6 +67,7 @@
6667
import org.opengrok.indexer.util.TestRepository;
6768
import org.opengrok.indexer.web.DummyHttpServletRequest;
6869
import org.opengrok.indexer.web.QueryParameters;
70+
import org.opengrok.indexer.web.SortOrder;
6971

7072
import static org.junit.jupiter.api.Assertions.assertEquals;
7173
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -831,4 +833,45 @@ public String[] getParameterValues(String name) {
831833
" - OpenGrok search results",
832834
cfg.getSearchTitle());
833835
}
836+
837+
@Test
838+
void testGetSortOrderParameter() {
839+
HttpServletRequest req = new DummyHttpServletRequest() {
840+
@Override
841+
public String getPathInfo() {
842+
return "path";
843+
}
844+
845+
@Override
846+
public String[] getParameterValues(String name) {
847+
if (name.equals(QueryParameters.SORT_PARAM)) {
848+
return new String[]{SortOrder.LASTMODIFIED.toString(), "invalid"};
849+
}
850+
851+
return null;
852+
}
853+
};
854+
855+
PageConfig cfg = PageConfig.get(req);
856+
assertEquals(List.of(SortOrder.LASTMODIFIED), cfg.getSortOrder());
857+
}
858+
859+
@Test
860+
void testGetSortOrderCookie() {
861+
HttpServletRequest req = new DummyHttpServletRequest() {
862+
@Override
863+
public String getPathInfo() {
864+
return "path";
865+
}
866+
867+
@Override
868+
public Cookie[] getCookies() {
869+
return new Cookie[]{new Cookie(PageConfig.SORTING_COOKIE_NAME, SortOrder.LASTMODIFIED.toString()),
870+
new Cookie(PageConfig.SORTING_COOKIE_NAME, "invalid")};
871+
}
872+
};
873+
874+
PageConfig cfg = PageConfig.get(req);
875+
assertEquals(List.of(SortOrder.LASTMODIFIED), cfg.getSortOrder());
876+
}
834877
}

0 commit comments

Comments
 (0)