Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/server.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorVincent Petry <pvince81@owncloud.com>2014-03-10 18:19:18 +0400
committerVincent Petry <pvince81@owncloud.com>2014-03-10 20:59:14 +0400
commit010eef95c0c5cebd03b03645d29847638e064bd5 (patch)
treeb44bd736a2b3fee1d2abde614653f7d9317d448d /tests
parent3eb58d9973706b1cc3f51f024e362779d278ee49 (diff)
Fixed total space display when data size exceeds quota
The total space display in the personal page now shows the quota value instead of used space when used space exceeds the quota (soft quota).
Diffstat (limited to 'tests')
-rw-r--r--tests/lib/helperstorage.php113
1 files changed, 113 insertions, 0 deletions
diff --git a/tests/lib/helperstorage.php b/tests/lib/helperstorage.php
new file mode 100644
index 00000000000..010a54e3bb0
--- /dev/null
+++ b/tests/lib/helperstorage.php
@@ -0,0 +1,113 @@
+<?php
+/**
+ * Copyright (c) 2014 Vincent Petry <pvince81@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+/**
+ * Test the storage functions of OC_Helper
+ */
+class Test_Helper_Storage extends PHPUnit_Framework_TestCase {
+ private $user;
+ private $storageMock;
+
+ public function setUp() {
+ $this->user = 'user_' . uniqid();
+ \OC\Files\Filesystem::tearDown();
+ \OC\Files\Filesystem::init($this->user, '/' . $this->user . '/files');
+
+ $this->storageMock = $this->getMock(
+ '\OC\Files\Storage\Temporary',
+ array('free_space'),
+ array('')
+ );
+
+ \OC\Files\Filesystem::clearMounts();
+
+ $this->storageMock->expects($this->once())
+ ->method('free_space')
+ ->will($this->returnValue(12));
+ }
+
+ public function tearDown() {
+ $this->user = null;
+
+ $this->storageMock->getCache()->clear();
+ \OC\Files\Filesystem::tearDown();
+ }
+
+ /**
+ * Test getting the storage info
+ */
+ function testGetStorageInfo() {
+ \OC\Files\Filesystem::mount($this->storageMock, array(), '/' . $this->user . '/files');
+ $this->storageMock->file_put_contents('test.txt', '01234');
+
+ $storageInfo = \OC_Helper::getStorageInfo('');
+ $this->assertEquals(12, $storageInfo['free']);
+ $this->assertEquals(5, $storageInfo['used']);
+ $this->assertEquals(17, $storageInfo['total']);
+ }
+
+ /**
+ * Test getting the storage info with quota enabled
+ */
+ function testGetStorageInfoWithQuota() {
+ $this->storageMock->file_put_contents('test.txt', '01234');
+ $this->storageMock = new \OC\Files\Storage\Wrapper\Quota(
+ array(
+ 'storage' => $this->storageMock,
+ 'quota' => 7
+ )
+ );
+ \OC\Files\Filesystem::mount($this->storageMock, array(), '/' . $this->user . '/files');
+
+ $storageInfo = \OC_Helper::getStorageInfo('');
+ $this->assertEquals(2, $storageInfo['free']);
+ $this->assertEquals(5, $storageInfo['used']);
+ $this->assertEquals(7, $storageInfo['total']);
+ }
+
+ /**
+ * Test getting the storage info when data exceeds quota
+ */
+ function testGetStorageInfoWhenSizeExceedsQuota() {
+ $this->storageMock->file_put_contents('test.txt', '0123456789');
+ $this->storageMock = new \OC\Files\Storage\Wrapper\Quota(
+ array(
+ 'storage' => $this->storageMock,
+ 'quota' => 7
+ )
+ );
+ \OC\Files\Filesystem::mount($this->storageMock, array(), '/' . $this->user . '/files');
+
+ $storageInfo = \OC_Helper::getStorageInfo('');
+ $this->assertEquals(0, $storageInfo['free']);
+ $this->assertEquals(10, $storageInfo['used']);
+ // total = quota
+ $this->assertEquals(7, $storageInfo['total']);
+ }
+
+ /**
+ * Test getting the storage info when the remaining
+ * free storage space is less than the quota
+ */
+ function testGetStorageInfoWhenFreeSpaceLessThanQuota() {
+ $this->storageMock->file_put_contents('test.txt', '01234');
+ $this->storageMock = new \OC\Files\Storage\Wrapper\Quota(
+ array(
+ 'storage' => $this->storageMock,
+ 'quota' => 18
+ )
+ );
+ \OC\Files\Filesystem::mount($this->storageMock, array(), '/' . $this->user . '/files');
+
+ $storageInfo = \OC_Helper::getStorageInfo('');
+ $this->assertEquals(12, $storageInfo['free']);
+ $this->assertEquals(5, $storageInfo['used']);
+ // total = free + used (because quota > total)
+ $this->assertEquals(17, $storageInfo['total']);
+ }
+}