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:
parent
32d51093e3
commit
9866b40814
3 changed files with 6 additions and 28 deletions
|
@ -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 '?').
|
||||||
|
|
|
@ -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()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ function __construct()
|
||||||
'',
|
'',
|
||||||
1,
|
1,
|
||||||
'20121206_182539',
|
'20121206_182539',
|
||||||
'dev cartoon'
|
'dev cartoon tag1 tag2 tag3 tag4 '
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue