diff --git a/src/main/java/org/alfresco/rest/api/impl/QueriesImpl.java b/src/main/java/org/alfresco/rest/api/impl/QueriesImpl.java index 738f7c781b..d388aa2e85 100644 --- a/src/main/java/org/alfresco/rest/api/impl/QueriesImpl.java +++ b/src/main/java/org/alfresco/rest/api/impl/QueriesImpl.java @@ -189,7 +189,12 @@ public class QueriesImpl implements Queries, InitializingBean NodeRef nodeRef = nodes.validateOrLookupNode(rootNodeId, null); query.append("PATH:\"").append(getQNamePath(nodeRef.getId())).append("//*\" AND ("); } - query.append(term); + if (term != null) + { + query.append("\""); + query.append(term); + query.append("\""); + } if (rootNodeId != null) { query.append(")"); diff --git a/src/test/java/org/alfresco/rest/api/tests/QueriesNodesApiTest.java b/src/test/java/org/alfresco/rest/api/tests/QueriesNodesApiTest.java index f416db7961..9f1042a9ed 100644 --- a/src/test/java/org/alfresco/rest/api/tests/QueriesNodesApiTest.java +++ b/src/test/java/org/alfresco/rest/api/tests/QueriesNodesApiTest.java @@ -85,6 +85,40 @@ public class QueriesNodesApiTest extends AbstractSingleNetworkSiteTest } return result; } + + @Test + public void testSearchTermWhiteSpace() throws Exception{ + setRequestContext(user1); + + String myFolderNodeId = getMyNodeId(); + + String parentTerm = createFolder(myFolderNodeId, "folder term1").getId(); + String childTerm = "find" + Math.random(); + String childTermWS = childTerm + " " + "find"; + + Map docProps = new HashMap<>(2); + docProps.put("cm:title", childTerm); + docProps.put("cm:description", childTerm); + createTextFile(parentTerm, childTerm, childTerm, "UTF-8", docProps); + + docProps.put("cm:title", childTermWS); + docProps.put("cm:description", childTermWS); + createTextFile(parentTerm, childTermWS, childTermWS, "UTF-8", docProps); + + Paging paging = getPaging(0, 100); + HashMap params = new HashMap<>(1); + params.put(Queries.PARAM_TERM, childTerm); + HttpResponse response = getAll(URL_QUERIES_LSN, paging, params, 200); + List nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); + assertEquals(2, nodes.size()); + + params.put(Queries.PARAM_TERM, childTermWS); + response = getAll(URL_QUERIES_LSN, paging, params, 200); + nodes = RestApiUtil.parseRestApiEntries(response.getJsonResponse(), Node.class); + assertEquals(1, nodes.size()); + + } + /** * Tests basic api for nodes live search - metadata (name, title, description) &/or full text search of file/content