summaryrefslogtreecommitdiffstats
path: root/tests/lib
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib')
-rw-r--r--tests/lib/app.php7
-rw-r--r--tests/lib/appframework/http/JSONResponseTest.php2
-rw-r--r--tests/lib/files/view.php31
-rw-r--r--tests/lib/security/hasher.php115
-rw-r--r--tests/lib/user/manager.php13
5 files changed, 160 insertions, 8 deletions
diff --git a/tests/lib/app.php b/tests/lib/app.php
index e538ebec8a0..5bce3b8c3e6 100644
--- a/tests/lib/app.php
+++ b/tests/lib/app.php
@@ -360,10 +360,7 @@ class Test_App extends PHPUnit_Framework_TestCase {
$user1->delete();
$user2->delete();
$user3->delete();
- // clear user cache...
- $userManager->delete(self::TEST_USER1);
- $userManager->delete(self::TEST_USER2);
- $userManager->delete(self::TEST_USER3);
+
$group1->delete();
$group2->delete();
}
@@ -399,8 +396,6 @@ class Test_App extends PHPUnit_Framework_TestCase {
\OC_User::setUserId(null);
$user1->delete();
- // clear user cache...
- $userManager->delete(self::TEST_USER1);
}
/**
diff --git a/tests/lib/appframework/http/JSONResponseTest.php b/tests/lib/appframework/http/JSONResponseTest.php
index f7c89a9d2e1..06cd3410a69 100644
--- a/tests/lib/appframework/http/JSONResponseTest.php
+++ b/tests/lib/appframework/http/JSONResponseTest.php
@@ -44,7 +44,7 @@ class JSONResponseTest extends \PHPUnit_Framework_TestCase {
public function testHeader() {
$headers = $this->json->getHeaders();
- $this->assertEquals('application/json; charset=utf-8', $headers['Content-type']);
+ $this->assertEquals('application/json; charset=utf-8', $headers['Content-Type']);
}
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 5f030f29fa7..086ac873bfb 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -8,6 +8,7 @@
namespace Test\Files;
use OC\Files\Cache\Watcher;
+use OC\Files\Storage\Temporary;
class TemporaryNoTouch extends \OC\Files\Storage\Temporary {
public function touch($path, $mtime = null) {
@@ -652,6 +653,36 @@ class View extends \PHPUnit_Framework_TestCase {
$this->assertSame($info['etag'], $info2['etag']);
}
+ public function testWatcherEtagCrossStorage() {
+ $storage1 = new Temporary(array());
+ $storage2 = new Temporary(array());
+ $scanner1 = $storage1->getScanner();
+ $scanner2 = $storage2->getScanner();
+ $storage1->mkdir('sub');
+ \OC\Files\Filesystem::mount($storage1, array(), '/test/');
+ \OC\Files\Filesystem::mount($storage2, array(), '/test/sub/storage');
+
+ $past = time() - 100;
+ $storage2->file_put_contents('test.txt', 'foobar');
+ $scanner1->scan('');
+ $scanner2->scan('');
+ $view = new \OC\Files\View('');
+
+ $storage2->getWatcher('')->setPolicy(Watcher::CHECK_ALWAYS);
+
+ $oldFileInfo = $view->getFileInfo('/test/sub/storage/test.txt');
+ $oldFolderInfo = $view->getFileInfo('/test');
+
+ $storage2->getCache()->update($oldFileInfo->getId(), array(
+ 'storage_mtime' => $past
+ ));
+
+ $view->getFileInfo('/test/sub/storage/test.txt');
+ $newFolderInfo = $view->getFileInfo('/test');
+
+ $this->assertNotEquals($newFolderInfo->getEtag(), $oldFolderInfo->getEtag());
+ }
+
/**
* @dataProvider absolutePathProvider
*/
diff --git a/tests/lib/security/hasher.php b/tests/lib/security/hasher.php
new file mode 100644
index 00000000000..330789c67a0
--- /dev/null
+++ b/tests/lib/security/hasher.php
@@ -0,0 +1,115 @@
+<?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.
+ */
+
+use OC\Security\Hasher;
+
+/**
+ * Class HasherTest
+ */
+class HasherTest extends \PHPUnit_Framework_TestCase {
+
+ /**
+ * @return array
+ */
+ public function versionHashProvider()
+ {
+ return array(
+ array('asf32äà$$a.|3', null),
+ array('asf32äà$$a.|3|5', null),
+ array('1|2|3|4', array('version' => 1, 'hash' => '2|3|4')),
+ array('1|我看|这本书。 我看這本書', array('version' => 1, 'hash' => '我看|这本书。 我看這本書'))
+ );
+ }
+
+ /**
+ * @return array
+ */
+ public function allHashProviders()
+ {
+ return array(
+ // Bogus values
+ array(null, 'asf32äà$$a.|3', false),
+ array(null, false, false),
+
+ // Valid SHA1 strings
+ array('password', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', true),
+ array('owncloud.com', '27a4643e43046c3569e33b68c1a4b15d31306d29', true),
+
+ // Invalid SHA1 strings
+ array('InvalidString', '5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8', false),
+ array('AnotherInvalidOne', '27a4643e43046c3569e33b68c1a4b15d31306d29', false),
+
+ // Valid legacy password string with password salt "6Wow67q1wZQZpUUeI6G2LsWUu4XKx"
+ array('password', '$2a$08$emCpDEl.V.QwPWt5gPrqrOhdpH6ailBmkj2Hd2vD5U8qIy20HBe7.', true),
+ array('password', '$2a$08$yjaLO4ev70SaOsWZ9gRS3eRSEpHVsmSWTdTms1949mylxJ279hzo2', true),
+ array('password', '$2a$08$.jNRG/oB4r7gHJhAyb.mDupNUAqTnBIW/tWBqFobaYflKXiFeG0A6', true),
+ array('owncloud.com', '$2a$08$YbEsyASX/hXVNMv8hXQo7ezreN17T8Jl6PjecGZvpX.Ayz2aUyaZ2', true),
+ array('owncloud.com', '$2a$11$cHdDA2IkUP28oNGBwlL7jO/U3dpr8/0LIjTZmE8dMPA7OCUQsSTqS', true),
+ array('owncloud.com', '$2a$08$GH.UoIfJ1e.qeZ85KPqzQe6NR8XWRgJXWIUeE1o/j1xndvyTA1x96', true),
+
+ // Invalid legacy passwords
+ array('password', '$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false),
+
+ // Valid passwords "6Wow67q1wZQZpUUeI6G2LsWUu4XKx"
+ array('password', '1|$2a$05$ezAE0dkwk57jlfo6z5Pql.gcIK3ReXT15W7ITNxVS0ksfhO/4E4Kq', true),
+ array('password', '1|$2a$05$4OQmloFW4yTVez2MEWGIleDO9Z5G9tWBXxn1vddogmKBQq/Mq93pe', true),
+ array('password', '1|$2a$11$yj0hlp6qR32G9exGEXktB.yW2rgt2maRBbPgi3EyxcDwKrD14x/WO', true),
+ array('owncloud.com', '1|$2a$10$Yiss2WVOqGakxuuqySv5UeOKpF8d8KmNjuAPcBMiRJGizJXjA2bKm', true),
+ array('owncloud.com', '1|$2a$10$v9mh8/.mF/Ut9jZ7pRnpkuac3bdFCnc4W/gSumheQUi02Sr.xMjPi', true),
+ array('owncloud.com', '1|$2a$05$ST5E.rplNRfDCzRpzq69leRzsTGtY7k88h9Vy2eWj0Ug/iA9w5kGK', true),
+
+ // Invalid passwords
+ array('password', '0|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false),
+ array('password', '1|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false),
+ array('password', '2|$2a$08$oKAQY5IhnZocP.61MwP7xu7TNeOb7Ostvk3j6UpacvaNMs.xRj7O2', false),
+ );
+ }
+
+
+
+ /** @var Hasher */
+ protected $hasher;
+ /** @var \OCP\IConfig */
+ protected $config;
+
+ protected function setUp() {
+ $this->config = $this->getMockBuilder('\OCP\IConfig')
+ ->disableOriginalConstructor()->getMock();
+
+ $this->hasher = new Hasher($this->config);
+ }
+
+ function testHash() {
+ $hash = $this->hasher->hash('String To Hash');
+ $this->assertNotNull($hash);
+ }
+
+ /**
+ * @dataProvider versionHashProvider
+ */
+ function testSplitHash($hash, $expected) {
+ $relativePath = \Test_Helper::invokePrivate($this->hasher, 'splitHash', array($hash));
+ $this->assertSame($expected, $relativePath);
+ }
+
+
+ /**
+ * @dataProvider allHashProviders
+ */
+ function testVerify($password, $hash, $expected) {
+ $this->config
+ ->expects($this->any())
+ ->method('getSystemValue')
+ ->with('passwordsalt', null)
+ ->will($this->returnValue('6Wow67q1wZQZpUUeI6G2LsWUu4XKx'));
+
+ $result = $this->hasher->verify($password, $hash);
+ $this->assertSame($expected, $result);
+ }
+
+}
diff --git a/tests/lib/user/manager.php b/tests/lib/user/manager.php
index fd0931af7e4..15b28e61bd5 100644
--- a/tests/lib/user/manager.php
+++ b/tests/lib/user/manager.php
@@ -416,6 +416,17 @@ class Manager extends \PHPUnit_Framework_TestCase {
$users = array_shift($result);
//users from backends shall be summed up
- $this->assertEquals(7+16, $users);
+ $this->assertEquals(7 + 16, $users);
+ }
+
+ public function testDeleteUser() {
+ $manager = new \OC\User\Manager();
+ $backend = new \OC_User_Dummy();
+
+ $backend->createUser('foo', 'bar');
+ $manager->registerBackend($backend);
+ $this->assertTrue($manager->userExists('foo'));
+ $manager->get('foo')->delete();
+ $this->assertFalse($manager->userExists('foo'));
}
}