From 258fadf29b21ddc08179159e1c9f5a8b14221730 Mon Sep 17 00:00:00 2001 From: Tom Page Date: Fri, 15 Mar 2019 09:50:01 +0000 Subject: [PATCH 1/2] SEARCH-1552 Add tests for whitespace in SQL queries. --- .../e2e/insightEngine/sql/SelectStarTest.java | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java b/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java index 02aa24a99..650b8aa99 100644 --- a/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java +++ b/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java @@ -7,12 +7,18 @@ package org.alfresco.service.search.e2e.insightEngine.sql; +import static java.util.Collections.emptyList; + +import static org.testng.AssertJUnit.assertEquals; + import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; +import java.util.List; import java.util.Map; import org.alfresco.service.search.e2e.AbstractSearchServiceE2E; @@ -545,4 +551,31 @@ public class SelectStarTest extends AbstractSearchServiceE2E // + " group by expense_Recorded_At_year" // + " order by expense_Recorded_At desc", 5); } + + /** Try adding a double space at each location throughout a wildcard query. */ + @Test(priority = 21, groups = { TestGroup.INSIGHT_11 }) + public void testWildcardQueryContainingExtraSpaces() + { + String baseQuery = "select * from alfresco where `expense:Location` = 'london'"; + int wordCount = baseQuery.split(" ").length; + for (int i = 1; i < wordCount; i++) + { + // Replace the ith space with a double space. + String query = baseQuery.replaceFirst("(([^ ]+ ){" + i + "})", "$1 "); + // Check the query still executes correctly. + testSqlQuery(query, 2); + } + } + + /** Check that using different whitespace characters doesn't break the query. */ + @Test(priority = 22, groups = { TestGroup.INSIGHT_11 }) + public void testWildcardQueryContainingDifferentWhitespace() + { + // Loop through the supported whitespace characters. + for (char w : " \n\r\t\f".toCharArray()) + { + String query = "select * from alfresco where `expense:id` in (10, 30, 0)".replace(' ' , w); + testSqlQuery(query, 2); + } + } } From 94cbe9a6b3b3691650613c697e746baf24aa96f8 Mon Sep 17 00:00:00 2001 From: agazzarini Date: Mon, 18 Mar 2019 15:31:09 +0100 Subject: [PATCH 2/2] [ SEARCH-1554 ] Additional whitespaces scenarios --- .../e2e/insightEngine/sql/SelectStarTest.java | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java b/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java index 650b8aa99..c4aab4c50 100644 --- a/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java +++ b/e2e-test/src/test/java/org/alfresco/service/search/e2e/insightEngine/sql/SelectStarTest.java @@ -7,15 +7,12 @@ package org.alfresco.service.search.e2e.insightEngine.sql; -import static java.util.Collections.emptyList; - -import static org.testng.AssertJUnit.assertEquals; +import static java.util.Arrays.asList; import java.time.LocalDateTime; import java.time.ZoneOffset; import java.time.ZonedDateTime; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -40,7 +37,7 @@ import org.testng.annotations.Test; * Purpose of this TestClass is to test that the variants of