@@ -93,19 +93,17 @@ public static function getLinesToBeCovered($className, $methodName)
93
93
94
94
foreach (self ::$ templateMethods as $ templateMethod ) {
95
95
if ($ class ->hasMethod ($ templateMethod )) {
96
- $ reflector = $ class ->getMethod ($ templateMethod );
96
+ $ reflector = $ class ->getMethod ($ templateMethod );
97
97
$ docComment .= $ reflector ->getDocComment ();
98
98
unset($ reflector );
99
99
}
100
100
}
101
101
102
102
if (preg_match_all ('/@covers[\s]+([\!<>\:\.\w]+)([\s]+<extended>)?/ ' , $ docComment , $ matches )) {
103
- foreach ($ matches [1 ] as $ i => $ method ) {
103
+ foreach ($ matches [1 ] as $ coveredElement ) {
104
104
$ codeToCoverList = array_merge (
105
105
$ codeToCoverList ,
106
- self ::resolveCoversToReflectionObjects (
107
- $ method , !empty ($ matches [2 ][$ i ])
108
- )
106
+ self ::resolveCoversToReflectionObjects ($ coveredElement )
109
107
);
110
108
}
111
109
@@ -166,16 +164,22 @@ public static function getLinesToBeIgnored($filename)
166
164
}
167
165
168
166
/**
169
- * @param string $method
170
- * @param boolean $extended
167
+ * @param string $coveredElement
171
168
* @return array
172
169
*/
173
- protected static function resolveCoversToReflectionObjects ($ method , $ extended )
170
+ protected static function resolveCoversToReflectionObjects ($ coveredElement )
174
171
{
172
+ $ extended = FALSE ;
173
+
174
+ if (strpos ($ coveredElement , '<extended> ' ) !== FALSE ) {
175
+ $ extended = TRUE ;
176
+ $ coveredElement = str_replace ('<extended> ' , '' , $ coveredElement );
177
+ }
178
+
175
179
$ codeToCoverList = array ();
176
180
177
- if (strpos ($ method , ':: ' ) !== FALSE ) {
178
- list ($ className , $ methodName ) = explode (':: ' , $ method );
181
+ if (strpos ($ coveredElement , ':: ' ) !== FALSE ) {
182
+ list ($ className , $ methodName ) = explode (':: ' , $ coveredElement );
179
183
180
184
if ($ methodName {0 } == '< ' ) {
181
185
$ classes = array ($ className );
@@ -230,13 +234,13 @@ class_parents($className)
230
234
}
231
235
}
232
236
} else {
233
- $ classes = array ($ method );
237
+ $ classes = array ($ coveredElement );
234
238
235
239
if ($ extended ) {
236
240
$ classes = array_merge (
237
241
$ classes ,
238
- class_implements ($ method ),
239
- class_parents ($ method )
242
+ class_implements ($ coveredElement ),
243
+ class_parents ($ coveredElement )
240
244
);
241
245
}
242
246
0 commit comments