1
|
|
|
<?php |
2
|
|
|
/** |
3
|
|
|
* Test - Cache class |
4
|
|
|
* @package fwolflib |
5
|
|
|
* @subpackage class-test |
6
|
|
|
* @copyright Copyright 2010, Fwolf |
7
|
|
|
* @author Fwolf <[email protected]> |
8
|
|
|
* @since 2010-01-07 |
9
|
|
|
*/ |
10
|
|
|
|
11
|
|
|
// Define like this, so test can run both under eclipse and web alone. |
12
|
|
|
// {{{ |
13
|
|
|
if (! defined('SIMPLE_TEST')) { |
14
|
|
|
define('SIMPLE_TEST', 'simpletest/'); |
15
|
|
|
require_once(SIMPLE_TEST . 'autorun.php'); |
16
|
|
|
} |
17
|
|
|
// Then set output encoding |
18
|
|
|
//header('Content-Type: text/html; charset=utf-8'); |
19
|
|
|
// }}} |
20
|
|
|
|
21
|
|
|
// Require library define file which need test |
22
|
|
|
require_once(dirname(__FILE__) . '/fwolflib.php'); |
23
|
|
|
require_once(FWOLFLIB . 'class/cache.php'); |
24
|
|
|
require_once(FWOLFLIB . 'func/ecl.php'); |
25
|
|
|
require_once(FWOLFLIB . 'func/request.php'); |
26
|
|
|
require_once(FWOLFLIB . 'func/string.php'); |
27
|
|
|
|
28
|
|
|
class TestCache extends UnitTestCase { |
29
|
|
|
|
30
|
|
|
/** |
31
|
|
|
* Cache object |
32
|
|
|
* @var object |
33
|
|
|
*/ |
34
|
|
|
protected $oCh = null; |
35
|
|
|
|
36
|
|
|
|
37
|
|
|
/** |
38
|
|
|
* Constructor |
39
|
|
|
*/ |
40
|
|
|
public function __construct () { |
41
|
|
|
$ar_cfg = array( |
42
|
|
|
'cache-file-dir' => '/tmp/cache/', |
43
|
|
|
'cache-file-rule' => '1142', |
44
|
|
|
); |
45
|
|
|
$this->oCh = new CacheTest($ar_cfg); |
46
|
|
|
} // end of func __construct |
47
|
|
|
|
48
|
|
|
|
49
|
|
|
function TestCacheFilePath () { |
50
|
|
|
$this->oCh->SetCfg(array( |
51
|
|
|
'cache-type' => 'file', |
52
|
|
|
'cache-file-dir' => '/tmp/cache/', |
53
|
|
|
'cache-file-rule' => '1140', |
54
|
|
|
)); |
55
|
|
|
$key = 'site/index'; |
56
|
|
|
|
57
|
|
|
//Ecl(md5($key)); |
58
|
|
|
|
59
|
|
|
$x = '/tmp/cache/d0/ex/3ed0dc6e'; |
60
|
|
|
$y = $this->oCh->CacheFilePath($key); |
61
|
|
|
$this->assertEqual($x, $y); |
62
|
|
|
|
63
|
|
|
$this->oCh->SetCfg(array('cache-file-rule' => '1131')); |
64
|
|
|
$x = '/tmp/cache/d0/te/3ed0dc6e'; |
65
|
|
|
$y = $this->oCh->CacheFilePath($key); |
66
|
|
|
$this->assertEqual($x, $y); |
67
|
|
|
|
68
|
|
|
// Notice: Directly use key's part as path may cause wrong |
69
|
|
|
$this->oCh->SetCfg(array('cache-file-rule' => '2342')); |
70
|
|
|
$x = '/tmp/cache/57//i/3ed0dc6e'; |
71
|
|
|
$y = $this->oCh->CacheFilePath($key); |
72
|
|
|
$this->assertEqual($x, $y); |
73
|
|
|
|
74
|
|
|
// Common usage |
75
|
|
|
$this->oCh->SetCfg(array('cache-file-rule' => '1011')); |
76
|
|
|
$x = '/tmp/cache/3e/d0/3ed0dc6e'; |
77
|
|
|
$y = $this->oCh->CacheFilePath($key); |
78
|
|
|
$this->assertEqual($x, $y); |
79
|
|
|
|
80
|
|
|
// Common usage 2 |
81
|
|
|
$this->oCh->SetCfg(array('cache-file-rule' => '2021')); |
82
|
|
|
$x = '/tmp/cache/b6/9c/3ed0dc6e'; |
83
|
|
|
$y = $this->oCh->CacheFilePath($key); |
84
|
|
|
$this->assertEqual($x, $y); |
85
|
|
|
|
86
|
|
|
// Common usage 3 |
87
|
|
|
$this->oCh->SetCfg(array('cache-file-rule' => '55')); |
88
|
|
|
$x = '/tmp/cache/89/3ed0dc6e'; |
89
|
|
|
$y = $this->oCh->CacheFilePath($key); |
90
|
|
|
$this->assertEqual($x, $y); |
91
|
|
|
|
92
|
|
|
//Ecl($y); |
93
|
|
|
|
94
|
|
|
// Read/write |
95
|
|
|
$v = $this->oCh->CacheGet($key, 1); |
96
|
|
|
var_dump($v); |
97
|
|
|
Ecl(hash('crc32', $key) |
|
|
|
|
98
|
|
|
. '|' |
99
|
|
|
. $this->oCh->CacheFilePath($key)); |
100
|
|
|
} // end of func TestCacheFilePath |
101
|
|
|
|
102
|
|
|
|
103
|
|
|
} // end of class TestCache |
104
|
|
|
|
105
|
|
|
|
106
|
|
|
class CacheTest extends Cache { |
|
|
|
|
107
|
|
|
protected function CacheGenVal ($key) { |
108
|
|
|
$this->sDummy = RandomString(30, 'a0'); |
|
|
|
|
109
|
|
|
return $this; |
110
|
|
|
} // end of func CacheGenVal |
111
|
|
|
|
112
|
|
|
public function CacheLifetime ($key) { |
113
|
|
|
return 0; |
114
|
|
|
} // end of func CacheLifetime |
115
|
|
|
} // end of class CacheTest |
116
|
|
|
|
117
|
|
|
|
118
|
|
|
// Change output charset in this way. |
119
|
|
|
// {{{ |
120
|
|
|
$s_url = GetSelfUrl(false); |
|
|
|
|
121
|
|
|
$s_url = substr($s_url, strrpos($s_url, '/') + 1); |
122
|
|
|
if ('cache.test.php' == $s_url) { |
123
|
|
|
$test = new TestCache(); |
124
|
|
|
$test->run(new HtmlReporter('utf-8')); |
125
|
|
|
} |
126
|
|
|
// }}} |
127
|
|
|
?> |
128
|
|
|
|
This function has been deprecated. The supplier of the file has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed from the class and what other function to use instead.