@@ -164,19 +164,20 @@ protected function renderItems(PHP_CodeCoverage_Report_Node_File $node)
164
164
)
165
165
);
166
166
167
- $ items .= $ this ->renderTraitOrClassItems ($ node ->getTraits (), 'Traits ' );
168
- $ items .= $ this ->renderTraitOrClassItems ($ node ->getClasses (), 'Classes ' );
169
- $ items .= $ this ->renderFunctionItems ($ node ->getFunctions ());
167
+ $ items .= $ this ->renderTraitOrClassItems ($ node ->getTraits (), 'Traits ' , $ template );
168
+ $ items .= $ this ->renderTraitOrClassItems ($ node ->getClasses (), 'Classes ' , $ template );
169
+ $ items .= $ this ->renderFunctionItems ($ node ->getFunctions (), $ template );
170
170
171
171
return $ items ;
172
172
}
173
173
174
174
/**
175
- * @param array $items
176
- * @param string $title
175
+ * @param array $items
176
+ * @param string $title
177
+ * @param Text_Template $template
177
178
* @return string
178
179
*/
179
- protected function renderTraitOrClassItems (array $ items , $ title )
180
+ protected function renderTraitOrClassItems (array $ items , $ title, Text_Template $ template )
180
181
{
181
182
if (empty ($ items )) {
182
183
return '' ;
@@ -185,16 +186,70 @@ protected function renderTraitOrClassItems(array $items, $title)
185
186
$ buffer = '' ;
186
187
187
188
foreach ($ items as $ name => $ item ) {
189
+ $ methods = '' ;
190
+ $ numMethods = count ($ item ['methods ' ]);
191
+ $ numTestedMethods = 0 ;
192
+
193
+ foreach ($ item ['methods ' ] as $ method ) {
194
+ if ($ method ['executedLines ' ] == $ method ['executableLines ' ]) {
195
+ $ numTestedMethods ++;
196
+ }
197
+ }
198
+
199
+ $ buffer = $ this ->renderItemTemplate (
200
+ $ template ,
201
+ array (
202
+ 'itemClass ' => 'coverDirectory ' ,
203
+ 'name ' => $ name ,
204
+ 'numClasses ' => 1 ,
205
+ 'numTestedClasses ' => $ numTestedMethods == $ numMethods ? 1 : 0 ,
206
+ 'numMethods ' => $ numMethods ,
207
+ 'numTestedMethods ' => $ numTestedMethods ,
208
+ 'linesExecutedPercent ' => PHP_CodeCoverage_Util::percent (
209
+ $ item ['executedLines ' ],
210
+ $ item ['executableLines ' ],
211
+ FALSE
212
+ ),
213
+ 'linesExecutedPercentAsString ' => PHP_CodeCoverage_Util::percent (
214
+ $ item ['executedLines ' ],
215
+ $ item ['executableLines ' ],
216
+ TRUE
217
+ ),
218
+ 'numExecutedLines ' => $ item ['executedLines ' ],
219
+ 'numExecutableLines ' => $ item ['executableLines ' ],
220
+ 'testedMethodsPercent ' => PHP_CodeCoverage_Util::percent (
221
+ $ numTestedMethods ,
222
+ $ numMethods ,
223
+ FALSE
224
+ ),
225
+ 'testedMethodsPercentAsString ' => PHP_CodeCoverage_Util::percent (
226
+ $ numTestedMethods ,
227
+ $ numMethods ,
228
+ TRUE
229
+ ),
230
+ 'testedClassesPercent ' => PHP_CodeCoverage_Util::percent (
231
+ $ numTestedMethods == $ numMethods ? 1 : 0 ,
232
+ 1 ,
233
+ FALSE
234
+ ),
235
+ 'testedClassesPercentAsString ' => PHP_CodeCoverage_Util::percent (
236
+ $ numTestedMethods == $ numMethods ? 1 : 0 ,
237
+ 1 ,
238
+ TRUE
239
+ )
240
+ )
241
+ );
188
242
}
189
243
190
244
return $ buffer ;
191
245
}
192
246
193
247
/**
194
- * @param array $items
248
+ * @param array $items
249
+ * @param Text_Template $template
195
250
* @return string
196
251
*/
197
- protected function renderFunctionItems (array $ items )
252
+ protected function renderFunctionItems (array $ items, Text_Template $ template )
198
253
{
199
254
if (empty ($ items )) {
200
255
return '' ;
0 commit comments