MediaWiki
REL1_31
MemcachedBagOStuffTest.php
Go to the documentation of this file.
1
<?php
5
class
MemcachedBagOStuffTest
extends
MediaWikiTestCase
{
7
private
$cache
;
8
9
protected
function
setUp
() {
10
parent::setUp();
11
$this->
cache
=
new
MemcachedBagOStuff
( [
'keyspace'
=>
'test'
] );
12
}
13
17
public
function
testKeyNormalization
() {
18
$this->assertEquals(
19
'test:vanilla'
,
20
$this->
cache
->makeKey(
'vanilla'
)
21
);
22
23
$this->assertEquals(
24
'test:punctuation_marks_are_ok:!@$^&*()'
,
25
$this->
cache
->makeKey(
'punctuation_marks_are_ok'
,
'!@$^&*()'
)
26
);
27
28
$this->assertEquals(
29
'test:but_spaces:hashes%23:and%0Anewlines:are_not'
,
30
$this->
cache
->makeKey(
'but spaces'
,
'hashes#'
,
"and\nnewlines"
,
'are_not'
)
31
);
32
33
$this->assertEquals(
34
'test:this:key:contains:%F0%9D%95%9E%F0%9D%95%A6%F0%9D%95%9D%F0%9D%95%A5%F0%9'
.
35
'D%95%9A%F0%9D%95%93%F0%9D%95%AA%F0%9D%95%A5%F0%9D%95%96:characters'
,
36
$this->
cache
->makeKey(
'this'
,
'key'
,
'contains'
,
'𝕞𝕦𝕝𝕥𝕚𝕓𝕪𝕥𝕖'
,
'characters'
)
37
);
38
39
$this->assertEquals(
40
'test:this:key:contains:#c118f92685a635cb843039de50014c9c'
,
41
$this->
cache
->makeKey(
'this'
,
'key'
,
'contains'
,
'𝕥𝕠𝕠 𝕞𝕒𝕟𝕪 𝕞𝕦𝕝𝕥𝕚𝕓𝕪𝕥𝕖 𝕔𝕙𝕒𝕣𝕒𝕔𝕥𝕖𝕣𝕤'
)
42
);
43
44
$this->assertEquals(
45
'test:BagOStuff-long-key:##dc89dcb43b28614da27660240af478b5'
,
46
$this->
cache
->makeKey(
'𝕖𝕧𝕖𝕟'
,
'𝕚𝕗'
,
'𝕨𝕖'
,
'𝕄𝔻𝟝'
,
'𝕖𝕒𝕔𝕙'
,
47
'𝕒𝕣𝕘𝕦𝕞𝕖𝕟𝕥'
,
'𝕥𝕙𝕚𝕤'
,
'𝕜𝕖𝕪'
,
'𝕨𝕠𝕦𝕝𝕕'
,
'𝕤𝕥𝕚𝕝𝕝'
,
'𝕓𝕖'
,
'𝕥𝕠𝕠'
,
'𝕝𝕠𝕟𝕘'
)
48
);
49
50
$this->assertEquals(
51
'test:%23%235820ad1d105aa4dc698585c39df73e19'
,
52
$this->
cache
->makeKey(
'##5820ad1d105aa4dc698585c39df73e19'
)
53
);
54
55
$this->assertEquals(
56
'test:percent_is_escaped:!@$%25^&*()'
,
57
$this->
cache
->makeKey(
'percent_is_escaped'
,
'!@$%^&*()'
)
58
);
59
60
$this->assertEquals(
61
'test:colon_is_escaped:!@$%3A^&*()'
,
62
$this->
cache
->makeKey(
'colon_is_escaped'
,
'!@$:^&*()'
)
63
);
64
65
$this->assertEquals(
66
'test:long_key_part_hashed:#0244f7b1811d982dd932dd7de01465ac'
,
67
$this->
cache
->makeKey(
'long_key_part_hashed'
, str_repeat(
'y'
, 500 ) )
68
);
69
}
70
75
public
function
testValidateKeyEncoding
( $key ) {
76
$this->assertSame( $key, $this->
cache
->validateKeyEncoding( $key ) );
77
}
78
79
public
function
validKeyProvider
() {
80
return
[
81
'empty'
=> [
''
],
82
'digits'
=> [
'09'
],
83
'letters'
=> [
'AZaz'
],
84
'ASCII special characters'
=> [
'!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~'
],
85
];
86
}
87
92
public
function
testValidateKeyEncodingThrowsException
( $key ) {
93
$this->setExpectedException( Exception::class );
94
$this->
cache
->validateKeyEncoding( $key );
95
}
96
97
public
function
invalidKeyProvider
() {
98
return
[
99
[
"\x00"
],
100
[
' '
],
101
[
"\x1F"
],
102
[
"\x7F"
],
103
[
"\x80"
],
104
[
"\xFF"
],
105
];
106
}
107
}
MediaWikiTestCase
Definition
MediaWikiTestCase.php:17
MemcachedBagOStuffTest
BagOStuff.
Definition
MemcachedBagOStuffTest.php:5
MemcachedBagOStuffTest\setUp
setUp()
Definition
MemcachedBagOStuffTest.php:9
MemcachedBagOStuffTest\$cache
MemcachedBagOStuff $cache
Definition
MemcachedBagOStuffTest.php:7
MemcachedBagOStuffTest\validKeyProvider
validKeyProvider()
Definition
MemcachedBagOStuffTest.php:79
MemcachedBagOStuffTest\invalidKeyProvider
invalidKeyProvider()
Definition
MemcachedBagOStuffTest.php:97
MemcachedBagOStuffTest\testValidateKeyEncoding
testValidateKeyEncoding( $key)
validKeyProvider MemcachedBagOStuff::validateKeyEncoding
Definition
MemcachedBagOStuffTest.php:75
MemcachedBagOStuffTest\testValidateKeyEncodingThrowsException
testValidateKeyEncodingThrowsException( $key)
invalidKeyProvider MemcachedBagOStuff::validateKeyEncoding
Definition
MemcachedBagOStuffTest.php:92
MemcachedBagOStuffTest\testKeyNormalization
testKeyNormalization()
MemcachedBagOStuff::makeKey.
Definition
MemcachedBagOStuffTest.php:17
MemcachedBagOStuff
Base class for memcached clients.
Definition
MemcachedBagOStuff.php:29
cache
you have access to all of the normal MediaWiki so you can get a DB use the cache
Definition
maintenance.txt:55
tests
phpunit
includes
objectcache
MemcachedBagOStuffTest.php
Generated on Mon Nov 25 2024 15:36:29 for MediaWiki by
1.10.0