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
|
<?php
/**
* Tests for Special:Uncategorizedcategories
*/
class UncategorizedCategoriesPageTest extends MediaWikiTestCase {
/**
* @dataProvider provideTestGetQueryInfoData
* @covers UncategorizedCategoriesPage::getQueryInfo
*/
public function testGetQueryInfo( $msgContent, $expected ) {
$msg = new RawMessage( $msgContent );
$mockContext = $this->getMockBuilder( RequestContext::class )->getMock();
$mockContext->method( 'msg' )->willReturn( $msg );
$special = new UncategorizedCategoriesPage();
$special->setContext( $mockContext );
$this->assertEquals( [
'tables' => [
0 => 'page',
1 => 'categorylinks',
],
'fields' => [
'namespace' => 'page_namespace',
'title' => 'page_title',
'value' => 'page_title',
],
'conds' => [
0 => 'cl_from IS NULL',
'page_namespace' => 14,
'page_is_redirect' => 0,
] + $expected,
'join_conds' => [
'categorylinks' => [
0 => 'LEFT JOIN',
1 => 'cl_from = page_id',
],
],
], $special->getQueryInfo() );
}
public function provideTestGetQueryInfoData() {
return [
[
"* Stubs\n* Test\n* *\n* * test123",
[ 1 => "page_title not in ( 'Stubs','Test','*','*_test123' )" ]
],
[
"Stubs\n* Test\n* *\n* * test123",
[ 1 => "page_title not in ( 'Test','*','*_test123' )" ]
],
[
"* StubsTest\n* *\n* * test123",
[ 1 => "page_title not in ( 'StubsTest','*','*_test123' )" ]
],
[ "", [] ],
[ "\n\n\n", [] ],
[ "\n", [] ],
[ "Test\n*Test2", [ 1 => "page_title not in ( 'Test2' )" ] ],
[ "Test", [] ],
[ "*Test\nTest2", [ 1 => "page_title not in ( 'Test' )" ] ],
[ "Test\nTest2", [] ],
];
}
}
|