class RegexDirectoryIteratorTest
@coversDefaultClass \Drupal\Component\FileSystem\RegexDirectoryIterator
      
    
@group FileSystem
Hierarchy
- class \Drupal\Tests\Component\FileSystem\RegexDirectoryIteratorTest extends \PHPUnit\Framework\TestCase
 
Expanded class hierarchy of RegexDirectoryIteratorTest
File
- 
              core/
tests/ Drupal/ Tests/ Component/ FileSystem/ RegexDirectoryIteratorTest.php, line 13  
Namespace
Drupal\Tests\Component\FileSystemView source
class RegexDirectoryIteratorTest extends TestCase {
  
  /**
   * @covers ::accept
   * @dataProvider providerTestRegexDirectoryIterator
   */
  public function testRegexDirectoryIterator(array $directory, $regex, array $expected) {
    vfsStream::setup('root', NULL, $directory);
    $iterator = new RegexDirectoryIterator(vfsStream::url('root'), $regex);
    // Create an array of filenames to assert against.
    $file_list = array_map(function (\SplFileInfo $file) {
      return $file->getFilename();
    }, array_values(iterator_to_array($iterator)));
    $this->assertSame($expected, $file_list);
  }
  
  /**
   * Provider for self::testRegexDirectoryIterator().
   */
  public function providerTestRegexDirectoryIterator() {
    return [
      [
        [
          '1.yml' => '',
        ],
        '/\\.yml$/',
        [
          '1.yml',
        ],
      ],
      [
        [
          '1.yml' => '',
          '2.yml' => '',
          '3.txt' => '',
        ],
        '/\\.yml$/',
        [
          '1.yml',
          '2.yml',
        ],
      ],
      [
        [
          '1.yml' => '',
          '2.yml' => '',
          '3.txt' => '',
        ],
        '/\\.txt/',
        [
          '3.txt',
        ],
      ],
      [
        [
          '1.yml' => '',
          // Ensure we don't recurse in directories even if that match the
          // regex.
'2.yml' => [
            '3.yml' => '',
            '4.yml' => '',
          ],
          '3.txt' => '',
        ],
        '/\\.yml$/',
        [
          '1.yml',
        ],
      ],
      [
        [
          '1.yml' => '',
          '2.yml' => '',
          '3.txt' => '',
        ],
        '/^\\d/',
        [
          '1.yml',
          '2.yml',
          '3.txt',
        ],
      ],
      [
        [
          '1.yml' => '',
          '2.yml' => '',
          '3.txt' => '',
        ],
        '/^\\D/',
        [],
      ],
    ];
  }
}
Members
| Title Sort descending | Modifiers | Object type | Summary | 
|---|---|---|---|
| RegexDirectoryIteratorTest::providerTestRegexDirectoryIterator | public | function | Provider for self::testRegexDirectoryIterator(). | 
| RegexDirectoryIteratorTest::testRegexDirectoryIterator | public | function | @covers ::accept[[api-linebreak]] @dataProvider providerTestRegexDirectoryIterator  | 
              
Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.