aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/files/objectstore/noopscanner.php76
-rw-r--r--tests/lib/l10n.php16
-rw-r--r--tests/lib/memcache/factory.php110
-rw-r--r--tests/lib/repair/dropoldtables.php38
-rw-r--r--tests/lib/repair/fixtures/dropoldtables.xml24
-rw-r--r--tests/lib/templatelayout.php72
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));
- }
-}