blob: 050a7f97dca1f0303c4499140cc29625b0608470 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
<?php
/**
* Elgg Test Skeleton
*
* @package Elgg
* @subpackage Test
*/
class ElggCoreFilestoreTest extends ElggCoreUnitTest {
/**
* Called before each test object.
*/
public function __construct() {
parent::__construct();
// all code should come after here
}
/**
* Called before each test method.
*/
public function setUp() {
$this->filestore = new ElggDiskFilestoreTest();
}
/**
* Called after each test method.
*/
public function tearDown() {
// do not allow SimpleTest to interpret Elgg notices as exceptions
$this->swallowErrors();
unset($this->filestore);
}
/**
* Called after each test object.
*/
public function __destruct() {
// all code should go above here
parent::__destruct();
}
public function testFileMatrix() {
global $CONFIG;
// create a test user
$user = $this->createTestUser();
$created = date('Y/m/d', $user->time_created);
// check matrix with username
$user_dir = $this->filestore->make_file_matrix($user->username);
$this->assertIdentical($user_dir, "$created/$user->guid/");
// check matrix with guid
$guid_dir = $this->filestore->make_file_matrix($user->guid);
$this->assertIdentical($guid_dir, "$created/$user->guid/");
// clean up user
$user->delete();
}
public function testFilenameOnFilestore() {
global $CONFIG;
// create a user to own the file
$user = $this->createTestUser();
$created = date('Y/m/d', $user->time_created);
// setup a test file
$file = new ElggFile();
$file->owner_guid = $user->guid;
$file->setFilename('testing/filestore.txt');
$file->open('write');
$file->write('Testing!');
$this->assertTrue($file->close());
// ensure filename and path is expected
$filename = $file->getFilenameOnFilestore($file);
$filepath = "$CONFIG->dataroot$created/$user->guid/testing/filestore.txt";
$this->assertIdentical($filename, $filepath);
$this->assertTrue(file_exists($filepath));
// ensure file removed on user delete
$user->delete();
$this->assertFalse(file_exists($filepath));
}
protected function createTestUser($username = 'fileTest') {
$user = new ElggUser();
$user->username = $username;
$guid = $user->save();
// load user to have access to creation time
return get_entity($guid);
}
}
class ElggDiskFilestoreTest extends ElggDiskFilestore {
public function make_file_matrix($filename) {
return parent::make_file_matrix($filename);
}
public function user_file_matrix($guid) {
return parent::user_file_matrix($guid);
}
}
|