Blame view

sources/apps/files_encryption/tests/proxy.php 3.68 KB
03e52840d   Kload   Init
1
2
  <?php
  /**
31b7f2792   Kload   Upgrade to ownclo...
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
   * ownCloud
   *
   * @author Bjoern Schiessle
   * @copyright 2013 Bjoern Schiessle <schiessle@owncloud.com>
   *
   * This library is free software; you can redistribute it and/or
   * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
   * License as published by the Free Software Foundation; either
   * version 3 of the License, or any later version.
   *
   * This library 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 along with this library.  If not, see <http://www.gnu.org/licenses/>.
   *
03e52840d   Kload   Init
21
   */
31b7f2792   Kload   Upgrade to ownclo...
22
23
24
25
26
27
28
29
30
31
32
33
34
  require_once __DIR__ . '/../../../lib/base.php';
  require_once __DIR__ . '/../lib/crypt.php';
  require_once __DIR__ . '/../lib/keymanager.php';
  require_once __DIR__ . '/../lib/proxy.php';
  require_once __DIR__ . '/../lib/stream.php';
  require_once __DIR__ . '/../lib/util.php';
  require_once __DIR__ . '/../appinfo/app.php';
  require_once __DIR__ . '/util.php';
  
  use OCA\Encryption;
  
  /**
   * Class Test_Encryption_Proxy
6d9380f96   Cédric Dupont   Update sources OC...
35
   * this class provide basic proxy app tests
31b7f2792   Kload   Upgrade to ownclo...
36
37
38
39
40
41
42
43
   */
  class Test_Encryption_Proxy extends \PHPUnit_Framework_TestCase {
  
  	const TEST_ENCRYPTION_PROXY_USER1 = "test-proxy-user1";
  
  	public $userId;
  	public $pass;
  	/**
6d9380f96   Cédric Dupont   Update sources OC...
44
  	 * @var \OC\Files\View
31b7f2792   Kload   Upgrade to ownclo...
45
  	 */
a293d369c   Kload   Update sources to...
46
47
  	public $view;     // view in /data/user/files
  	public $rootView; // view on /data/user
31b7f2792   Kload   Upgrade to ownclo...
48
  	public $data;
a293d369c   Kload   Update sources to...
49
  	public $filename;
31b7f2792   Kload   Upgrade to ownclo...
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
  
  	public static function setUpBeforeClass() {
  		// reset backend
  		\OC_User::clearBackends();
  		\OC_User::useBackend('database');
  
  		\OC_Hook::clear('OC_Filesystem');
  		\OC_Hook::clear('OC_User');
  
  		// Filesystem related hooks
  		\OCA\Encryption\Helper::registerFilesystemHooks();
  
  		// clear and register hooks
  		\OC_FileProxy::clearProxies();
  		\OC_FileProxy::register(new OCA\Encryption\Proxy());
  
  		// create test user
  		\Test_Encryption_Util::loginHelper(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1, true);
  	}
  
  	function setUp() {
  		// set user id
  		\OC_User::setUserId(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1);
  		$this->userId = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1;
  		$this->pass = \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1;
  
  		// init filesystem view
6d9380f96   Cédric Dupont   Update sources OC...
77
78
  		$this->view = new \OC\Files\View('/'. \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 . '/files');
  		$this->rootView = new \OC\Files\View('/'. \Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1 );
31b7f2792   Kload   Upgrade to ownclo...
79
80
81
  
  		// init short data
  		$this->data = 'hats';
a293d369c   Kload   Update sources to...
82
  		$this->filename = 'enc_proxy_tests-' . uniqid() . '.txt';
31b7f2792   Kload   Upgrade to ownclo...
83
84
85
86
87
88
89
90
91
  	}
  
  	public static function tearDownAfterClass() {
  		// cleanup test user
  		\OC_User::deleteUser(\Test_Encryption_Proxy::TEST_ENCRYPTION_PROXY_USER1);
  	}
  
  	/**
  	 * @medium
6d9380f96   Cédric Dupont   Update sources OC...
92
  	 * test if postFileSize returns the unencrypted file size
31b7f2792   Kload   Upgrade to ownclo...
93
94
  	 */
  	function testPostFileSize() {
a293d369c   Kload   Update sources to...
95
  		$this->view->file_put_contents($this->filename, $this->data);
31b7f2792   Kload   Upgrade to ownclo...
96
97
  
  		\OC_FileProxy::$enabled = false;
a293d369c   Kload   Update sources to...
98
  		$unencryptedSize = $this->view->filesize($this->filename);
31b7f2792   Kload   Upgrade to ownclo...
99
100
  
  		\OC_FileProxy::$enabled = true;
a293d369c   Kload   Update sources to...
101
  		$encryptedSize = $this->view->filesize($this->filename);
31b7f2792   Kload   Upgrade to ownclo...
102
103
  
  		$this->assertTrue($encryptedSize !== $unencryptedSize);
a293d369c   Kload   Update sources to...
104
105
  		// cleanup
  		$this->view->unlink($this->filename);
31b7f2792   Kload   Upgrade to ownclo...
106
  	}
837968727   Kload   [enh] Upgrade to ...
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
  	function testPostFileSizeWithDirectory() {
  
  		$this->view->file_put_contents($this->filename, $this->data);
  
  		\OC_FileProxy::$enabled = false;
  
  		// get root size, must match the file's unencrypted size
  		$unencryptedSize = $this->view->filesize('');
  
  		\OC_FileProxy::$enabled = true;
  
  		$encryptedSize = $this->view->filesize('');
  
  		$this->assertTrue($encryptedSize !== $unencryptedSize);
  
  		// cleanup
  		$this->view->unlink($this->filename);
  
  	}
31b7f2792   Kload   Upgrade to ownclo...
126
  }