summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/allconfig.php422
-rw-r--r--tests/lib/app/infoparser.php2
-rw-r--r--tests/lib/config.php33
-rw-r--r--tests/lib/contactsmanager.php209
-rw-r--r--tests/lib/db/connection.php69
-rw-r--r--tests/lib/files/mount/manager.php10
-rw-r--r--tests/lib/files/mount/mount.php10
-rw-r--r--tests/lib/files/node/folder.php12
-rw-r--r--tests/lib/files/utils/scanner.php12
-rw-r--r--tests/lib/helperstorage.php2
-rw-r--r--tests/lib/httphelper.php4
-rw-r--r--tests/lib/preferences-singleton.php176
-rw-r--r--tests/lib/preferences.php241
-rw-r--r--tests/lib/tags.php30
-rw-r--r--tests/lib/user/session.php6
-rw-r--r--tests/lib/user/user.php14
-rw-r--r--tests/lib/util.php8
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();
}