From 842478eca170b3cc04408d80acafb252d7c19c26 Mon Sep 17 00:00:00 2001 From: Jon Bratseth Date: Thu, 3 Sep 2020 14:43:55 +0200 Subject: Continuation references --- .../com/yahoo/search/yql/UserInputTestCase.java | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) (limited to 'container-search/src/test/java/com/yahoo/search/yql') diff --git a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java index 75517a25909..6433270d691 100644 --- a/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java +++ b/container-search/src/test/java/com/yahoo/search/yql/UserInputTestCase.java @@ -15,6 +15,8 @@ import com.yahoo.search.Result; import com.yahoo.search.Searcher; import com.yahoo.search.searchchain.Execution; +import java.util.Arrays; + import static com.yahoo.container.protect.Error.INVALID_QUERY_PARAMETER; /** @@ -204,13 +206,30 @@ public class UserInputTestCase { assertEquals("select * from sources * where year > 1980;", query.yqlRepresentation()); } + @Test + public void testReferenceInContinuation() { + URIBuilder builder = searchUri(); + builder.setParameter("continuation", "BCBCBCBEBG"); + builder.setParameter("yql", + "select * from sources * where myfield contains 'token'" + + "| [{'continuations':[@continuation, 'BCBKCBACBKCCK'] }] all(group(f) each(output(count())));"); + Query query = searchAndAssertNoErrors(builder); + assertEquals("select * from sources * where myfield contains \"token\" | [{ 'continuations':['BCBCBCBEBG', 'BCBKCBACBKCCK'] }]all(group(f) each(output(count())));", query.yqlRepresentation()); + } + private Query searchAndAssertNoErrors(URIBuilder builder) { Query query = new Query(builder.toString()); Result r = execution.search(query); - assertNull(r.hits().getError()); + assertNull(stackTraceIfAny(r), r.hits().getError()); return query; } + private String stackTraceIfAny(Result r) { + if (r.hits().getError() == null) return ""; + if (r.hits().getError().getCause() == null) return ""; + return Arrays.toString(r.hits().getError().getCause().getStackTrace()); + } + private URIBuilder searchUri() { URIBuilder builder = new URIBuilder(); builder.setPath("search/"); @@ -220,8 +239,7 @@ public class UserInputTestCase { @Test public void testEmptyUserInput() { URIBuilder builder = searchUri(); - builder.setParameter("yql", - "select * from sources * where userInput(\"\");"); + builder.setParameter("yql", "select * from sources * where userInput(\"\");"); assertQueryFails(builder); } @@ -229,8 +247,7 @@ public class UserInputTestCase { public void testEmptyUserInputFromQueryProperty() { URIBuilder builder = searchUri(); builder.setParameter("foo", ""); - builder.setParameter("yql", - "select * from sources * where userInput(@foo);"); + builder.setParameter("yql", "select * from sources * where userInput(@foo);"); assertQueryFails(builder); } -- cgit v1.2.3