Completed
Push — master ( efb497...d1ccba )
by Paweł
03:23
created

CodeReviewGeneralTest   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 206
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 6
Bugs 2 Features 2
Metric Value
c 6
b 2
f 2
dl 0
loc 206
rs 10
wmc 4
lcom 1
cbo 2

4 Methods

Rating   Name   Duplication   Size   Complexity  
A setUp() 0 11 1
B testGetDeprecatedFunctionsList12() 0 109 1
B testGetDeprecatedFunctionsList11() 0 27 1
A testGetPrivateFunctionsList() 0 47 1
1
<?php
2
3
class CodeReviewGeneralTest extends PHPUnit_Framework_TestCase {
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
4
5
	public function setUp() {
6
		$path = dirname(__FILE__) . '/test_files/fake_elgg/';
7
8
		require_once($path . 'engine/start.php');
9
10
		code_review::initConfig(array(
11
			'path' => $path,
12
			'engine_path' => $path . 'engine/',
13
			'pluginspath' => $path . 'mod/',
14
		));
15
	}
16
17
	/**
18
	 * Should check that code_review::getDeprecatedFunctionsList returns expected results for functions defined in deprecated-*
19
	 */
20
	public function testGetDeprecatedFunctionsList12() {
21
		$functions = code_review::getDeprecatedFunctionsList('1.2');
22
		$this->assertCount(5, $functions);
23
		$this->assertArrayHasKey('dummy_deprecated_function1', $functions);
24
		$this->assertArrayHasKey('dummy_deprecated_function2', $functions);
25
		$this->assertArrayHasKey('foobardummyclass::deprecatedprivate', $functions);
26
		$this->assertArrayHasKey('foobardummyclass::deprecatedprotected', $functions);
27
		$this->assertArrayHasKey('foobardummyclass::deprecatedpublic', $functions);
28
29
		$deprecatedFunction1 = $functions['dummy_deprecated_function1'];
30
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction1);
31
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction1);
32
		$this->assertFalse(is_array($deprecatedFunction1));
33
		$this->assertArrayHasKey('name', $deprecatedFunction1);
34
		$this->assertArrayHasKey('version', $deprecatedFunction1);
35
		$this->assertArrayHasKey('file', $deprecatedFunction1);
36
		$this->assertArrayHasKey('line', $deprecatedFunction1);
37
		$this->assertArrayHasKey('deprecated', $deprecatedFunction1);
38
		$this->assertArrayHasKey('reason', $deprecatedFunction1);
39
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction1);
40
		$this->assertEquals('dummy_deprecated_function1', $deprecatedFunction1['name']);
41
		$this->assertEquals('1.1', $deprecatedFunction1['version']);
42
		$this->assertEquals(true, $deprecatedFunction1['deprecated']);
43
		$this->assertEquals('deprecated', $deprecatedFunction1['reason']);
44
		$this->assertEquals('Remove it', $deprecatedFunction1['fixinfoshort']);
45
		$this->assertEquals("Line " . $deprecatedFunction1['line'] . ":\tFunction call: "
46
			. $deprecatedFunction1['name'] . " (deprecated since 1.1) Remove it",
47
			(string)$deprecatedFunction1);
48
49
		$deprecatedFunction2 = $functions['dummy_deprecated_function2'];
50
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction2);
51
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction2);
52
		$this->assertFalse(is_array($deprecatedFunction2));
53
		$this->assertArrayHasKey('name', $deprecatedFunction2);
54
		$this->assertArrayHasKey('version', $deprecatedFunction2);
55
		$this->assertArrayHasKey('file', $deprecatedFunction2);
56
		$this->assertArrayHasKey('line', $deprecatedFunction2);
57
		$this->assertArrayHasKey('deprecated', $deprecatedFunction2);
58
		$this->assertArrayHasKey('reason', $deprecatedFunction2);
59
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction2);
60
		$this->assertEquals('dummy_deprecated_function2', $deprecatedFunction2['name']);
61
		$this->assertEquals('1.2', $deprecatedFunction2['version']);
62
		$this->assertEquals(true, $deprecatedFunction2['deprecated']);
63
		$this->assertEquals('deprecated', $deprecatedFunction2['reason']);
64
		$this->assertEquals(false, $deprecatedFunction2['fixinfoshort']);
65
		$this->assertEquals("Line " . $deprecatedFunction2['line'] . ":\tFunction call: "
66
			. $deprecatedFunction2['name'] . " (deprecated since 1.2)",
67
			(string)$deprecatedFunction2);
