You are here

class FileInputStreamTest in Zircon Profile 8.0

Same name and namespace in other branches
  1. 8 vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.php \Masterminds\HTML5\Tests\Parser\FileInputStreamTest

Hierarchy

  • class \Masterminds\HTML5\Tests\TestCase extends \Masterminds\HTML5\Tests\PHPUnit_Framework_TestCase

Expanded class hierarchy of FileInputStreamTest

File

vendor/masterminds/html5/test/HTML5/Parser/FileInputStreamTest.php, line 6

Namespace

Masterminds\HTML5\Tests\Parser
View source
class FileInputStreamTest extends \Masterminds\HTML5\Tests\TestCase {
  public function testConstruct() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertInstanceOf('\\Masterminds\\HTML5\\Parser\\FileInputStream', $s);
  }
  public function testNext() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $s
      ->next();
    $this
      ->assertEquals('!', $s
      ->current());
    $s
      ->next();
    $this
      ->assertEquals('d', $s
      ->current());
  }
  public function testKey() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals(0, $s
      ->key());
    $s
      ->next();
    $this
      ->assertEquals(1, $s
      ->key());
  }
  public function testPeek() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals('!', $s
      ->peek());
    $s
      ->next();
    $this
      ->assertEquals('d', $s
      ->peek());
  }
  public function testCurrent() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals('<', $s
      ->current());
    $s
      ->next();
    $this
      ->assertEquals('!', $s
      ->current());
    $s
      ->next();
    $this
      ->assertEquals('d', $s
      ->current());
  }
  public function testColumnOffset() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals(0, $s
      ->columnOffset());
    $s
      ->next();
    $this
      ->assertEquals(1, $s
      ->columnOffset());
    $s
      ->next();
    $this
      ->assertEquals(2, $s
      ->columnOffset());
    $s
      ->next();
    $this
      ->assertEquals(3, $s
      ->columnOffset());

    // Make sure we get to the second line
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $this
      ->assertEquals(0, $s
      ->columnOffset());
    $s
      ->next();
    $canary = $s
      ->current();

    // h
    $this
      ->assertEquals('h', $canary);
    $this
      ->assertEquals(1, $s
      ->columnOffset());
  }
  public function testCurrentLine() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals(1, $s
      ->currentLine());

    // Make sure we get to the second line
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $this
      ->assertEquals(2, $s
      ->currentLine());

    // Make sure we get to the third line
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $s
      ->next();
    $this
      ->assertEquals(3, $s
      ->currentLine());
  }
  public function testRemainingChars() {
    $text = file_get_contents(__DIR__ . '/FileInputStreamTest.html');
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals($text, $s
      ->remainingChars());
    $text = substr(file_get_contents(__DIR__ . '/FileInputStreamTest.html'), 1);
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $s
      ->next();

    // Pop one.
    $this
      ->assertEquals($text, $s
      ->remainingChars());
  }
  public function testCharsUnitl() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals('', $s
      ->charsUntil('<'));

    // Pointer at '<', moves to ' '
    $this
      ->assertEquals('<!doctype', $s
      ->charsUntil(' ', 20));

    // Pointer at ' ', moves to '>'
    $this
      ->assertEquals(' html', $s
      ->charsUntil('>'));

    // Pointer at '>', moves to '\n'.
    $this
      ->assertEquals('>', $s
      ->charsUntil("\n"));

    // Pointer at '\n', move forward then to the next'\n'.
    $s
      ->next();
    $this
      ->assertEquals('<html lang="en">', $s
      ->charsUntil("\n"));

    // Ony get one of the spaces.
    $this
      ->assertEquals("\n ", $s
      ->charsUntil('<', 2));

    // Get the other space.
    $this
      ->assertEquals(" ", $s
      ->charsUntil('<'));

    // This should scan to the end of the file.
    $text = "<head>\n    <meta charset=\"utf-8\">\n    <title>Test</title>\n  </head>\n  <body>\n    <p>This is a test.</p>\n  </body>\n</html>";
    $this
      ->assertEquals($text, $s
      ->charsUntil("\t"));
  }
  public function testCharsWhile() {
    $s = new FileInputStream(__DIR__ . '/FileInputStreamTest.html');
    $this
      ->assertEquals('<!', $s
      ->charsWhile('!<'));
    $this
      ->assertEquals('', $s
      ->charsWhile('>'));
    $this
      ->assertEquals('doctype', $s
      ->charsWhile('odcyept'));
    $this
      ->assertEquals(' htm', $s
      ->charsWhile('html ', 4));
  }

}

Members