MediaWiki
REL1_31
ArrayDiffFormatterTest.php
Go to the documentation of this file.
1
<?php
2
8
class
ArrayDiffFormatterTest
extends
MediaWikiTestCase
{
9
16
public
function
testFormat
(
$input
, $expectedOutput ) {
17
$instance =
new
ArrayDiffFormatter
();
18
$output
= $instance->format(
$input
);
19
$this->assertEquals( $expectedOutput,
$output
);
20
}
21
22
private
function
getMockDiff
( $edits ) {
23
$diff = $this->getMockBuilder( Diff::class )
24
->disableOriginalConstructor()
25
->getMock();
26
$diff->expects( $this->
any
() )
27
->method(
'getEdits'
)
28
->will( $this->returnValue( $edits ) );
29
return
$diff;
30
}
31
32
private
function
getMockDiffOp
(
$type
=
null
, $orig = [], $closing = [] ) {
33
$diffOp = $this->getMockBuilder( DiffOp::class )
34
->disableOriginalConstructor()
35
->getMock();
36
$diffOp->expects( $this->
any
() )
37
->method(
'getType'
)
38
->will( $this->returnValue(
$type
) );
39
$diffOp->expects( $this->
any
() )
40
->method(
'getOrig'
)
41
->will( $this->returnValue( $orig ) );
42
if
(
$type
===
'change'
) {
43
$diffOp->expects( $this->
any
() )
44
->method(
'getClosing'
)
45
->with( $this->isType(
'integer'
) )
46
->will( $this->returnCallback(
function
() {
47
return
'mockLine'
;
48
} ) );
49
}
else
{
50
$diffOp->expects( $this->
any
() )
51
->method(
'getClosing'
)
52
->will( $this->returnValue( $closing ) );
53
}
54
return
$diffOp;
55
}
56
57
public
function
provideTestFormat
() {
58
$emptyArrayTestCases = [
59
$this->
getMockDiff
( [] ),
60
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'add'
) ] ),
61
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'delete'
) ] ),
62
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'change'
) ] ),
63
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'copy'
) ] ),
64
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'FOOBARBAZ'
) ] ),
65
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'add'
,
'line'
) ] ),
66
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'delete'
, [], [
'line'
] ) ] ),
67
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'copy'
, [], [
'line'
] ) ] ),
68
];
69
70
$otherTestCases = [];
71
$otherTestCases[] = [
72
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'add'
, [], [
'a1'
] ) ] ),
73
[ [
'action'
=>
'add'
,
'new'
=>
'a1'
,
'newline'
=> 1 ] ],
74
];
75
$otherTestCases[] = [
76
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'add'
, [], [
'a1'
,
'a2'
] ) ] ),
77
[
78
[
'action'
=>
'add'
,
'new'
=>
'a1'
,
'newline'
=> 1 ],
79
[
'action'
=>
'add'
,
'new'
=>
'a2'
,
'newline'
=> 2 ],
80
],
81
];
82
$otherTestCases[] = [
83
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'delete'
, [
'd1'
] ) ] ),
84
[ [
'action'
=>
'delete'
,
'old'
=>
'd1'
,
'oldline'
=> 1 ] ],
85
];
86
$otherTestCases[] = [
87
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'delete'
, [
'd1'
,
'd2'
] ) ] ),
88
[
89
[
'action'
=>
'delete'
,
'old'
=>
'd1'
,
'oldline'
=> 1 ],
90
[
'action'
=>
'delete'
,
'old'
=>
'd2'
,
'oldline'
=> 2 ],
91
],
92
];
93
$otherTestCases[] = [
94
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
'change'
, [
'd1'
], [
'a1'
] ) ] ),
95
[ [
96
'action'
=>
'change'
,
97
'old'
=>
'd1'
,
98
'new'
=>
'mockLine'
,
99
'newline'
=> 1,
'oldline'
=> 1
100
] ],
101
];
102
$otherTestCases[] = [
103
$this->
getMockDiff
( [ $this->
getMockDiffOp
(
104
'change'
,
105
[
'd1'
,
'd2'
],
106
[
'a1'
,
'a2'
]
107
) ] ),
108
[
109
[
110
'action'
=>
'change'
,
111
'old'
=>
'd1'
,
112
'new'
=>
'mockLine'
,
113
'newline'
=> 1,
'oldline'
=> 1
114
],
115
[
116
'action'
=>
'change'
,
117
'old'
=>
'd2'
,
118
'new'
=>
'mockLine'
,
119
'newline'
=> 2,
'oldline'
=> 2
120
],
121
],
122
];
123
124
$testCases = [];
125
foreach
( $emptyArrayTestCases as $testCase ) {
126
$testCases[] = [ $testCase, [] ];
127
}
128
foreach
( $otherTestCases as $testCase ) {
129
$testCases[] = [ $testCase[0], $testCase[1] ];
130
}
131
return
$testCases;
132
}
133
134
}
any
they could even be mouse clicks or menu items whatever suits your program You should also get your if any
Definition
COPYING.txt:326
ArrayDiffFormatterTest
Definition
ArrayDiffFormatterTest.php:8
ArrayDiffFormatterTest\getMockDiff
getMockDiff( $edits)
Definition
ArrayDiffFormatterTest.php:22
ArrayDiffFormatterTest\getMockDiffOp
getMockDiffOp( $type=null, $orig=[], $closing=[])
Definition
ArrayDiffFormatterTest.php:32
ArrayDiffFormatterTest\testFormat
testFormat( $input, $expectedOutput)
Definition
ArrayDiffFormatterTest.php:16
ArrayDiffFormatterTest\provideTestFormat
provideTestFormat()
Definition
ArrayDiffFormatterTest.php:57
ArrayDiffFormatter
A pseudo-formatter that just passes along the Diff::$edits array.
Definition
ArrayDiffFormatter.php:31
MediaWikiTestCase
Definition
MediaWikiTestCase.php:17
$output
static configuration should be added through ResourceLoaderGetConfigVars instead can be used to get the real title after the basic globals have been set but before ordinary actions take place $output
Definition
hooks.txt:2255
$input
if(is_array($mode)) switch( $mode) $input
Definition
postprocess-phan.php:145
$type
$type
Definition
testCompression.php:48
tests
phpunit
includes
diff
ArrayDiffFormatterTest.php
Generated on Mon Nov 25 2024 15:36:20 for MediaWiki by
1.10.0