68
69
		$deprecatedFunction3 = $functions['foobardummyclass::deprecatedprivate'];
70
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction3);
71
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction3);
72
		$this->assertFalse(is_array($deprecatedFunction3));
73
		$this->assertArrayHasKey('name', $deprecatedFunction3);
74
		$this->assertArrayHasKey('version', $deprecatedFunction3);
75
		$this->assertArrayHasKey('file', $deprecatedFunction3);
76
		$this->assertArrayHasKey('line', $deprecatedFunction3);
77
		$this->assertArrayHasKey('deprecated', $deprecatedFunction3);
78
		$this->assertArrayHasKey('reason', $deprecatedFunction3);
79
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction3);
80
		$this->assertEquals('FoobarDummyClass::deprecatedPrivate', $deprecatedFunction3['name']);
81
		$this->assertEquals('1.2', $deprecatedFunction3['version']);
82
		$this->assertEquals(true, $deprecatedFunction3['deprecated']);
83
		$this->assertEquals('deprecated', $deprecatedFunction3['reason']);
84
		$this->assertEquals('Deprecated private class method.', $deprecatedFunction3['fixinfoshort']);
85
		$this->assertEquals("Line " . $deprecatedFunction3['line'] . ":\tFunction call: "
86
			. $deprecatedFunction3['name'] . " (deprecated since 1.2) Deprecated private class method.",
87
			(string)$deprecatedFunction3);
88
89
		$deprecatedFunction4 = $functions['foobardummyclass::deprecatedprotected'];
90
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction4);
91
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction4);
92
		$this->assertFalse(is_array($deprecatedFunction4));
93
		$this->assertArrayHasKey('name', $deprecatedFunction4);
94
		$this->assertArrayHasKey('version', $deprecatedFunction4);
95
		$this->assertArrayHasKey('file', $deprecatedFunction4);
96
		$this->assertArrayHasKey('line', $deprecatedFunction4);
97
		$this->assertArrayHasKey('deprecated', $deprecatedFunction4);
98
		$this->assertArrayHasKey('reason', $deprecatedFunction4);
99
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction4);
100
		$this->assertEquals('FoobarDummyClass::deprecatedProtected', $deprecatedFunction4['name']);
101
		$this->assertEquals('1.2', $deprecatedFunction4['version']);
102
		$this->assertEquals(true, $deprecatedFunction4['deprecated']);
103
		$this->assertEquals('deprecated', $deprecatedFunction4['reason']);
104
		$this->assertEquals('Deprecated protected class method.', $deprecatedFunction4['fixinfoshort']);
105
		$this->assertEquals("Line " . $deprecatedFunction4['line'] . ":\tFunction call: "
106
			. $deprecatedFunction4['name'] . " (deprecated since 1.2) Deprecated protected class method.",
107
			(string)$deprecatedFunction4);
108
109
		$deprecatedFunction5 = $functions['foobardummyclass::deprecatedpublic'];
110
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction5);
111
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction5);
112
		$this->assertFalse(is_array($deprecatedFunction5));
113
		$this->assertArrayHasKey('name', $deprecatedFunction5);
114
		$this->assertArrayHasKey('version', $deprecatedFunction5);
115
		$this->assertArrayHasKey('file', $deprecatedFunction5);
116
		$this->assertArrayHasKey('line', $deprecatedFunction5);
117
		$this->assertArrayHasKey('deprecated', $deprecatedFunction5);
118
		$this->assertArrayHasKey('reason', $deprecatedFunction5);
119
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction5);
120
		$this->assertEquals('FoobarDummyClass::deprecatedPublic', $deprecatedFunction5['name']);
121
		$this->assertEquals('1.1', $deprecatedFunction5['version']);
122
		$this->assertEquals(true, $deprecatedFunction5['deprecated']);
123
		$this->assertEquals('deprecated', $deprecatedFunction5['reason']);
124
		$this->assertEquals('Deprecated public class method.', $deprecatedFunction5['fixinfoshort']);
125
		$this->assertEquals("Line " . $deprecatedFunction5['line'] . ":\tFunction call: "
126
			. $deprecatedFunction5['name'] . " (deprecated since 1.1) Deprecated public class method.",
127
			(string)$deprecatedFunction5);
128
	}
129
130
	/**
131
	 * Should check that code_review::getDeprecatedFunctionsList returns expected results for functions defined in deprecated-*
132
	 */
