Better whitespace handling in tags

Correct PR #573 to work properly with hidden tags, and add ReferenceLinkDB UT.

Fixes #571 - Closes #573
This commit is contained in:
ArthurHoaro 2016-08-02 10:34:21 +02:00
parent 32d51093e3
commit 9866b40814
3 changed files with 6 additions and 28 deletions

View file

@ -291,7 +291,7 @@ private function _readDB()
// Remove private tags if the user is not logged in. // Remove private tags if the user is not logged in.
if (! $this->_loggedIn) { if (! $this->_loggedIn) {
$link['tags'] = preg_replace('/(^|\s*)\.[^($| )]+\s*$/', '', $link['tags']); $link['tags'] = preg_replace('/(^|\s+)\.[^($|\s)]+\s*/', ' ', $link['tags']);
} }
// Do not use the redirector for internal links (Shaarli note URL starting with a '?'). // Do not use the redirector for internal links (Shaarli note URL starting with a '?').

View file

@ -317,6 +317,10 @@ public function testAllTags()
'-exclude' => 1, '-exclude' => 1,
'.hidden' => 1, '.hidden' => 1,
'hashtag' => 2, 'hashtag' => 2,
'tag1' => 1,
'tag2' => 1,
'tag3' => 1,
'tag4' => 1,
), ),
self::$privateLinkDB->allTags() self::$privateLinkDB->allTags()
); );
@ -429,30 +433,4 @@ public function testFilterHashInValid()
{ {
self::$publicLinkDB->filterHash(''); self::$publicLinkDB->filterHash('');
} }
/**
* test whitespace handling in tags.
* split on whitespace runs and don't allow empty tags.
*/
public function testReadTagsWithWhitespace()
{
// test load contains "tags": " tag1 tag2 tag3 tag4 "
$ds = '<?php /* ';
$ds .= 'fY5BDoMwDAS/gvwB4hRKMY9BEaASNQKUuL1U/L22D721Odheez';
$ds .= 'baQEjvQtgSeIdX12I/onfyYAjU6e1GkOL2mAMvMPxAC8mWIydD';
$ds .= 'enHsU0jrXlj1heCZk5k7gpX5oLr+ErUdkGBeypTjwXHfdOUItD';
$ds .= 'XycbgXHb24KxFYafWVtYvVRoQiQhw5vixrJDdY/LyENP5PcJ4f */ ?>';
file_put_contents(self::$testDatastore, $ds);
self::$publicLinkDB = new LinkDB(self::$testDatastore, false, false);
$this->assertEquals(
array(
'tag1' => 1,
'tag2' => 1,
'tag3' => 1,
'tag4' => 1
),
self::$publicLinkDB->allTags()
);
}
} }

View file

@ -75,7 +75,7 @@ function __construct()
'', '',
1, 1,
'20121206_182539', '20121206_182539',
'dev cartoon' 'dev cartoon tag1 tag2 tag3 tag4 '
); );
} }