public function testIteratorInterfaceSkipEmpty() { $content = "line1\n\nline2"; $url = vfsStream::newFile('test.txt')->withContent($content)->at($this->_root)->url(); $fileObject = new FileObject($url, 'r'); $fileObject->setFlags(\SplFileObject::DROP_NEW_LINE | \SplFileObject::SKIP_EMPTY | \SplFileObject::READ_AHEAD); $fileObject->rewind(); $this->assertTrue($fileObject->valid()); $this->assertEquals("line1", $fileObject->current()); $this->assertSame(0, $fileObject->key()); $fileObject->next(); $this->assertTrue($fileObject->valid()); $this->assertEquals('line2', $fileObject->current()); $this->assertSame(1, $fileObject->key()); $fileObject->next(); // Beyond EOF $this->assertFalse($fileObject->valid()); $this->assertFalse($fileObject->current()); $this->assertSame(2, $fileObject->key()); $fileObject->rewind(); $this->assertTrue($fileObject->valid()); $this->assertEquals("line1", $fileObject->current()); $this->assertSame(0, $fileObject->key()); }