Blame view
sources/apps/activity/tests/datadeleteactivitestest.php
3.57 KB
|
6d9380f96
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
<?php
/**
* ownCloud - Activity App
*
* @author Joas Schilling
* @copyright 2014 Joas Schilling nickvergessen@owncloud.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
* License as published by the Free Software Foundation; either
* version 3 of the License, or any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
*
* You should have received a copy of the GNU Affero General Public
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
namespace OCA\Activity\Tests;
use OCA\Activity\Data;
class DataDeleteActivitiesTest extends \PHPUnit_Framework_TestCase {
/** @var \OCA\Activity\Data */
protected $data;
public function setUp() {
parent::setUp();
$activities = array(
array('affectedUser' => 'delete', 'subject' => 'subject', 'time' => 0),
array('affectedUser' => 'delete', 'subject' => 'subject2', 'time' => time() - 2 * 365 * 24 * 3600),
array('affectedUser' => 'otherUser', 'subject' => 'subject', 'time' => time()),
array('affectedUser' => 'otherUser', 'subject' => 'subject2', 'time' => time()),
);
$queryActivity = \OCP\DB::prepare('INSERT INTO `*PREFIX*activity`(`app`, `subject`, `subjectparams`, `message`, `messageparams`, `file`, `link`, `user`, `affecteduser`, `timestamp`, `priority`, `type`)' . ' VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )');
foreach ($activities as $activity) {
$queryActivity->execute(array(
'app',
$activity['subject'],
serialize(array()),
'',
serialize(array()),
'file',
'link',
'user',
$activity['affectedUser'],
$activity['time'],
Data::PRIORITY_MEDIUM,
'test',
));
}
$this->data = new Data(
$this->getMock('\OCP\Activity\IManager')
);
}
public function tearDown() {
$this->data->deleteActivities(array(
'type' => 'test',
));
parent::tearDown();
}
public function deleteActivitiesData() {
return array(
array(array('affecteduser' => 'delete'), array('otherUser')),
array(array('affecteduser' => array('delete', '=')), array('otherUser')),
array(array('timestamp' => array(time() - 10, '<')), array('otherUser')),
array(array('timestamp' => array(time() - 10, '>')), array('delete')),
);
}
/**
* @dataProvider deleteActivitiesData
*/
public function testDeleteActivities($condition, $expected) {
$this->assertUserActivities(array('delete', 'otherUser'));
$this->data->deleteActivities($condition);
$this->assertUserActivities($expected);
}
public function testExpireActivities() {
$backgroundjob = new \OCA\Activity\BackgroundJob\ExpireActivities();
$this->assertUserActivities(array('delete', 'otherUser'));
$jobList = $this->getMock('\OCP\BackgroundJob\IJobList');
$backgroundjob->execute($jobList);
$this->assertUserActivities(array('otherUser'));
}
protected function assertUserActivities($expected) {
$query = \OCP\DB::prepare("SELECT `affecteduser` FROM `*PREFIX*activity` WHERE `type` = 'test'");
$this->assertTableKeys($expected, $query, 'affecteduser');
}
protected function assertTableKeys($expected, \OC_DB_StatementWrapper $query, $keyName) {
$result = $query->execute();
$users = array();
while ($row = $result->fetchRow()) {
$users[] = $row[$keyName];
}
$users = array_unique($users);
sort($users);
sort($expected);
$this->assertEquals($expected, $users);
}
}
|