make export_csv support filtering to multiple tags
git-svn-id: https://semanticscuttle.svn.sourceforge.net/svnroot/semanticscuttle/trunk@702 b3834d28-1941-0410-a4f8-b48e95affb8f
This commit is contained in:
parent
90f7d528d3
commit
74dc9ea6a4
2 changed files with 71 additions and 5 deletions
|
@ -162,6 +162,67 @@ class Api_ExportCsvTest extends TestBaseApi
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test CSV export with tag filter
|
||||||
|
*/
|
||||||
|
public function testTagFilter()
|
||||||
|
{
|
||||||
|
list($req, $uid) = $this->getAuthRequest('?tag=tag1');
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-1', 0,
|
||||||
|
array('unittest', 'tag1')
|
||||||
|
);
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-2', 0,
|
||||||
|
array('unittest', 'tag2')
|
||||||
|
);
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-3', 0,
|
||||||
|
array('unittest', 'tag1', 'tag2')
|
||||||
|
);
|
||||||
|
|
||||||
|
$body = $req->send()->getBody();
|
||||||
|
$csv = $this->getCsvArray($body);
|
||||||
|
|
||||||
|
$this->assertEquals(3, count($csv));
|
||||||
|
$this->assertCsvHeader($csv);
|
||||||
|
|
||||||
|
$this->assertEquals('http://example.org/tag-1', $csv[1][0]);
|
||||||
|
$this->assertEquals('http://example.org/tag-3', $csv[2][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Test CSV export with tag filter for multiple tags
|
||||||
|
*/
|
||||||
|
public function testTagFilterMultiple()
|
||||||
|
{
|
||||||
|
list($req, $uid) = $this->getAuthRequest('?tag=tag1+tag2');
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-1', 0,
|
||||||
|
array('unittest', 'tag1')
|
||||||
|
);
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-2', 0,
|
||||||
|
array('unittest', 'tag2')
|
||||||
|
);
|
||||||
|
$this->addBookmark(
|
||||||
|
$uid, 'http://example.org/tag-3', 0,
|
||||||
|
array('unittest', 'tag1', 'tag2')
|
||||||
|
);
|
||||||
|
|
||||||
|
$body = $req->send()->getBody();
|
||||||
|
$csv = $this->getCsvArray($body);
|
||||||
|
|
||||||
|
$this->assertEquals(2, count($csv));
|
||||||
|
$this->assertCsvHeader($csv);
|
||||||
|
|
||||||
|
$this->assertEquals('http://example.org/tag-3', $csv[1][0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Asserts that the CSV array contains the correct header
|
* Asserts that the CSV array contains the correct header
|
||||||
*
|
*
|
||||||
|
|
|
@ -10,13 +10,18 @@ header("Content-disposition: filename=exportBookmarks.csv");
|
||||||
$bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark');
|
$bookmarkservice =SemanticScuttle_Service_Factory::get('Bookmark');
|
||||||
|
|
||||||
// Check to see if a tag was specified.
|
// Check to see if a tag was specified.
|
||||||
if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != ''))
|
if (isset($_REQUEST['tag']) && (trim($_REQUEST['tag']) != '')) {
|
||||||
$tag = trim($_REQUEST['tag']);
|
//$_GET vars have + replaced to " " automatically
|
||||||
else
|
$tag = str_replace(' ', '+', trim($_REQUEST['tag']));
|
||||||
$tag = NULL;
|
} else {
|
||||||
|
$tag = null;
|
||||||
|
}
|
||||||
|
|
||||||
// Get the posts relevant to the passed-in variables.
|
// Get the posts relevant to the passed-in variables.
|
||||||
$bookmarks =& $bookmarkservice->getBookmarks(0, NULL, $userservice->getCurrentUserId(), $tag, NULL, getSortOrder());
|
$bookmarks = $bookmarkservice->getBookmarks(
|
||||||
|
0, null, $userservice->getCurrentUserId(),
|
||||||
|
$tag, null, getSortOrder()
|
||||||
|
);
|
||||||
|
|
||||||
//columns titles
|
//columns titles
|
||||||
echo 'url;title;tags;description';
|
echo 'url;title;tags;description';
|
||||||
|
|
Loading…
Reference in a new issue