5
* Copyright (c) 2002-2010, Sebastian Bergmann <sb@sebastian-bergmann.de>.
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
12
* * Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
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
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.
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.
39
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
40
* @copyright 2002-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
41
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
42
* @link http://www.phpunit.de/
43
* @since File available since Release 3.0.0
46
require_once 'PHPUnit/Util/Filter.php';
48
PHPUnit_Util_Filter::addFileToFilter(__FILE__, 'PHPUNIT');
55
* @author Sebastian Bergmann <sb@sebastian-bergmann.de>
56
* @copyright 2002-2010 Sebastian Bergmann <sb@sebastian-bergmann.de>
57
* @license http://www.opensource.org/licenses/bsd-license.php BSD License
58
* @version Release: 3.4.14
59
* @link http://www.phpunit.de/
60
* @since Class available since Release 3.0.0
63
class PHPUnit_Util_FilterIterator extends FilterIterator
68
protected $suffixes = array();
73
protected $prefixes = array();
76
* @param Iterator $iterator
77
* @param array $suffixes
78
* @param array $prefixes
80
public function __construct(Iterator $iterator, $suffixes = array(), $prefixes = array())
82
if (is_string($suffixes)) {
83
if (!empty($suffixes)) {
84
$suffixes = array($suffixes);
90
if (!is_array($suffixes)) {
91
throw PHPUnit_Util_InvalidArgumentHelper::factory(
96
$this->suffixes = $suffixes;
98
if (is_string($prefixes)) {
99
if (!empty($prefixes)) {
100
$prefixes = array($prefixes);
106
if (!is_array($prefixes)) {
107
throw PHPUnit_Util_InvalidArgumentHelper::factory(
112
$this->prefixes = $prefixes;
114
parent::__construct($iterator);
120
public function accept()
122
$current = $this->getInnerIterator()->current();
123
$filename = $current->getFilename();
125
if (strpos($filename, '.') === 0 ||
126
preg_match('=/\.[^/]*/=', realpath($current->getPathname()))) {
130
if (!empty($this->prefixes)) {
133
foreach ($this->prefixes as $prefix) {
134
if (strpos($filename, $prefix) === 0) {
145
if (!empty($this->suffixes)) {
148
foreach ($this->suffixes as $suffix) {
149
if (substr($filename, -1 * strlen($suffix)) == $suffix) {
b'\\ No newline at end of file'