nextcloud/3rdparty/simpletest/extensions/coverage/test/coverage_test.php

109 lines
4.2 KiB
PHP

<?php
require_once(dirname(__FILE__) . '/../../../autorun.php');
require_once(dirname(__FILE__) . '/../../../mock_objects.php');
class CodeCoverageTest extends UnitTestCase {
function skip() {
$this->skipIf(
!file_exists('DB/sqlite.php'),
'The Coverage extension needs to have PEAR installed');
}
function setUp() {
require_once dirname(__FILE__) .'/../coverage.php';
}
function testIsFileIncluded() {
$coverage = new CodeCoverage();
$this->assertTrue($coverage->isFileIncluded('aaa'));
$coverage->includes = array('a');
$this->assertTrue($coverage->isFileIncluded('aaa'));
$coverage->includes = array('x');
$this->assertFalse($coverage->isFileIncluded('aaa'));
$coverage->excludes = array('aa');
$this->assertFalse($coverage->isFileIncluded('aaa'));
}
function testIsFileIncludedRegexp() {
$coverage = new CodeCoverage();
$coverage->includes = array('modules/.*\.php$');
$coverage->excludes = array('bad-bunny.php');
$this->assertFalse($coverage->isFileIncluded('modules/a.test'));
$this->assertFalse($coverage->isFileIncluded('modules/bad-bunny.test'));
$this->assertTrue($coverage->isFileIncluded('modules/test.php'));
$this->assertFalse($coverage->isFileIncluded('module-bad/good-bunny.php'));
$this->assertTrue($coverage->isFileIncluded('modules/good-bunny.php'));
}
function testIsDirectoryIncludedPastMaxDepth() {
$coverage = new CodeCoverage();
$coverage->maxDirectoryDepth = 5;
$this->assertTrue($coverage->isDirectoryIncluded('aaa', 1));
$this->assertFalse($coverage->isDirectoryIncluded('aaa', 5));
}
function testIsDirectoryIncluded() {
$coverage = new CodeCoverage();
$this->assertTrue($coverage->isDirectoryIncluded('aaa', 0));
$coverage->excludes = array('b$');
$this->assertTrue($coverage->isDirectoryIncluded('aaa', 0));
$coverage->includes = array('a$'); // includes are ignore, all dirs are included unless excluded
$this->assertTrue($coverage->isDirectoryIncluded('aaa', 0));
$coverage->excludes = array('.*a$');
$this->assertFalse($coverage->isDirectoryIncluded('aaa', 0));
}
function testFilter() {
$coverage = new CodeCoverage();
$data = array('a' => 0, 'b' => 0, 'c' => 0);
$coverage->includes = array('b');
$coverage->filter($data);
$this->assertEqual(array('b' => 0), $data);
}
function testUntouchedFiles() {
$coverage = new CodeCoverage();
$touched = array_flip(array("test/coverage_test.php"));
$actual = array();
$coverage->includes = array('coverage_test\.php$');
$parentDir = realpath(dirname(__FILE__));
$coverage->getUntouchedFiles($actual, $touched, $parentDir, $parentDir);
$this->assertEqual(array("coverage_test.php"), $actual);
}
function testResetLog() {
$coverage = new CodeCoverage();
$coverage->log = tempnam(NULL, 'php.xdebug.coverage.test.');
$coverage->resetLog();
$this->assertTrue(file_exists($coverage->log));
}
function testSettingsSerialization() {
$coverage = new CodeCoverage();
$coverage->log = '/banana/boat';
$coverage->includes = array('apple', 'orange');
$coverage->excludes = array('tomato', 'pea');
$data = $coverage->getSettings();
$this->assertNotNull($data);
$actual = new CodeCoverage();
$actual->setSettings($data);
$this->assertEqual('/banana/boat', $actual->log);
$this->assertEqual(array('apple', 'orange'), $actual->includes);
$this->assertEqual(array('tomato', 'pea'), $actual->excludes);
}
function testSettingsCanBeReadWrittenToDisk() {
$settings_file = 'banana-boat-coverage-settings-test.dat';
$coverage = new CodeCoverage();
$coverage->log = '/banana/boat';
$coverage->settingsFile = $settings_file;
$coverage->writeSettings();
$actual = new CodeCoverage();
$actual->settingsFile = $settings_file;
$actual->readSettings();
$this->assertEqual('/banana/boat', $actual->log);
}
}
?>