Merge pull request #6343 from rxu/ticket/16933

[ticket/16933] Consistent handling of hyphen by phpBB Native search backend
This commit is contained in:
Marc Alexander 2022-01-12 21:26:10 +01:00
commit 44d0a3a716
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 14 additions and 1 deletions

View file

@ -253,6 +253,16 @@ class fulltext_native extends \phpbb\search\base
$keywords[$i] = ' ';
break;
case '-':
// Ignore hyphen if followed by a space
if (isset($keywords[$i + 1]) && $keywords[$i + 1] == ' ')
{
$keywords[$i] = ' ';
}
else
{
$space = $keywords[$i];
}
break;
case '+':
$space = $keywords[$i];
break;

View file

@ -27,7 +27,7 @@ abstract class phpbb_functional_search_base extends phpbb_functional_test_case
{
$crawler = self::request('GET', 'search.php?keywords=' . $keywords);
$this->assertEquals(0, $crawler->filter('.postbody')->count());
$split_keywords_string = str_replace(array('+', '-'), ' ', $keywords);
$split_keywords_string = str_replace('+', ' ', $keywords);
$this->assertEquals($split_keywords_string, $crawler->filter('#keywords')->attr('value'));
}
@ -68,6 +68,9 @@ abstract class phpbb_functional_search_base extends phpbb_functional_test_case
$this->assert_search_found('phpbb3+installation', 1, 3);
$this->assert_search_found('foosubject+barsearch', 1, 2);
$this->assert_search_not_found('loremipsumdedo');
$this->assert_search_found('barsearch-testing', 1, 2); // test hyphen ignored
$this->assert_search_found('barsearch+-+testing', 1, 2); // test hyphen wrapped with space ignored
$this->assert_search_not_found('barsearch+-testing'); // test excluding keyword
$this->login();
$this->admin_login();