/**
  * @param  string  $filename
  * @param  boolean $filterTests
  * @param  boolean $ignoreWhitelist
  * @return boolean
  * @access protected
  * @static
  * @since  Method available since Release 2.1.3
  */
 protected static function isFiltered($filename, $filterTests = TRUE, $ignoreWhitelist = FALSE)
 {
     $filename = realpath($filename);
     // Use blacklist.
     if ($ignoreWhitelist || empty(self::$whitelistedFiles)) {
         if (DIRECTORY_SEPARATOR == '\\' && !self::$blackListConverstionForWindowsDone) {
             $count = count(self::$blacklistedFiles['PEAR']);
             for ($i = 0; $i < $count; $i++) {
                 self::$blacklistedFiles['PEAR'][$i] = str_replace('/', '\\', self::$blacklistedFiles['PEAR'][$i]);
             }
             self::$blackListConverstionForWindowsDone = TRUE;
         }
         $blacklistedFiles = array_merge(self::$blacklistedFiles['DEFAULT'], self::$blacklistedFiles['PEAR']);
         if ($filterTests) {
             $blacklistedFiles = array_merge($blacklistedFiles, self::$blacklistedFiles['TESTS']);
         }
         if (self::$filterPHPUnit) {
             $blacklistedFiles = array_merge($blacklistedFiles, self::$blacklistedFiles['PHPUNIT']);
         }
         if (in_array($filename, $blacklistedFiles)) {
             return TRUE;
         }
         foreach ($blacklistedFiles as $filteredFile) {
             if (strpos($filename, $filteredFile) !== FALSE) {
                 return TRUE;
             }
         }
         return FALSE;
     } else {
         if (in_array($filename, self::$whitelistedFiles)) {
             return FALSE;
         }
         return TRUE;
     }
 }