Skip to content
Snippets Groups Projects
Commit 1eadbe74 authored by Manuel Leduc's avatar Manuel Leduc
Browse files

XWIKI-18999: getdocuments.vm does not support iso 8601 date filters

Fix the Page Tests that were time zone sensitive.
parent df1c3771
No related branches found
No related tags found
No related merge requests found
...@@ -2948,7 +2948,7 @@ Recursive title display detected!## ...@@ -2948,7 +2948,7 @@ Recursive title display detected!##
## the two substrings are parsed as timestamps. ## the two substrings are parsed as timestamps.
## ##
## @since 14.0RC1 ## @since 14.0RC1
## @since 13.10.1 ## @since 13.10.2
## @since 13.4.6 ## @since 13.4.6
## ##
#macro (parseDateRange $matchType $filterValue $dateRange) #macro (parseDateRange $matchType $filterValue $dateRange)
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
package org.xwiki.web; package org.xwiki.web;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -94,7 +95,7 @@ void setUp() throws Exception ...@@ -94,7 +95,7 @@ void setUp() throws Exception
} }
@Test @Test
void removeObuscatedResultsWhenTotalrowsLowerThanLimit() throws Exception void removeObfuscatedResultsWhenTotalrowsLowerThanLimit() throws Exception
{ {
when(this.oldcore.getMockRightService().hasAccessLevel(eq("view"), any(), any(), any())) when(this.oldcore.getMockRightService().hasAccessLevel(eq("view"), any(), any(), any()))
.thenReturn(false, true); .thenReturn(false, true);
...@@ -157,8 +158,8 @@ void dateFilterBetweenISO8601() throws Exception ...@@ -157,8 +158,8 @@ void dateFilterBetweenISO8601() throws Exception
List<Object> queryParams = (List<Object>) this.velocityManager.getVelocityContext().get("queryParams"); List<Object> queryParams = (List<Object>) this.velocityManager.getVelocityContext().get("queryParams");
assertNull(queryParams.get(0)); assertNull(queryParams.get(0));
assertEquals("Sandbox.WebHome", queryParams.get(1)); assertEquals("Sandbox.WebHome", queryParams.get(1));
assertEquals("Wed Sep 22 00:00:00 CEST 2021", queryParams.get(2).toString()); assertEquals(1632261600000L, ((Date) queryParams.get(2)).getTime());
assertEquals("Wed Sep 22 23:59:59 CEST 2021", queryParams.get(3).toString()); assertEquals(1632347999000L, ((Date) queryParams.get(3)).getTime());
} }
/** /**
...@@ -167,6 +168,9 @@ void dateFilterBetweenISO8601() throws Exception ...@@ -167,6 +168,9 @@ void dateFilterBetweenISO8601() throws Exception
@Test @Test
void dateFilterBetweenTimestamp() throws Exception void dateFilterBetweenTimestamp() throws Exception
{ {
long start = 1632348000000L;
long end = 1632434399999L;
initDefaultQueryMocks(0); initDefaultQueryMocks(0);
this.request.put("outputSyntax", "plain"); this.request.put("outputSyntax", "plain");
...@@ -177,15 +181,16 @@ void dateFilterBetweenTimestamp() throws Exception ...@@ -177,15 +181,16 @@ void dateFilterBetweenTimestamp() throws Exception
this.request.put("offset", "1"); this.request.put("offset", "1");
this.request.put("limit", "15"); this.request.put("limit", "15");
this.request.put("reqNo", "3"); this.request.put("reqNo", "3");
this.request.put("doc.date", "1632348000000-1632434399999");
this.request.put("doc.date", String.format("%d-%d", start, end));
this.request.put("sort", "doc.date"); this.request.put("sort", "doc.date");
this.request.put("dir", "asc"); this.request.put("dir", "asc");
this.templateManager.render(GETDOCUMENTS); this.templateManager.render(GETDOCUMENTS);
verify(this.queryService).hql( verify(this.queryService).hql(
"WHERE 1=1 and doc.date between ?1 and ?2 order by doc.date asc"); "WHERE 1=1 and doc.date between ?1 and ?2 order by doc.date asc");
List<Object> queryParams = (List<Object>) this.velocityManager.getVelocityContext().get("queryParams"); List<Object> queryParams = (List<Object>) this.velocityManager.getVelocityContext().get("queryParams");
assertEquals("Thu Sep 23 00:00:00 CEST 2021", queryParams.get(0).toString()); assertEquals(start, ((Date) queryParams.get(0)).getTime());
assertEquals("Thu Sep 23 23:59:59 CEST 2021", queryParams.get(1).toString()); assertEquals(end, ((Date) queryParams.get(1)).getTime());
} }
/** /**
......
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
import java.io.StringReader; import java.io.StringReader;
import java.io.StringWriter; import java.io.StringWriter;
import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
...@@ -151,10 +152,8 @@ void livetableFilterObfuscatedTotalLowerThanReturnedRows() throws Exception ...@@ -151,10 +152,8 @@ void livetableFilterObfuscatedTotalLowerThanReturnedRows() throws Exception
@Test @Test
void parseDateRangeAfter() throws Exception void parseDateRangeAfter() throws Exception
{ {
String dateValue = "2021-09-22T00:00:00+02:00";
this.velocityManager.getVelocityContext().put("dateRange", new HashMap<>()); this.velocityManager.getVelocityContext().put("dateRange", new HashMap<>());
this.velocityManager.getVelocityContext().put("dateValue", dateValue); this.velocityManager.getVelocityContext().put("dateValue", "2021-09-22T00:00:00+02:00");
String script = "#parseDateRange('after' $dateValue $dateRange)"; String script = "#parseDateRange('after' $dateValue $dateRange)";
StringWriter out = new StringWriter(); StringWriter out = new StringWriter();
...@@ -162,7 +161,7 @@ void parseDateRangeAfter() throws Exception ...@@ -162,7 +161,7 @@ void parseDateRangeAfter() throws Exception
Map<Object, Object> dateRange = Map<Object, Object> dateRange =
(Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange"); (Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange");
assertEquals("Wed Sep 22 00:00:00 CEST 2021", dateRange.get("start").toString()); assertEquals(1632261600000L, ((Date) dateRange.get("start")).getTime());
assertNull(dateRange.get("end")); assertNull(dateRange.get("end"));
} }
...@@ -181,7 +180,7 @@ void parseDateRangeBefore() throws Exception ...@@ -181,7 +180,7 @@ void parseDateRangeBefore() throws Exception
Map<Object, Object> dateRange = Map<Object, Object> dateRange =
(Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange"); (Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange");
assertNull(dateRange.get("start")); assertNull(dateRange.get("start"));
assertEquals("Wed Sep 22 23:59:59 CEST 2021", dateRange.get("end").toString()); assertEquals(1632347999000L, ((Date) dateRange.get("end")).getTime());
} }
@Test @Test
...@@ -198,17 +197,15 @@ void parseDateRangeBetween() throws Exception ...@@ -198,17 +197,15 @@ void parseDateRangeBetween() throws Exception
Map<Object, Object> dateRange = Map<Object, Object> dateRange =
(Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange"); (Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange");
assertEquals("Wed Sep 22 00:00:00 CEST 2021", dateRange.get("start").toString()); assertEquals(1632261600000L, ((Date) dateRange.get("start")).getTime());
assertEquals("Wed Sep 22 23:59:59 CEST 2021", dateRange.get("end").toString()); assertEquals(1632347999000L, ((Date) dateRange.get("end")).getTime());
} }
@Test @Test
void parseDateRangeTimestampRange() throws Exception void parseDateRangeTimestampRange() throws Exception
{ {
String dateValue = "1607295600000-1632347999999";
this.velocityManager.getVelocityContext().put("dateRange", new HashMap<>()); this.velocityManager.getVelocityContext().put("dateRange", new HashMap<>());
this.velocityManager.getVelocityContext().put("dateValue", dateValue); this.velocityManager.getVelocityContext().put("dateValue", "1607295600000-1632347999999");
String script = "#parseDateRange('after' $dateValue $dateRange)"; String script = "#parseDateRange('after' $dateValue $dateRange)";
StringWriter out = new StringWriter(); StringWriter out = new StringWriter();
...@@ -216,7 +213,7 @@ void parseDateRangeTimestampRange() throws Exception ...@@ -216,7 +213,7 @@ void parseDateRangeTimestampRange() throws Exception
Map<Object, Object> dateRange = Map<Object, Object> dateRange =
(Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange"); (Map<Object, Object>) this.velocityManager.getVelocityContext().get("dateRange");
assertEquals("Mon Dec 07 00:00:00 CET 2020", dateRange.get("start").toString()); assertEquals(1607295600000L, ((Date) dateRange.get("start")).getTime());
assertEquals("Wed Sep 22 23:59:59 CEST 2021", dateRange.get("end").toString()); assertEquals(1632347999999L, ((Date) dateRange.get("end")).getTime());
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment