PageRenderTime 47ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/src/frapi/tests/phpunit/PHPUnit/Extensions/SeleniumTestCase/phpunit_coverage.php

http://github.com/frapi/frapi
PHP | 86 lines | 36 code | 6 blank | 44 comment | 5 complexity | 6668506e0d3895c86bcdb4ec61993f7f MD5 | raw file
Possible License(s): BSD-2-Clause
  1. <?php
  2. /**
  3. * PHPUnit
  4. *
  5. * Copyright (c) 2002-2009, Sebastian Bergmann <sb@sebastian-bergmann.de>.
  6. * All rights reserved.
  7. *
  8. * Redistribution and use in source and binary forms, with or without
  9. * modification, are permitted provided that the following conditions
  10. * are met:
  11. *
  12. * * Redistributions of source code must retain the above copyright
  13. * notice, this list of conditions and the following disclaimer.
  14. *
  15. * * Redistributions in binary form must reproduce the above copyright
  16. * notice, this list of conditions and the following disclaimer in
  17. * the documentation and/or other materials provided with the
  18. * distribution.
  19. *
  20. * * Neither the name of Sebastian Bergmann nor the names of his
  21. * contributors may be used to endorse or promote products derived
  22. * from this software without specific prior written permission.
  23. *
  24. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  25. * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  26. * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
  27. * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
  28. * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
  29. * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
  30. * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
  31. * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  32. * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  33. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
  34. * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  35. * POSSIBILITY OF SUCH DAMAGE.
  36. *
  37. * @category Testing
  38. * @package PHPUnit
  39. * @author Sebastian Bergmann <sb@sebastian-bergmann.de>
  40. * @copyright 2002-2009 Sebastian Bergmann <sb@sebastian-bergmann.de>
  41. * @license http://www.opensource.org/licenses/bsd-license.php BSD License
  42. * @version SVN: $Id: phpunit_coverage.php 4404 2008-12-31 09:27:18Z sb $
  43. * @link http://www.phpunit.de/
  44. * @since File available since Release 3.2.10
  45. */
  46. require_once 'PHPUnit/Util/CodeCoverage.php';
  47. require_once 'PHPUnit/Util/FilterIterator.php';
  48. if (isset($_GET['PHPUNIT_SELENIUM_TEST_ID'])) {
  49. $files = new PHPUnit_Util_FilterIterator(
  50. new RecursiveIteratorIterator(
  51. new RecursiveDirectoryIterator(dirname(__FILE__))
  52. ),
  53. $_GET['PHPUNIT_SELENIUM_TEST_ID']
  54. );
  55. $coverage = array();
  56. foreach ($files as $file) {
  57. $filename = $file->getPathName();
  58. $data = unserialize(file_get_contents($filename));
  59. @unlink($filename);
  60. unset($filename);
  61. foreach ($data as $filename => $lines) {
  62. if (PHPUnit_Util_CodeCoverage::isFile($filename)) {
  63. if (!isset($coverage[$filename])) {
  64. $coverage[$filename] = array(
  65. 'md5' => md5_file($filename), 'coverage' => $lines
  66. );
  67. } else {
  68. foreach ($lines as $line => $flag) {
  69. if (!isset($coverage[$filename]['coverage'][$line]) ||
  70. $flag > $coverage[$filename]['coverage'][$line]) {
  71. $coverage[$filename]['coverage'][$line] = $flag;
  72. }
  73. }
  74. }
  75. }
  76. }
  77. }
  78. print serialize($coverage);
  79. }
  80. ?>