133
	public function testGetDeprecatedFunctionsList11() {
134
		$functions = code_review::getDeprecatedFunctionsList('1.1');
135
		$this->assertCount(1, $functions);
136
		$this->assertArrayNotHasKey('dummy_deprecated_function1', $functions);
137
		$this->assertArrayNotHasKey('dummy_deprecated_function2', $functions);
138
		$this->assertArrayHasKey('foobardummyclass::deprecatedpublic', $functions);
139
140
		$deprecatedFunction1 = $functions['foobardummyclass::deprecatedpublic'];
141
		$this->assertInstanceOf('CodeReview_Issues_Deprecated', $deprecatedFunction1);
142
		$this->assertInstanceOf('ArrayAccess', $deprecatedFunction1);
143
		$this->assertFalse(is_array($deprecatedFunction1));
144
		$this->assertArrayHasKey('name', $deprecatedFunction1);
145
		$this->assertArrayHasKey('version', $deprecatedFunction1);
146
		$this->assertArrayHasKey('file', $deprecatedFunction1);
147
		$this->assertArrayHasKey('line', $deprecatedFunction1);
148
		$this->assertArrayHasKey('deprecated', $deprecatedFunction1);
149
		$this->assertArrayHasKey('reason', $deprecatedFunction1);
150
		$this->assertArrayHasKey('fixinfoshort', $deprecatedFunction1);
151
		$this->assertEquals('FoobarDummyClass::deprecatedPublic', $deprecatedFunction1['name']);
152
		$this->assertEquals('1.1', $deprecatedFunction1['version']);
153
		$this->assertEquals(true, $deprecatedFunction1['deprecated']);
154
		$this->assertEquals('deprecated', $deprecatedFunction1['reason']);
155
		$this->assertEquals('Deprecated public class method.', $deprecatedFunction1['fixinfoshort']);
156
		$this->assertEquals("Line " . $deprecatedFunction1['line'] . ":\tFunction call: "
157
			. $deprecatedFunction1['name'] . " (deprecated since 1.1) Deprecated public class method.",
158
			(string)$deprecatedFunction1);
159
	}
160
161
	public function testGetPrivateFunctionsList() {
162
163
		$functions = code_review::getPrivateFunctionsList();
164
		$this->assertArrayNotHasKey('dummy_deprecated_function1', $functions);
165
166
		/*
167
		 * foobar_private_api
168
		 */
169
		$this->assertArrayHasKey('foobar_private_api', $functions);
170
		$privateFunction = $functions['foobar_private_api'];
171
		$this->assertInstanceOf('CodeReview_Issues_Private', $privateFunction);
172
		$this->assertInstanceOf('ArrayAccess', $privateFunction);
173
		$this->assertFalse(is_array($privateFunction));
174
175
		$this->assertArrayHasKey('name', $privateFunction);
176
		$this->assertArrayHasKey('file', $privateFunction);
177
		$this->assertArrayHasKey('line', $privateFunction);
178
		$this->assertArrayHasKey('reason', $privateFunction);
179
180
		$this->assertEquals('foobar_private_api', $privateFunction['name']);
181
		$this->assertEquals('private', $privateFunction['reason']);
182
183
		$this->assertEquals("Line " . $privateFunction['line'] . ":\tFunction call: "
184
			. $privateFunction['name'] . " (use of function marked private is unsafe)",
185
			(string)$privateFunction);
186
187
		/*
188
		 * foobar_undocumented
189
		 */
190
		$this->assertArrayHasKey('foobar_undocumented', $functions);
191
		$undocumentedFunction = $functions['foobar_undocumented'];
192
		$this->assertInstanceOf('CodeReview_Issues_NotDocumented', $undocumentedFunction);
193
		$this->assertInstanceOf('ArrayAccess', $undocumentedFunction);
194
		$this->assertFalse(is_array($undocumentedFunction));
195
196
		$this->assertArrayHasKey('name', $undocumentedFunction);
197
		$this->assertArrayHasKey('file', $undocumentedFunction);
198
		$this->assertArrayHasKey('line', $undocumentedFunction);
199
		$this->assertArrayHasKey('reason', $undocumentedFunction);
200
201
		$this->assertEquals('foobar_undocumented', $undocumentedFunction['name']);
202
		$this->assertEquals('not_documented', $undocumentedFunction['reason']);
203
204
		$this->assertEquals("Line " . $undocumentedFunction['line'] . ":\tFunction call: "
205
			. $undocumentedFunction['name'] . " (use of undocumented core function is unsafe)",
206
			(string)$undocumentedFunction);
207
	}
208
}
209