def test_strip_whitespace(self): self.assertEquals("strange-", prepare_SearchableText("strange-, ")) self.assertEquals("text", prepare_SearchableText(" text ")) self.assertEquals("text text", prepare_SearchableText(" text text"))
def __call__(self): context = aq_inner(self.context) q = self.request.form.get('term', None) self.limit = int(self.request.form.get('limit', 10)) path = self.request.form.get('path', None) plone_utils = getToolByName(context, 'plone_utils') self.pretty_title_or_id = plone_utils.pretty_title_or_id self.normalizeString = plone_utils.normalizeString plone_view = getMultiAdapter((context, self.request), name='plone') self.get_icon = plone_view.getIcon pprops = getToolByName(context, 'portal_properties') sprops = getattr(pprops, 'site_properties', None) self.useViewAction = [] if sprops is not None: self.useViewAction = sprops.getProperty('typesUseViewActionInListings', []) registry = getUtility(IRegistry) self.settings = registry.forInterface(ILiveSearchSettings) q = prepare_SearchableText(q) r = q + '*' self.searchterms = url_quote_plus(r) site_encoding = plone_utils.getSiteEncoding() if path is None: path = getNavigationRoot(context) catalog = getToolByName(context, 'portal_catalog') friendly_types = plone_utils.getUserFriendlyTypes() self.facet_params = context.restrictedTraverse( '@@search-facets/facet_parameters')() self.searchterm_query = '?searchterm=%s' % url_quote_plus(q) if self.settings.grouping: results = catalog(SearchableText=r, portal_type=friendly_types, request_handler='livesearch', path=path, sort_limit=self.settings.group_search_limit)[:self.settings.group_search_limit] else: results = catalog(SearchableText=r, portal_type=friendly_types, request_handler='livesearch', path=path, sort_limit=self.limit)[:self.limit] self.request.response.setHeader( 'Content-Type', 'application/json;charset=%s' % site_encoding) return self.get_results_as_json(results)
def test_replace_inavlid_chars_with_whitespace(self): self.assertEquals("D abcd", prepare_SearchableText("D'abcd")) self.assertEquals("10 000", prepare_SearchableText("10'000")) self.assertEquals("*****@*****.**", prepare_SearchableText("*****@*****.**")) self.assertEquals("strange- strange", prepare_SearchableText("strange-,strange")) self.assertEquals("singlequoted", prepare_SearchableText("'singlequoted'")) self.assertEquals("doublequoted", prepare_SearchableText('"doublequoted"')) self.assertEquals("The list one", prepare_SearchableText("The list: one"))
def test_replace_multispace_with_whitespace(self): multispace = u"\u3000".encode("utf-8") self.assertEquals("text text", prepare_SearchableText("text" + multispace + "text"))
def test_unicode_input(self): self.assertEquals("\xc3\xb6 text", prepare_SearchableText(u" \xf6 text "))
def test_umlauts(self): self.assertEquals("\xc3\xb6 text", prepare_SearchableText(" \xc3\xb6 text "))