diff options
Diffstat (limited to 'tests/lib')
-rw-r--r-- | tests/lib/files/objectstore/noopscanner.php | 76 | ||||
-rw-r--r-- | tests/lib/l10n.php | 16 | ||||
-rw-r--r-- | tests/lib/memcache/factory.php | 110 | ||||
-rw-r--r-- | tests/lib/repair/dropoldtables.php | 38 | ||||
-rw-r--r-- | tests/lib/repair/fixtures/dropoldtables.xml | 24 | ||||
-rw-r--r-- | tests/lib/templatelayout.php | 72 |
6 files changed, 264 insertions, 72 deletions
diff --git a/tests/lib/files/objectstore/noopscanner.php b/tests/lib/files/objectstore/noopscanner.php new file mode 100644 index 00000000000..f860c03cb18 --- /dev/null +++ b/tests/lib/files/objectstore/noopscanner.php @@ -0,0 +1,76 @@ +<?php +/** + * ownCloud + * + * @author Joas Schilling + * @copyright 2015 Joas Schilling nickvergessen@owncloud.com + * + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ +namespace Test\Files\Cache; + +class NoopScanner extends \Test\TestCase { + /** @var \OC\Files\Storage\Storage $storage */ + private $storage; + + /** @var \OC\Files\ObjectStore\NoopScanner $scanner */ + private $scanner; + + protected function setUp() { + parent::setUp(); + + $this->storage = new \OC\Files\Storage\Temporary(array()); + $this->scanner = new \OC\Files\ObjectStore\NoopScanner($this->storage); + } + + function testFile() { + $data = "dummy file data\n"; + $this->storage->file_put_contents('foo.txt', $data); + + $this->assertEquals( + [], + $this->scanner->scanFile('foo.txt'), + 'Asserting that no error occurred while scanFile()' + ); + } + + private function fillTestFolders() { + $textData = "dummy file data\n"; + $imgData = file_get_contents(\OC::$SERVERROOT . '/core/img/logo.png'); + $this->storage->mkdir('folder'); + $this->storage->file_put_contents('foo.txt', $textData); + $this->storage->file_put_contents('foo.png', $imgData); + $this->storage->file_put_contents('folder/bar.txt', $textData); + } + + function testFolder() { + $this->fillTestFolders(); + + $this->assertEquals( + [], + $this->scanner->scan(''), + 'Asserting that no error occurred while scan()' + ); + } + + function testBackgroundScan() { + $this->fillTestFolders(); + $this->storage->mkdir('folder2'); + $this->storage->file_put_contents('folder2/bar.txt', 'foobar'); + + $this->assertEquals( + [], + $this->scanner->scan('', \OC\Files\Cache\Scanner::SCAN_SHALLOW), + 'Asserting that no error occurred while scan(SCAN_SHALLOW)' + ); + + $this->scanner->backgroundScan(); + + $this->assertTrue( + true, + 'Asserting that no error occurred while backgroundScan()' + ); + } +} diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php index 2235581add8..0307dd459e5 100644 --- a/tests/lib/l10n.php +++ b/tests/lib/l10n.php @@ -173,4 +173,20 @@ class Test_L10n extends \Test\TestCase { array(null, null, 'en'), ); } + + public function testGetLanguageCode() { + $l = OC_L10N::get('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } + + public function testFactoryGetLanguageCode() { + $factory = new \OC\L10N\Factory(); + $l = $factory->get('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } + + public function testServiceGetLanguageCode() { + $l = \OC::$server->getL10N('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } } diff --git a/tests/lib/memcache/factory.php b/tests/lib/memcache/factory.php new file mode 100644 index 00000000000..4ce032abbe8 --- /dev/null +++ b/tests/lib/memcache/factory.php @@ -0,0 +1,110 @@ +<?php +/** + * @author Robin McCorkell <rmccorkell@karoshi.org.uk> + * + * @copyright Copyright (c) 2015, ownCloud, Inc. + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ +namespace Test\Memcache; + +class Test_Factory_Available_Cache1 { + public function __construct($prefix = '') { + } + + public static function isAvailable() { + return true; + } +} + +class Test_Factory_Available_Cache2 { + public function __construct($prefix = '') { + } + + public static function isAvailable() { + return true; + } +} + +class Test_Factory_Unavailable_Cache1 { + public function __construct($prefix = '') { + } + + public static function isAvailable() { + return false; + } +} + +class Test_Factory_Unavailable_Cache2 { + public function __construct($prefix = '') { + } + + public static function isAvailable() { + return false; + } +} + +class Test_Factory extends \Test\TestCase { + const AVAILABLE1 = '\\Test\\Memcache\\Test_Factory_Available_Cache1'; + const AVAILABLE2 = '\\Test\\Memcache\\Test_Factory_Available_Cache2'; + const UNAVAILABLE1 = '\\Test\\Memcache\\Test_Factory_Unavailable_Cache1'; + const UNAVAILABLE2 = '\\Test\\Memcache\\Test_Factory_Unavailable_Cache2'; + + public function cacheAvailabilityProvider() { + return [ + [ + // local and distributed available + self::AVAILABLE1, self::AVAILABLE2, + self::AVAILABLE1, self::AVAILABLE2 + ], + [ + // local available, distributed unavailable + self::AVAILABLE1, self::UNAVAILABLE1, + self::AVAILABLE1, self::AVAILABLE1 + ], + [ + // local unavailable, distributed available + self::UNAVAILABLE1, self::AVAILABLE1, + \OC\Memcache\Factory::NULL_CACHE, self::AVAILABLE1 + ], + [ + // local and distributed unavailable + self::UNAVAILABLE1, self::UNAVAILABLE2, + \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE + ], + [ + // local and distributed null + null, null, + \OC\Memcache\Factory::NULL_CACHE, \OC\Memcache\Factory::NULL_CACHE + ], + [ + // local available, distributed null (most common scenario) + self::AVAILABLE1, null, + self::AVAILABLE1, self::AVAILABLE1 + ] + ]; + } + + /** + * @dataProvider cacheAvailabilityProvider + */ + public function testCacheAvailability($localCache, $distributedCache, + $expectedLocalCache, $expectedDistributedCache) + { + $factory = new \OC\Memcache\Factory('abc', $localCache, $distributedCache); + $this->assertTrue(is_a($factory->createLocal(), $expectedLocalCache)); + $this->assertTrue(is_a($factory->createDistributed(), $expectedDistributedCache)); + } +} diff --git a/tests/lib/repair/dropoldtables.php b/tests/lib/repair/dropoldtables.php new file mode 100644 index 00000000000..244d8837949 --- /dev/null +++ b/tests/lib/repair/dropoldtables.php @@ -0,0 +1,38 @@ +<?php +/** + * Copyright (c) 2015 Joas Schilling <nickvergessen@owncloud.com> + * This file is licensed under the Affero General Public License version 3 or + * later. + * See the COPYING-README file. + */ + +namespace Test\Repair; + +/** + * Tests for the dropping old tables + * + * @see \OC\Repair\DropOldTables + */ +class DropOldTables extends \Test\TestCase { + /** @var \OCP\IDBConnection */ + protected $connection; + + protected function setUp() { + parent::setUp(); + + $this->connection = \OC::$server->getDatabaseConnection(); + $manager = new \OC\DB\MDB2SchemaManager($this->connection); + $manager->createDbFromStructure(__DIR__ . '/fixtures/dropoldtables.xml'); + } + + public function testRun() { + $this->assertFalse($this->connection->tableExists('sharing'), 'Asserting that the table oc_sharing does not exist before repairing'); + $this->assertTrue($this->connection->tableExists('permissions'), 'Asserting that the table oc_permissions does exist before repairing'); + + $repair = new \OC\Repair\DropOldTables($this->connection); + $repair->run(); + + $this->assertFalse($this->connection->tableExists('sharing'), 'Asserting that the table oc_sharing does not exist after repairing'); + $this->assertFalse($this->connection->tableExists('permissions'), 'Asserting that the table oc_permissions does not exist after repairing'); + } +} diff --git a/tests/lib/repair/fixtures/dropoldtables.xml b/tests/lib/repair/fixtures/dropoldtables.xml new file mode 100644 index 00000000000..6c42a8f90a7 --- /dev/null +++ b/tests/lib/repair/fixtures/dropoldtables.xml @@ -0,0 +1,24 @@ +<?xml version="1.0" encoding="utf-8" ?> +<database> + + <name>*dbname*</name> + <create>true</create> + <overwrite>false</overwrite> + + <charset>utf8</charset> + + <table> + + <name>*dbprefix*permissions</name> + + <declaration> + <field> + <name>textfield</name> + <type>text</type> + <default>foo</default> + <notnull>true</notnull> + <length>32</length> + </field> + </declaration> + </table> +</database> diff --git a/tests/lib/templatelayout.php b/tests/lib/templatelayout.php deleted file mode 100644 index c23aaa9b762..00000000000 --- a/tests/lib/templatelayout.php +++ /dev/null @@ -1,72 +0,0 @@ -<?php -/** - * Copyright (c) 2014 Lukas Reschke <lukas@owncloud.com> - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -namespace OC\Test; - -/** - * @package OC\Test - */ -class OC_TemplateLayout extends \Test\TestCase { - - private $oldServerURI; - private $oldScriptName; - - protected function setUp() { - parent::setUp(); - - $this->oldServerURI = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : null; - $this->oldScriptName = $_SERVER['SCRIPT_NAME']; - } - - protected function tearDown() { - if ($this->oldServerURI === null) { - unset($_SERVER['REQUEST_URI']); - } else { - $_SERVER['REQUEST_URI'] = $this->oldServerURI; - } - $_SERVER['SCRIPT_NAME'] = $this->oldScriptName; - - parent::tearDown(); - } - - /** - * Contains valid file paths in the scheme array($absolutePath, $expectedPath) - * @return array - */ - public function validFilePathProvider() { - return array( - array(\OC::$SERVERROOT . '/apps/files/js/fancyJS.js', '/apps/files/js/fancyJS.js'), - array(\OC::$SERVERROOT. '/test.js', '/test.js'), - array(\OC::$SERVERROOT . '/core/test.js', '/core/test.js'), - array(\OC::$SERVERROOT, ''), - ); - } - - /** - * @dataProvider validFilePathProvider - */ - public function testConvertToRelativePath($absolutePath, $expected) { - $_SERVER['REQUEST_URI'] = $expected; - $_SERVER['SCRIPT_NAME'] = $expected; - - $relativePath = \Test_Helper::invokePrivate(new \OC_TemplateLayout('user'), 'convertToRelativePath', array($absolutePath)); - $this->assertEquals($expected, $relativePath); - } - - /** - * @expectedException \Exception - * @expectedExceptionMessage $filePath is not under the \OC::$SERVERROOT - */ - public function testInvalidConvertToRelativePath() { - $invalidFile = '/this/file/is/invalid'; - $_SERVER['REQUEST_URI'] = $invalidFile; - $_SERVER['SCRIPT_NAME'] = '/'; - - \Test_Helper::invokePrivate(new \OC_TemplateLayout('user'), 'convertToRelativePath', array($invalidFile)); - } -} |