diff options
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib/allconfig.php | 422 | ||||
-rw-r--r-- | tests/lib/app/infoparser.php | 2 | ||||
-rw-r--r-- | tests/lib/config.php | 33 | ||||
-rw-r--r-- | tests/lib/contactsmanager.php | 209 | ||||
-rw-r--r-- | tests/lib/db/connection.php | 69 | ||||
-rw-r--r-- | tests/lib/files/mount/manager.php | 10 | ||||
-rw-r--r-- | tests/lib/files/mount/mount.php | 10 | ||||
-rw-r--r-- | tests/lib/files/node/folder.php | 12 | ||||
-rw-r--r-- | tests/lib/files/utils/scanner.php | 12 | ||||
-rw-r--r-- | tests/lib/helperstorage.php | 2 | ||||
-rw-r--r-- | tests/lib/httphelper.php | 4 | ||||
-rw-r--r-- | tests/lib/preferences-singleton.php | 176 | ||||
-rw-r--r-- | tests/lib/preferences.php | 241 | ||||
-rw-r--r-- | tests/lib/tags.php | 30 | ||||
-rw-r--r-- | tests/lib/user/session.php | 6 | ||||
-rw-r--r-- | tests/lib/user/user.php | 14 | ||||
-rw-r--r-- | tests/lib/util.php | 8 |
17 files changed, 774 insertions, 486 deletions
diff --git a/tests/lib/allconfig.php b/tests/lib/allconfig.php new file mode 100644 index 00000000000..7f8ad5ec221 --- /dev/null +++ b/tests/lib/allconfig.php @@ -0,0 +1,422 @@ +<?php +/** + * Copyright (c) 2014 Morris Jobke <hey@morrisjobke.de> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test; + +class TestAllConfig extends \Test\TestCase { + + /** @var \OCP\IDBConnection */ + protected $connection; + + protected function getConfig($systemConfig = null, $connection = null) { + if($this->connection === null) { + $this->connection = \OC::$server->getDatabaseConnection(); + } + if($connection === null) { + $connection = $this->connection; + } + if($systemConfig === null) { + $systemConfig = $this->getMock('\OC\SystemConfig'); + } + return new \OC\AllConfig($systemConfig, $connection); + } + + public function testDeleteUserValue() { + $config = $this->getConfig(); + + // preparation - add something to the database + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + array('userDelete', 'appDelete', 'keyDelete', 'valueDelete') + ); + + $config->deleteUserValue('userDelete', 'appDelete', 'keyDelete'); + + $result = $this->connection->executeQuery( + 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences` WHERE `userid` = ?', + array('userDelete') + )->fetch(); + $actualCount = $result['count']; + + $this->assertEquals(0, $actualCount, 'There was one value in the database and after the tests there should be no entry left.'); + } + + public function testSetUserValue() { + $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?'; + $config = $this->getConfig(); + + $config->setUserValue('userSet', 'appSet', 'keySet', 'valueSet'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userSet'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userSet', + 'appid' => 'appSet', + 'configkey' => 'keySet', + 'configvalue' => 'valueSet' + ), $result[0]); + + // test if the method overwrites existing database entries + $config->setUserValue('userSet', 'appSet', 'keySet', 'valueSet2'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userSet'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userSet', + 'appid' => 'appSet', + 'configkey' => 'keySet', + 'configvalue' => 'valueSet2' + ), $result[0]); + + // cleanup - it therefore relies on the successful execution of the previous test + $config->deleteUserValue('userSet', 'appSet', 'keySet'); + } + + public function testSetUserValueWithPreCondition() { + // mock the check for the database to run the correct SQL statements for each database type + $systemConfig = $this->getMock('\OC\SystemConfig'); + $systemConfig->expects($this->once()) + ->method('getValue') + ->with($this->equalTo('dbtype'), + $this->equalTo('sqlite')) + ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite'))); + $config = $this->getConfig($systemConfig); + + $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?'; + + $config->setUserValue('userPreCond', 'appPreCond', 'keyPreCond', 'valuePreCond'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userPreCond', + 'appid' => 'appPreCond', + 'configkey' => 'keyPreCond', + 'configvalue' => 'valuePreCond' + ), $result[0]); + + // test if the method overwrites existing database entries with valid precond + $config->setUserValue('userPreCond', 'appPreCond', 'keyPreCond', 'valuePreCond2', 'valuePreCond'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userPreCond', + 'appid' => 'appPreCond', + 'configkey' => 'keyPreCond', + 'configvalue' => 'valuePreCond2' + ), $result[0]); + + // cleanup + $config->deleteUserValue('userPreCond', 'appPreCond', 'keyPreCond'); + } + + /** + * @expectedException \OCP\PreConditionNotMetException + */ + public function testSetUserValueWithPreConditionFailure() { + // mock the check for the database to run the correct SQL statements for each database type + $systemConfig = $this->getMock('\OC\SystemConfig'); + $systemConfig->expects($this->once()) + ->method('getValue') + ->with($this->equalTo('dbtype'), + $this->equalTo('sqlite')) + ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite'))); + $config = $this->getConfig($systemConfig); + + $selectAllSQL = 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?'; + + $config->setUserValue('userPreCond1', 'appPreCond', 'keyPreCond', 'valuePreCond'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond1'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userPreCond1', + 'appid' => 'appPreCond', + 'configkey' => 'keyPreCond', + 'configvalue' => 'valuePreCond' + ), $result[0]); + + // test if the method overwrites existing database entries with valid precond + $config->setUserValue('userPreCond1', 'appPreCond', 'keyPreCond', 'valuePreCond2', 'valuePreCond3'); + + $result = $this->connection->executeQuery($selectAllSQL, array('userPreCond1'))->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userPreCond1', + 'appid' => 'appPreCond', + 'configkey' => 'keyPreCond', + 'configvalue' => 'valuePreCond' + ), $result[0]); + + // cleanup + $config->deleteUserValue('userPreCond1', 'appPreCond', 'keyPreCond'); + } + + public function testSetUserValueUnchanged() { + // TODO - FIXME until the dependency injection is handled properly (in AllConfig) + $this->markTestSkipped('Skipped because this is just testable if database connection can be injected'); + + $resultMock = $this->getMockBuilder('\Doctrine\DBAL\Driver\Statement') + ->disableOriginalConstructor()->getMock(); + $resultMock->expects($this->once()) + ->method('fetchColumn') + ->will($this->returnValue('valueSetUnchanged')); + + $connectionMock = $this->getMock('\OCP\IDBConnection'); + $connectionMock->expects($this->once()) + ->method('executeQuery') + ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences` '. + 'WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'), + $this->equalTo(array('userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged'))) + ->will($this->returnValue($resultMock)); + $connectionMock->expects($this->never()) + ->method('executeUpdate'); + + $config = $this->getConfig(null, $connectionMock); + + $config->setUserValue('userSetUnchanged', 'appSetUnchanged', 'keySetUnchanged', 'valueSetUnchanged'); + } + + public function testGetUserValue() { + $config = $this->getConfig(); + + // setup - it therefore relies on the successful execution of the previous test + $config->setUserValue('userGet', 'appGet', 'keyGet', 'valueGet'); + $value = $config->getUserValue('userGet', 'appGet', 'keyGet'); + + $this->assertEquals('valueGet', $value); + + $result = $this->connection->executeQuery( + 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?', + array('userGet') + )->fetchAll(); + + $this->assertEquals(1, count($result)); + $this->assertEquals(array( + 'userid' => 'userGet', + 'appid' => 'appGet', + 'configkey' => 'keyGet', + 'configvalue' => 'valueGet' + ), $result[0]); + + // drop data from database - but the config option should be cached in the config object + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences` WHERE `userid` = ?', array('userGet')); + + // testing the caching mechanism + $value = $config->getUserValue('userGet', 'appGet', 'keyGet'); + + $this->assertEquals('valueGet', $value); + + $result = $this->connection->executeQuery( + 'SELECT `userid`, `appid`, `configkey`, `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?', + array('userGet') + )->fetchAll(); + + $this->assertEquals(0, count($result)); + } + + public function testGetUserKeys() { + $config = $this->getConfig(); + + // preparation - add something to the database + $data = array( + array('userFetch', 'appFetch1', 'keyFetch1', 'value1'), + array('userFetch', 'appFetch1', 'keyFetch2', 'value2'), + array('userFetch', 'appFetch2', 'keyFetch3', 'value3'), + array('userFetch', 'appFetch1', 'keyFetch4', 'value4'), + array('userFetch', 'appFetch4', 'keyFetch1', 'value5'), + array('userFetch', 'appFetch5', 'keyFetch1', 'value6'), + array('userFetch2', 'appFetch', 'keyFetch1', 'value7') + ); + foreach ($data as $entry) { + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + $entry + ); + } + + $value = $config->getUserKeys('userFetch', 'appFetch1'); + $this->assertEquals(array('keyFetch1', 'keyFetch2', 'keyFetch4'), $value); + + $value = $config->getUserKeys('userFetch2', 'appFetch'); + $this->assertEquals(array('keyFetch1'), $value); + + // cleanup + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`'); + } + + public function testGetUserValueDefault() { + $config = $this->getConfig(); + + $this->assertEquals('', $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset')); + $this->assertEquals(null, $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset', null)); + $this->assertEquals('foobar', $config->getUserValue('userGetUnset', 'appGetUnset', 'keyGetUnset', 'foobar')); + } + + public function testGetUserValueForUsers() { + $config = $this->getConfig(); + + // preparation - add something to the database + $data = array( + array('userFetch1', 'appFetch2', 'keyFetch1', 'value1'), + array('userFetch2', 'appFetch2', 'keyFetch1', 'value2'), + array('userFetch3', 'appFetch2', 'keyFetch1', 3), + array('userFetch4', 'appFetch2', 'keyFetch1', 'value4'), + array('userFetch5', 'appFetch2', 'keyFetch1', 'value5'), + array('userFetch6', 'appFetch2', 'keyFetch1', 'value6'), + array('userFetch7', 'appFetch2', 'keyFetch1', 'value7') + ); + foreach ($data as $entry) { + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + $entry + ); + } + + $value = $config->getUserValueForUsers('appFetch2', 'keyFetch1', + array('userFetch1', 'userFetch2', 'userFetch3', 'userFetch5')); + $this->assertEquals(array( + 'userFetch1' => 'value1', + 'userFetch2' => 'value2', + 'userFetch3' => 3, + 'userFetch5' => 'value5' + ), $value); + + $value = $config->getUserValueForUsers('appFetch2', 'keyFetch1', + array('userFetch1', 'userFetch4', 'userFetch9')); + $this->assertEquals(array( + 'userFetch1' => 'value1', + 'userFetch4' => 'value4' + ), $value, 'userFetch9 is an non-existent user and should not be shown.'); + + // cleanup + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`'); + } + + public function testDeleteAllUserValues() { + $config = $this->getConfig(); + + // preparation - add something to the database + $data = array( + array('userFetch3', 'appFetch1', 'keyFetch1', 'value1'), + array('userFetch3', 'appFetch1', 'keyFetch2', 'value2'), + array('userFetch3', 'appFetch2', 'keyFetch3', 'value3'), + array('userFetch3', 'appFetch1', 'keyFetch4', 'value4'), + array('userFetch3', 'appFetch4', 'keyFetch1', 'value5'), + array('userFetch3', 'appFetch5', 'keyFetch1', 'value6'), + array('userFetch4', 'appFetch2', 'keyFetch1', 'value7') + ); + foreach ($data as $entry) { + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + $entry + ); + } + + $config->deleteAllUserValues('userFetch3'); + + $result = $this->connection->executeQuery( + 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`' + )->fetch(); + $actualCount = $result['count']; + + $this->assertEquals(1, $actualCount, 'After removing `userFetch3` there should be exactly 1 entry left.'); + + // cleanup + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`'); + } + + public function testDeleteAppFromAllUsers() { + $config = $this->getConfig(); + + // preparation - add something to the database + $data = array( + array('userFetch5', 'appFetch1', 'keyFetch1', 'value1'), + array('userFetch5', 'appFetch1', 'keyFetch2', 'value2'), + array('userFetch5', 'appFetch2', 'keyFetch3', 'value3'), + array('userFetch5', 'appFetch1', 'keyFetch4', 'value4'), + array('userFetch5', 'appFetch4', 'keyFetch1', 'value5'), + array('userFetch5', 'appFetch5', 'keyFetch1', 'value6'), + array('userFetch6', 'appFetch2', 'keyFetch1', 'value7') + ); + foreach ($data as $entry) { + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + $entry + ); + } + + $config->deleteAppFromAllUsers('appFetch1'); + + $result = $this->connection->executeQuery( + 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`' + )->fetch(); + $actualCount = $result['count']; + + $this->assertEquals(4, $actualCount, 'After removing `appFetch1` there should be exactly 4 entries left.'); + + $config->deleteAppFromAllUsers('appFetch2'); + + $result = $this->connection->executeQuery( + 'SELECT COUNT(*) AS `count` FROM `*PREFIX*preferences`' + )->fetch(); + $actualCount = $result['count']; + + $this->assertEquals(2, $actualCount, 'After removing `appFetch2` there should be exactly 2 entries left.'); + + // cleanup + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`'); + } + + public function testGetUsersForUserValue() { + // mock the check for the database to run the correct SQL statements for each database type + $systemConfig = $this->getMock('\OC\SystemConfig'); + $systemConfig->expects($this->once()) + ->method('getValue') + ->with($this->equalTo('dbtype'), + $this->equalTo('sqlite')) + ->will($this->returnValue(\OC::$server->getConfig()->getSystemValue('dbtype', 'sqlite'))); + $config = $this->getConfig($systemConfig); + + // preparation - add something to the database + $data = array( + array('user1', 'appFetch9', 'keyFetch9', 'value9'), + array('user2', 'appFetch9', 'keyFetch9', 'value9'), + array('user3', 'appFetch9', 'keyFetch9', 'value8'), + array('user4', 'appFetch9', 'keyFetch8', 'value9'), + array('user5', 'appFetch8', 'keyFetch9', 'value9'), + array('user6', 'appFetch9', 'keyFetch9', 'value9'), + ); + foreach ($data as $entry) { + $this->connection->executeUpdate( + 'INSERT INTO `*PREFIX*preferences` (`userid`, `appid`, ' . + '`configkey`, `configvalue`) VALUES (?, ?, ?, ?)', + $entry + ); + } + + $value = $config->getUsersForUserValue('appFetch9', 'keyFetch9', 'value9'); + $this->assertEquals(array('user1', 'user2', 'user6'), $value); + + // cleanup + $this->connection->executeUpdate('DELETE FROM `*PREFIX*preferences`'); + } + +} diff --git a/tests/lib/app/infoparser.php b/tests/lib/app/infoparser.php index 13c0b51e117..e291b616e8b 100644 --- a/tests/lib/app/infoparser.php +++ b/tests/lib/app/infoparser.php @@ -19,7 +19,7 @@ class InfoParser extends \PHPUnit_Framework_TestCase { private $parser; public function setUp() { - $config = $this->getMockBuilder('\OC\AllConfig') + $config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor()->getMock(); $httpHelper = $this->getMockBuilder('\OC\HTTPHelper') ->setConstructorArgs(array($config)) diff --git a/tests/lib/config.php b/tests/lib/config.php index 9dff3aab84f..6adba356a1c 100644 --- a/tests/lib/config.php +++ b/tests/lib/config.php @@ -47,7 +47,6 @@ class Test_Config extends \Test\TestCase { } public function testSetValue() { - $this->config->setDebugMode(false); $this->config->setValue('foo', 'moo'); $expectedConfig = $this->initialConfig; $expectedConfig['foo'] = 'moo'; @@ -73,7 +72,6 @@ class Test_Config extends \Test\TestCase { } public function testDeleteKey() { - $this->config->setDebugMode(false); $this->config->deleteKey('foo'); $expectedConfig = $this->initialConfig; unset($expectedConfig['foo']); @@ -85,37 +83,6 @@ class Test_Config extends \Test\TestCase { $this->assertEquals($expected, $content); } - public function testSetDebugMode() { - $this->config->setDebugMode(true); - $this->assertAttributeEquals($this->initialConfig, 'cache', $this->config); - $this->assertAttributeEquals(true, 'debugMode', $this->config); - $content = file_get_contents($this->configFile); - $expected = "<?php\ndefine('DEBUG',true);\n\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " . - " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n"; - $this->assertEquals($expected, $content); - - $this->config->setDebugMode(false); - $this->assertAttributeEquals($this->initialConfig, 'cache', $this->config); - $this->assertAttributeEquals(false, 'debugMode', $this->config); - $content = file_get_contents($this->configFile); - $expected = "<?php\n\$CONFIG = array (\n 'foo' => 'bar',\n 'beers' => \n array (\n 0 => 'Appenzeller',\n " . - " 1 => 'Guinness',\n 2 => 'Kölsch',\n ),\n 'alcohol_free' => false,\n);\n"; - $this->assertEquals($expected, $content); - } - - public function testIsDebugMode() { - // Default - $this->assertFalse($this->config->isDebugMode()); - - // Manually set to false - $this->config->setDebugMode(false); - $this->assertFalse($this->config->isDebugMode()); - - // Manually set to true - $this->config->setDebugMode(true); - $this->assertTrue($this->config->isDebugMode()); - } - public function testConfigMerge() { // Create additional config $additionalConfig = '<?php $CONFIG=array("php53"=>"totallyOutdated");'; diff --git a/tests/lib/contactsmanager.php b/tests/lib/contactsmanager.php new file mode 100644 index 00000000000..39e44cc6302 --- /dev/null +++ b/tests/lib/contactsmanager.php @@ -0,0 +1,209 @@ +<?php + + +class Test_ContactsManager extends \Test\TestCase { + + /** @var \OC\ContactsManager */ + private $cm; + + protected function setUp() { + parent::setUp(); + $this->cm = new \OC\ContactsManager(); + } + + public function searchProvider(){ + $search1 = array( + 0 => array( + 'N' => array(0 => '', 1 => 'Jan', 2 => 'Jansen', 3 => '', 4 => '',), + 'UID' => '04ada7f5-01f9-4309-9c82-6b555b2170ed', + 'FN' => 'Jan Jansen', + 'id' => '1', + 'addressbook-key' => 'simple:1', + ), + 0 => array( + 'N' => array(0 => '', 1 => 'Tom', 2 => 'Peeters', 3 => '', 4 => '',), + 'UID' => '04ada7f5-01f9-4309-9c82-2345-2345--6b555b2170ed', + 'FN' => 'Tom Peeters', + 'id' => '2', + 'addressbook-key' => 'simple:1', + ), + ); + + $search2 = array( + 0 => array( + 'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',), + 'UID' => '04ada234h5jh357f5-01f9-4309-9c82-6b555b2170ed', + 'FN' => 'Jan Rompuy', + 'id' => '1', + 'addressbook-key' => 'simple:2', + ), + 0 => array( + 'N' => array(0 => '', 1 => 'fg', 2 => '', 3 => '', 4 => '',), + 'UID' => '04ada7f5-01f9-4309-345kj345j9c82-2345-2345--6b555b2170ed', + 'FN' => 'Tim Peeters', + 'id' => '2', + 'addressbook-key' => 'simple:2', + ), + ); + + $expectedResult = array_merge($search1, $search2); + return array( + array( + $search1, + $search2, + $expectedResult + ) + ); + } + + /** + * @dataProvider searchProvider + */ + public function testSearch($search1, $search2, $expectedResult ){ + $addressbook1 = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook1->expects($this->once()) + ->method('search') + ->willReturn($search1); + + $addressbook1->expects($this->any()) + ->method('getKey') + ->willReturn('simple:1'); + + $addressbook2 = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook2->expects($this->once()) + ->method('search') + ->willReturn($search2); + + $addressbook2->expects($this->any()) + ->method('getKey') + ->willReturn('simple:2'); + + + $this->cm->registerAddressBook($addressbook1); + $this->cm->registerAddressBook($addressbook2); + $result = $this->cm->search(''); + $this->assertEquals($expectedResult, $result); + } + + + public function testDeleteHavePermission(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->any()) + ->method('getPermissions') + ->willReturn(\OCP\Constants::PERMISSION_ALL); + + $addressbook->expects($this->once()) + ->method('delete') + ->willReturn('returnMe'); + + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->delete(1, $addressbook->getKey()); + $this->assertEquals($result, 'returnMe'); + } + + public function testDeleteNoPermission(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->any()) + ->method('getPermissions') + ->willReturn(\OCP\Constants::PERMISSION_READ); + + $addressbook->expects($this->never()) + ->method('delete'); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->delete(1, $addressbook->getKey()); + $this->assertEquals($result, null); + } + + public function testDeleteNoAddressbook(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->never()) + ->method('delete'); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->delete(1, 'noaddressbook'); + $this->assertEquals($result, null); + + } + + public function testCreateOrUpdateHavePermission(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->any()) + ->method('getPermissions') + ->willReturn(\OCP\Constants::PERMISSION_ALL); + + $addressbook->expects($this->once()) + ->method('createOrUpdate') + ->willReturn('returnMe'); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->createOrUpdate(array(), $addressbook->getKey()); + $this->assertEquals($result, 'returnMe'); + } + + public function testCreateOrUpdateNoPermission(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->any()) + ->method('getPermissions') + ->willReturn(\OCP\Constants::PERMISSION_READ); + + $addressbook->expects($this->never()) + ->method('createOrUpdate'); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->createOrUpdate(array(), $addressbook->getKey()); + $this->assertEquals($result, null); + + } + + public function testCreateOrUpdateNOAdressbook(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $addressbook->expects($this->never()) + ->method('createOrUpdate'); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->createOrUpdate(array(), 'noaddressbook'); + $this->assertEquals($result, null); + } + + public function testIsEnabledIfNot(){ + $result = $this->cm->isEnabled(); + $this->assertFalse($result); + } + + public function testIsEnabledIfSo(){ + $addressbook = $this->getMockBuilder('\OCP\IAddressBook') + ->disableOriginalConstructor() + ->getMock(); + + $this->cm->registerAddressBook($addressbook); + $result = $this->cm->isEnabled(); + $this->assertTrue($result); + } + +}
\ No newline at end of file diff --git a/tests/lib/db/connection.php b/tests/lib/db/connection.php new file mode 100644 index 00000000000..070c75db55d --- /dev/null +++ b/tests/lib/db/connection.php @@ -0,0 +1,69 @@ +<?php + +/** + * Copyright (c) 2014 Robin Appelman <icewind@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\DB; + +use Doctrine\DBAL\Platforms\SqlitePlatform; +use OC\DB\MDB2SchemaManager; + +class Connection extends \Test\TestCase { + /** + * @var \OCP\IDBConnection + */ + private $connection; + + public function setUp() { + parent::setUp(); + $this->connection = \OC::$server->getDatabaseConnection(); + } + + /** + * @param string $table + */ + public function assertTableExist($table) { + if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) { + // sqlite removes the tables after closing the DB + $this->assertTrue(true); + } else { + $this->assertTrue($this->connection->tableExists($table), 'Table ' . $table . ' exists.'); + } + } + + /** + * @param string $table + */ + public function assertTableNotExist($table) { + if ($this->connection->getDatabasePlatform() instanceof SqlitePlatform) { + // sqlite removes the tables after closing the DB + $this->assertTrue(true); + } else { + $this->assertFalse($this->connection->tableExists($table), 'Table ' . $table . ' doesnt exists.'); + } + } + + private function makeTestTable() { + $schemaManager = new MDB2SchemaManager($this->connection); + $schemaManager->createDbFromStructure(__DIR__ . '/testschema.xml'); + } + + public function testTableExists() { + $this->assertTableNotExist('table'); + $this->makeTestTable(); + $this->assertTableExist('table'); + } + + /** + * @depends testTableExists + */ + public function testDropTable() { + $this->assertTableExist('table'); + $this->connection->dropTable('table'); + $this->assertTableNotExist('table'); + } +} diff --git a/tests/lib/files/mount/manager.php b/tests/lib/files/mount/manager.php index 051b76ccf2e..78322b47d50 100644 --- a/tests/lib/files/mount/manager.php +++ b/tests/lib/files/mount/manager.php @@ -30,33 +30,33 @@ class Manager extends \Test\TestCase { public function testFind() { $this->assertNull($this->manager->find('/')); - $rootMount = new \OC\Files\Mount\Mount(new Temporary(array()), '/'); + $rootMount = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/'); $this->manager->addMount($rootMount); $this->assertEquals($rootMount, $this->manager->find('/')); $this->assertEquals($rootMount, $this->manager->find('/foo/bar')); $storage = new Temporary(array()); - $mount1 = new \OC\Files\Mount\Mount($storage, '/foo'); + $mount1 = new \OC\Files\Mount\MountPoint($storage, '/foo'); $this->manager->addMount($mount1); $this->assertEquals($rootMount, $this->manager->find('/')); $this->assertEquals($mount1, $this->manager->find('/foo/bar')); $this->assertEquals(1, count($this->manager->findIn('/'))); - $mount2 = new \OC\Files\Mount\Mount(new Temporary(array()), '/bar'); + $mount2 = new \OC\Files\Mount\MountPoint(new Temporary(array()), '/bar'); $this->manager->addMount($mount2); $this->assertEquals(2, count($this->manager->findIn('/'))); $id = $mount1->getStorageId(); $this->assertEquals(array($mount1), $this->manager->findByStorageId($id)); - $mount3 = new \OC\Files\Mount\Mount($storage, '/foo/bar'); + $mount3 = new \OC\Files\Mount\MountPoint($storage, '/foo/bar'); $this->manager->addMount($mount3); $this->assertEquals(array($mount1, $mount3), $this->manager->findByStorageId($id)); } public function testLong() { $storage = new LongId(array()); - $mount = new \OC\Files\Mount\Mount($storage, '/foo'); + $mount = new \OC\Files\Mount\MountPoint($storage, '/foo'); $this->manager->addMount($mount); $id = $mount->getStorageId(); diff --git a/tests/lib/files/mount/mount.php b/tests/lib/files/mount/mount.php index 5ee3d934e97..584766de836 100644 --- a/tests/lib/files/mount/mount.php +++ b/tests/lib/files/mount/mount.php @@ -9,7 +9,7 @@ namespace Test\Files\Mount; -use OC\Files\Storage\Loader; +use OC\Files\Storage\StorageFactory; use OC\Files\Storage\Wrapper\Wrapper; class Mount extends \Test\TestCase { @@ -17,12 +17,12 @@ class Mount extends \Test\TestCase { $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->disableOriginalConstructor() ->getMock(); - $mount = new \OC\Files\Mount\Mount($storage, '/foo'); + $mount = new \OC\Files\Mount\MountPoint($storage, '/foo'); $this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage()); } public function testFromStorageClassname() { - $mount = new \OC\Files\Mount\Mount('\OC\Files\Storage\Temporary', '/foo'); + $mount = new \OC\Files\Mount\MountPoint('\OC\Files\Storage\Temporary', '/foo'); $this->assertInstanceOf('\OC\Files\Storage\Temporary', $mount->getStorage()); } @@ -34,13 +34,13 @@ class Mount extends \Test\TestCase { return new Wrapper(array('storage' => $storage)); }; - $loader = new Loader(); + $loader = new StorageFactory(); $loader->addStorageWrapper('test_wrapper', $wrapper); $storage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->disableOriginalConstructor() ->getMock(); - $mount = new \OC\Files\Mount\Mount($storage, '/foo', array(), $loader); + $mount = new \OC\Files\Mount\MountPoint($storage, '/foo', array(), $loader); $this->assertInstanceOf('\OC\Files\Storage\Wrapper\Wrapper', $mount->getStorage()); } } diff --git a/tests/lib/files/node/folder.php b/tests/lib/files/node/folder.php index 4aa57aa9373..d8c047a2b75 100644 --- a/tests/lib/files/node/folder.php +++ b/tests/lib/files/node/folder.php @@ -10,7 +10,7 @@ namespace Test\Files\Node; use OC\Files\Cache\Cache; use OC\Files\FileInfo; -use OC\Files\Mount\Mount; +use OC\Files\Mount\MountPoint; use OC\Files\Node\Node; use OCP\Files\NotFoundException; use OCP\Files\NotPermittedException; @@ -419,7 +419,7 @@ class Folder extends \Test\TestCase { $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array('')); $subCache = $this->getMock('\OC\Files\Cache\Cache', array(), array('')); $subStorage = $this->getMock('\OC\Files\Storage\Storage'); - $subMount = $this->getMock('\OC\Files\Mount\Mount', array(), array(null, '')); + $subMount = $this->getMock('\OC\Files\Mount\MountPoint', array(), array(null, '')); $subMount->expects($this->once()) ->method('getStorage') @@ -487,7 +487,7 @@ class Folder extends \Test\TestCase { ->method('getUser') ->will($this->returnValue($this->user)); $storage = $this->getMock('\OC\Files\Storage\Storage'); - $mount = new Mount($storage, '/bar'); + $mount = new MountPoint($storage, '/bar'); $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array('')); $view->expects($this->once()) @@ -530,7 +530,7 @@ class Folder extends \Test\TestCase { ->method('getUser') ->will($this->returnValue($this->user)); $storage = $this->getMock('\OC\Files\Storage\Storage'); - $mount = new Mount($storage, '/bar'); + $mount = new MountPoint($storage, '/bar'); $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array('')); $storage->expects($this->once()) @@ -568,8 +568,8 @@ class Folder extends \Test\TestCase { ->method('getUser') ->will($this->returnValue($this->user)); $storage = $this->getMock('\OC\Files\Storage\Storage'); - $mount1 = new Mount($storage, '/bar'); - $mount2 = new Mount($storage, '/bar/foo/asd'); + $mount1 = new MountPoint($storage, '/bar'); + $mount2 = new MountPoint($storage, '/bar/foo/asd'); $cache = $this->getMock('\OC\Files\Cache\Cache', array(), array('')); $view->expects($this->any()) diff --git a/tests/lib/files/utils/scanner.php b/tests/lib/files/utils/scanner.php index f729be81bd7..65ddfe47514 100644 --- a/tests/lib/files/utils/scanner.php +++ b/tests/lib/files/utils/scanner.php @@ -9,17 +9,17 @@ namespace Test\Files\Utils; use OC\Files\Filesystem; -use OC\Files\Mount\Mount; +use OC\Files\Mount\MountPoint; use OC\Files\Storage\Temporary; class TestScanner extends \OC\Files\Utils\Scanner { /** - * @var \OC\Files\Mount\Mount[] $mounts + * @var \OC\Files\Mount\MountPoint[] $mounts */ private $mounts = array(); /** - * @param \OC\Files\Mount\Mount $mount + * @param \OC\Files\Mount\MountPoint $mount */ public function addMount($mount) { $this->mounts[] = $mount; @@ -56,7 +56,7 @@ class Scanner extends \Test\TestCase { public function testReuseExistingRoot() { $storage = new Temporary(array()); - $mount = new Mount($storage, ''); + $mount = new MountPoint($storage, ''); Filesystem::getMountManager()->addMount($mount); $cache = $storage->getCache(); @@ -78,7 +78,7 @@ class Scanner extends \Test\TestCase { public function testReuseExistingFile() { $storage = new Temporary(array()); - $mount = new Mount($storage, ''); + $mount = new MountPoint($storage, ''); Filesystem::getMountManager()->addMount($mount); $cache = $storage->getCache(); @@ -105,7 +105,7 @@ class Scanner extends \Test\TestCase { $propagator = $this->getMock('\OC\Files\Cache\ChangePropagator', array('propagateChanges'), array(), '', false); $storage = new Temporary(array()); - $mount = new Mount($storage, '/foo'); + $mount = new MountPoint($storage, '/foo'); Filesystem::getMountManager()->addMount($mount); $cache = $storage->getCache(); diff --git a/tests/lib/helperstorage.php b/tests/lib/helperstorage.php index 9f3bd8824f7..8b5f41fc94c 100644 --- a/tests/lib/helperstorage.php +++ b/tests/lib/helperstorage.php @@ -45,7 +45,7 @@ class Test_Helper_Storage extends \Test\TestCase { \OC_User::setUserId(''); \OC_User::deleteUser($this->user); - \OC_Preferences::deleteUser($this->user); + \OC::$server->getConfig()->deleteAllUserValues($this->user); parent::tearDown(); } diff --git a/tests/lib/httphelper.php b/tests/lib/httphelper.php index eb58508f158..1cc4232ab4b 100644 --- a/tests/lib/httphelper.php +++ b/tests/lib/httphelper.php @@ -8,7 +8,7 @@ class TestHTTPHelper extends \Test\TestCase { - /** @var \OC\AllConfig*/ + /** @var \OCP\IConfig*/ private $config; /** @var \OC\HTTPHelper */ private $httpHelperMock; @@ -16,7 +16,7 @@ class TestHTTPHelper extends \Test\TestCase { protected function setUp() { parent::setUp(); - $this->config = $this->getMockBuilder('\OC\AllConfig') + $this->config = $this->getMockBuilder('\OCP\IConfig') ->disableOriginalConstructor()->getMock(); $this->httpHelperMock = $this->getMockBuilder('\OC\HTTPHelper') ->setConstructorArgs(array($this->config)) diff --git a/tests/lib/preferences-singleton.php b/tests/lib/preferences-singleton.php deleted file mode 100644 index 01e15acdfe1..00000000000 --- a/tests/lib/preferences-singleton.php +++ /dev/null @@ -1,176 +0,0 @@ -<?php -/** - * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it> - * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -class Test_Preferences extends \Test\TestCase { - public static function setUpBeforeClass() { - parent::setUpBeforeClass(); - - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)'); - $query->execute(array("Someuser", "someapp", "somekey", "somevalue")); - - $query->execute(array("Someuser", "getusersapp", "somekey", "somevalue")); - $query->execute(array("Anotheruser", "getusersapp", "somekey", "someothervalue")); - $query->execute(array("Anuser", "getusersapp", "somekey", "somevalue")); - - $query->execute(array("Someuser", "getappsapp", "somekey", "somevalue")); - - $query->execute(array("Someuser", "getkeysapp", "firstkey", "somevalue")); - $query->execute(array("Someuser", "getkeysapp", "anotherkey", "somevalue")); - $query->execute(array("Someuser", "getkeysapp", "key-tastic", "somevalue")); - - $query->execute(array("Someuser", "getvalueapp", "key", "a value for a key")); - - $query->execute(array("Deleteuser", "deleteapp", "deletekey", "somevalue")); - $query->execute(array("Deleteuser", "deleteapp", "somekey", "somevalue")); - $query->execute(array("Deleteuser", "someapp", "somekey", "somevalue")); - } - - public static function tearDownAfterClass() { - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `userid` = ?'); - $query->execute(array('Someuser')); - $query->execute(array('Anotheruser')); - $query->execute(array('Anuser')); - - parent::tearDownAfterClass(); - } - - public function testGetUsers() { - $query = \OC_DB::prepare('SELECT DISTINCT `userid` FROM `*PREFIX*preferences`'); - $result = $query->execute(); - $expected = array(); - while ($row = $result->fetchRow()) { - $expected[] = $row['userid']; - } - - sort($expected); - $users = \OC_Preferences::getUsers(); - sort($users); - $this->assertEquals($expected, $users); - } - - public function testGetApps() { - $query = \OC_DB::prepare('SELECT DISTINCT `appid` FROM `*PREFIX*preferences` WHERE `userid` = ?'); - $result = $query->execute(array('Someuser')); - $expected = array(); - while ($row = $result->fetchRow()) { - $expected[] = $row['appid']; - } - - sort($expected); - $apps = \OC_Preferences::getApps('Someuser'); - sort($apps); - $this->assertEquals($expected, $apps); - } - - public function testGetKeys() { - $query = \OC_DB::prepare('SELECT DISTINCT `configkey` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?'); - $result = $query->execute(array('Someuser', 'getkeysapp')); - $expected = array(); - while ($row = $result->fetchRow()) { - $expected[] = $row['configkey']; - } - - sort($expected); - $keys = \OC_Preferences::getKeys('Someuser', 'getkeysapp'); - sort($keys); - $this->assertEquals($expected, $keys); - } - - public function testGetValue() { - $this->assertNull(\OC_Preferences::getValue('nonexistant', 'nonexistant', 'nonexistant')); - - $this->assertEquals('default', \OC_Preferences::getValue('nonexistant', 'nonexistant', 'nonexistant', 'default')); - - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'getvalueapp', 'key')); - $row = $result->fetchRow(); - $expected = $row['configvalue']; - $this->assertEquals($expected, \OC_Preferences::getValue('Someuser', 'getvalueapp', 'key')); - } - - public function testSetValue() { - $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $value = $row['configvalue']; - $this->assertEquals('newvalue', $value); - - $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $value = $row['configvalue']; - $this->assertEquals('othervalue', $value); - } - - public function testSetValueWithPreCondition() { - // remove existing key - $this->assertTrue(\OC_Preferences::deleteKey('Someuser', 'setvalueapp', 'newkey')); - - // add new preference with pre-condition should fails - $this->assertFalse(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue', 'preCondition')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $this->assertFalse($row); - - // add new preference without pre-condition should insert the new value - $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'newvalue')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $value = $row['configvalue']; - $this->assertEquals('newvalue', $value); - - // wrong pre-condition, value should stay the same - $this->assertFalse(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue', 'preCondition')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $value = $row['configvalue']; - $this->assertEquals('newvalue', $value); - - // correct pre-condition, value should change - $this->assertTrue(\OC_Preferences::setValue('Someuser', 'setvalueapp', 'newkey', 'othervalue', 'newvalue')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Someuser', 'setvalueapp', 'newkey')); - $row = $result->fetchRow(); - $value = $row['configvalue']; - $this->assertEquals('othervalue', $value); - } - - public function testDeleteKey() { - $this->assertTrue(\OC_Preferences::deleteKey('Deleteuser', 'deleteapp', 'deletekey')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'); - $result = $query->execute(array('Deleteuser', 'deleteapp', 'deletekey')); - $this->assertEquals(0, count($result->fetchAll())); - } - - public function testDeleteApp() { - $this->assertTrue(\OC_Preferences::deleteApp('Deleteuser', 'deleteapp')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ? AND `appid` = ?'); - $result = $query->execute(array('Deleteuser', 'deleteapp')); - $this->assertEquals(0, count($result->fetchAll())); - } - - public function testDeleteUser() { - $this->assertTrue(\OC_Preferences::deleteUser('Deleteuser')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `userid` = ?'); - $result = $query->execute(array('Deleteuser')); - $this->assertEquals(0, count($result->fetchAll())); - } - - public function testDeleteAppFromAllUsers() { - $this->assertTrue(\OC_Preferences::deleteAppFromAllUsers('someapp')); - $query = \OC_DB::prepare('SELECT `configvalue` FROM `*PREFIX*preferences` WHERE `appid` = ?'); - $result = $query->execute(array('someapp')); - $this->assertEquals(0, count($result->fetchAll())); - } -} diff --git a/tests/lib/preferences.php b/tests/lib/preferences.php deleted file mode 100644 index 193b1f80280..00000000000 --- a/tests/lib/preferences.php +++ /dev/null @@ -1,241 +0,0 @@ -<?php -/** - * Copyright (c) 2013 Christopher Schäpers <christopher@schaepers.it> - * Copyright (c) 2013 Bart Visscher <bartv@thisnet.nl> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -class Test_Preferences_Object extends \Test\TestCase { - public function testGetUsers() - { - $statementMock = $this->getMock('\Doctrine\DBAL\Statement', array(), array(), '', false); - $statementMock->expects($this->exactly(2)) - ->method('fetchColumn') - ->will($this->onConsecutiveCalls('foo', false)); - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->once()) - ->method('executeQuery') - ->with($this->equalTo('SELECT DISTINCT `userid` FROM `*PREFIX*preferences`')) - ->will($this->returnValue($statementMock)); - - $preferences = new OC\Preferences($connectionMock); - $apps = $preferences->getUsers(); - $this->assertEquals(array('foo'), $apps); - } - - public function testSetValue() - { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->exactly(2)) - ->method('fetchColumn') - ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'), - $this->equalTo(array('grg', 'bar', 'foo'))) - ->will($this->onConsecutiveCalls(false, 'v1')); - $connectionMock->expects($this->once()) - ->method('insert') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - 'appid' => 'bar', - 'configkey' => 'foo', - 'configvalue' => 'v1', - ) - )); - $connectionMock->expects($this->once()) - ->method('executeUpdate') - ->with($this->equalTo("UPDATE `*PREFIX*preferences` SET `configvalue` = ?" - . " WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?"), - $this->equalTo(array('v2', 'grg', 'bar', 'foo')) - ); - - $preferences = new OC\Preferences($connectionMock); - $preferences->setValue('grg', 'bar', 'foo', 'v1'); - $preferences->setValue('grg', 'bar', 'foo', 'v2'); - } - - public function testSetValueUnchanged() { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->exactly(3)) - ->method('fetchColumn') - ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'), - $this->equalTo(array('grg', 'bar', 'foo'))) - ->will($this->onConsecutiveCalls(false, 'v1', 'v1')); - $connectionMock->expects($this->once()) - ->method('insert') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - 'appid' => 'bar', - 'configkey' => 'foo', - 'configvalue' => 'v1', - ) - )); - $connectionMock->expects($this->never()) - ->method('executeUpdate'); - - $preferences = new OC\Preferences($connectionMock); - $preferences->setValue('grg', 'bar', 'foo', 'v1'); - $preferences->setValue('grg', 'bar', 'foo', 'v1'); - $preferences->setValue('grg', 'bar', 'foo', 'v1'); - } - - public function testSetValueUnchanged2() { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->exactly(3)) - ->method('fetchColumn') - ->with($this->equalTo('SELECT `configvalue` FROM `*PREFIX*preferences`' - .' WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?'), - $this->equalTo(array('grg', 'bar', 'foo'))) - ->will($this->onConsecutiveCalls(false, 'v1', 'v2')); - $connectionMock->expects($this->once()) - ->method('insert') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - 'appid' => 'bar', - 'configkey' => 'foo', - 'configvalue' => 'v1', - ) - )); - $connectionMock->expects($this->once()) - ->method('executeUpdate') - ->with($this->equalTo("UPDATE `*PREFIX*preferences` SET `configvalue` = ?" - . " WHERE `userid` = ? AND `appid` = ? AND `configkey` = ?"), - $this->equalTo(array('v2', 'grg', 'bar', 'foo')) - ); - - $preferences = new OC\Preferences($connectionMock); - $preferences->setValue('grg', 'bar', 'foo', 'v1'); - $preferences->setValue('grg', 'bar', 'foo', 'v2'); - $preferences->setValue('grg', 'bar', 'foo', 'v2'); - } - - public function testGetUserValues() - { - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)'); - $query->execute(array('SomeUser', 'testGetUserValues', 'somekey', 'somevalue')); - $query->execute(array('AnotherUser', 'testGetUserValues', 'somekey', 'someothervalue')); - $query->execute(array('AUser', 'testGetUserValues', 'somekey', 'somevalue')); - - $preferences = new OC\Preferences(\OC_DB::getConnection()); - $users = array('SomeUser', 'AnotherUser', 'NoValueSet'); - - $values = $preferences->getValueForUsers('testGetUserValues', 'somekey', $users); - $this->assertUserValues($values); - - // Add a lot of users so the array is chunked - for ($i = 1; $i <= 75; $i++) { - array_unshift($users, 'NoValueBefore#' . $i); - array_push($users, 'NoValueAfter#' . $i); - } - - $values = $preferences->getValueForUsers('testGetUserValues', 'somekey', $users); - $this->assertUserValues($values); - - // Clean DB after the test - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?'); - $query->execute(array('testGetUserValues')); - } - - protected function assertUserValues($values) { - $this->assertEquals(2, sizeof($values)); - - $this->assertArrayHasKey('SomeUser', $values); - $this->assertEquals('somevalue', $values['SomeUser']); - - $this->assertArrayHasKey('AnotherUser', $values); - $this->assertEquals('someothervalue', $values['AnotherUser']); - } - - public function testGetValueUsers() - { - // Prepare data - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*preferences` VALUES(?, ?, ?, ?)'); - $query->execute(array('SomeUser', 'testGetUsersForValue', 'somekey', 'somevalue')); - $query->execute(array('AnotherUser', 'testGetUsersForValue', 'somekey', 'someothervalue')); - $query->execute(array('AUser', 'testGetUsersForValue', 'somekey', 'somevalue')); - - $preferences = new OC\Preferences(\OC_DB::getConnection()); - $result = $preferences->getUsersForValue('testGetUsersForValue', 'somekey', 'somevalue'); - sort($result); - $this->assertEquals(array('AUser', 'SomeUser'), $result); - - // Clean DB after the test - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*preferences` WHERE `appid` = ?'); - $query->execute(array('testGetUsersForValue')); - } - - public function testDeleteKey() - { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->once()) - ->method('delete') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - 'appid' => 'bar', - 'configkey' => 'foo', - ) - )); - - $preferences = new OC\Preferences($connectionMock); - $preferences->deleteKey('grg', 'bar', 'foo'); - } - - public function testDeleteApp() - { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->once()) - ->method('delete') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - 'appid' => 'bar', - ) - )); - - $preferences = new OC\Preferences($connectionMock); - $preferences->deleteApp('grg', 'bar'); - } - - public function testDeleteUser() - { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->once()) - ->method('delete') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'userid' => 'grg', - ) - )); - - $preferences = new OC\Preferences($connectionMock); - $preferences->deleteUser('grg'); - } - - public function testDeleteAppFromAllUsers() - { - $connectionMock = $this->getMock('\OC\DB\Connection', array(), array(), '', false); - $connectionMock->expects($this->once()) - ->method('delete') - ->with($this->equalTo('*PREFIX*preferences'), - $this->equalTo( - array( - 'appid' => 'bar', - ) - )); - - $preferences = new OC\Preferences($connectionMock); - $preferences->deleteAppFromAllUsers('bar'); - } -} diff --git a/tests/lib/tags.php b/tests/lib/tags.php index 533e6a19add..78f5085df39 100644 --- a/tests/lib/tags.php +++ b/tests/lib/tags.php @@ -136,6 +136,36 @@ class Test_Tags extends \Test\TestCase { $this->assertFalse($tagger->isEmpty()); } + public function testGetTagsForObjects() { + $defaultTags = array('Friends', 'Family', 'Work', 'Other'); + $tagger = $this->tagMgr->load($this->objectType, $defaultTags); + + $tagger->tagAs(1, 'Friends'); + $tagger->tagAs(1, 'Other'); + $tagger->tagAs(2, 'Family'); + + $tags = $tagger->getTagsForObjects(array(1)); + $this->assertEquals(1, count($tags)); + $tags = current($tags); + sort($tags); + $this->assertSame(array('Friends', 'Other'), $tags); + + $tags = $tagger->getTagsForObjects(array(1, 2)); + $this->assertEquals(2, count($tags)); + $tags1 = $tags[1]; + sort($tags1); + $this->assertSame(array('Friends', 'Other'), $tags1); + $this->assertSame(array('Family'), $tags[2]); + $this->assertEquals( + array(), + $tagger->getTagsForObjects(array(4)) + ); + $this->assertEquals( + array(), + $tagger->getTagsForObjects(array(4, 5)) + ); + } + public function testdeleteTags() { $defaultTags = array('Friends', 'Family', 'Work', 'Other'); $tagger = $this->tagMgr->load($this->objectType, $defaultTags); diff --git a/tests/lib/user/session.php b/tests/lib/user/session.php index 8d9d024197c..aa1ea5841c0 100644 --- a/tests/lib/user/session.php +++ b/tests/lib/user/session.php @@ -234,7 +234,7 @@ class Session extends \Test\TestCase { //prepare login token $token = 'goodToken'; - \OC_Preferences::setValue('foo', 'login_token', $token, time()); + \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time()); $userSession = $this->getMock( '\OC\User\Session', @@ -282,7 +282,7 @@ class Session extends \Test\TestCase { //prepare login token $token = 'goodToken'; - \OC_Preferences::setValue('foo', 'login_token', $token, time()); + \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time()); $userSession = new \OC\User\Session($manager, $session); $granted = $userSession->loginWithCookie('foo', 'badToken'); @@ -323,7 +323,7 @@ class Session extends \Test\TestCase { //prepare login token $token = 'goodToken'; - \OC_Preferences::setValue('foo', 'login_token', $token, time()); + \OC::$server->getConfig()->setUserValue('foo', 'login_token', $token, time()); $userSession = new \OC\User\Session($manager, $session); $granted = $userSession->loginWithCookie('foo', $token); diff --git a/tests/lib/user/user.php b/tests/lib/user/user.php index 6aa7243a75a..a940d6eb627 100644 --- a/tests/lib/user/user.php +++ b/tests/lib/user/user.php @@ -9,7 +9,6 @@ namespace Test\User; -use OC\AllConfig; use OC\Hooks\PublicEmitter; class User extends \Test\TestCase { @@ -228,10 +227,19 @@ class User extends \Test\TestCase { ->method('implementsActions') ->will($this->returnValue(false)); - $allConfig = new AllConfig(); + $allConfig = $this->getMockBuilder('\OCP\IConfig') + ->disableOriginalConstructor() + ->getMock(); + $allConfig->expects($this->any()) + ->method('getUserValue') + ->will($this->returnValue(true)); + $allConfig->expects($this->any()) + ->method('getSystemValue') + ->with($this->equalTo('datadirectory')) + ->will($this->returnValue('arbitrary/path')); $user = new \OC\User\User('foo', $backend, null, $allConfig); - $this->assertEquals(\OC_Config::getValue("datadirectory", \OC::$SERVERROOT . "/data") . '/foo', $user->getHome()); + $this->assertEquals('arbitrary/path/foo', $user->getHome()); } public function testCanChangePassword() { diff --git a/tests/lib/util.php b/tests/lib/util.php index 1ddbd2aba2b..3bb4b47c09c 100644 --- a/tests/lib/util.php +++ b/tests/lib/util.php @@ -152,7 +152,7 @@ class Test_Util extends \Test\TestCase { function testHomeStorageWrapperWithoutQuota() { $user1 = $this->getUniqueID(); \OC_User::createUser($user1, 'test'); - OC_Preferences::setValue($user1, 'files', 'quota', 'none'); + \OC::$server->getConfig()->setUserValue($user1, 'files', 'quota', 'none'); \OC_User::setUserId($user1); \OC_Util::setupFS($user1); @@ -164,7 +164,7 @@ class Test_Util extends \Test\TestCase { // clean up \OC_User::setUserId(''); \OC_User::deleteUser($user1); - OC_Preferences::deleteUser($user1); + \OC::$server->getConfig()->deleteAllUserValues($user1); \OC_Util::tearDownFS(); } @@ -174,7 +174,7 @@ class Test_Util extends \Test\TestCase { function testHomeStorageWrapperWithQuota() { $user1 = $this->getUniqueID(); \OC_User::createUser($user1, 'test'); - OC_Preferences::setValue($user1, 'files', 'quota', '1024'); + \OC::$server->getConfig()->setUserValue($user1, 'files', 'quota', '1024'); \OC_User::setUserId($user1); \OC_Util::setupFS($user1); @@ -191,7 +191,7 @@ class Test_Util extends \Test\TestCase { // clean up \OC_User::setUserId(''); \OC_User::deleteUser($user1); - OC_Preferences::deleteUser($user1); + \OC::$server->getConfig()->deleteAllUserValues($user1); \OC_Util::tearDownFS(); } |