From 095a9bf84d0e92c3454737bb307915879352e138 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Thu, 19 Jan 2017 19:45:58 -0500 Subject: [PATCH 1/2] Fixed regex that was breaking on parenthesis --- awx/ui/client/src/shared/smart-search/smart-search.service.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/awx/ui/client/src/shared/smart-search/smart-search.service.js b/awx/ui/client/src/shared/smart-search/smart-search.service.js index fe683c08d7..48681b1e0d 100644 --- a/awx/ui/client/src/shared/smart-search/smart-search.service.js +++ b/awx/ui/client/src/shared/smart-search/smart-search.service.js @@ -1,7 +1,7 @@ export default [function() { return { splitSearchIntoTerms(searchString) { - return searchString.match(/(?:[^\s("')]+|"[^"]*"|'[^']*')+/g); + return searchString.match(/(?:[^\s"']+|"[^"]*"|'[^']*')+/g); }, splitTermIntoParts(searchTerm) { let breakOnColon = searchTerm.match(/(?:[^:"]+|"[^"]*")+/g); From 72e4ac8c66d331389645a785c3b7294ef3a2a0b8 Mon Sep 17 00:00:00 2001 From: Michael Abashian Date: Fri, 20 Jan 2017 09:53:04 -0500 Subject: [PATCH 2/2] Added unit test cases to cover parenthesis in search tags --- awx/ui/tests/spec/smart-search/smart-search.service-test.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/awx/ui/tests/spec/smart-search/smart-search.service-test.js b/awx/ui/tests/spec/smart-search/smart-search.service-test.js index d5c35a08c2..0170a6d9ff 100644 --- a/awx/ui/tests/spec/smart-search/smart-search.service-test.js +++ b/awx/ui/tests/spec/smart-search/smart-search.service-test.js @@ -25,6 +25,8 @@ describe('Service: SmartSearch', () => { expect(SmartSearchService.splitSearchIntoTerms('name:\'foo bar\' description:\'bar foo\'')).toEqual(["name:\'foo bar\'", "description:\'bar foo\'"]); expect(SmartSearchService.splitSearchIntoTerms('name:\"foo bar\" description:\'bar foo\'')).toEqual(["name:\"foo bar\"", "description:\'bar foo\'"]); expect(SmartSearchService.splitSearchIntoTerms('name:\"foo bar\" foo')).toEqual(["name:\"foo bar\"", "foo"]); + expect(SmartSearchService.splitSearchIntoTerms('inventory:¯\_(ツ)_/¯')).toEqual(["inventory:¯\_(ツ)_/¯"]); + expect(SmartSearchService.splitSearchIntoTerms('inventory:¯\_(ツ)_/¯ inventory.name:¯\_(ツ)_/¯')).toEqual(["inventory:¯\_(ツ)_/¯", "inventory.name:¯\_(ツ)_/¯"]); }); });