/**
  * @dataProvider getHtmlData
  * @covers HtmlFormatter::getText
  */
 public function testTransform($input, $expected, $callback = false)
 {
     $input = self::normalize($input);
     $formatter = new HtmlFormatter(HtmlFormatter::wrapHTML($input));
     if ($callback) {
         $callback($formatter);
     }
     $formatter->filterContent();
     $html = $formatter->getText();
     $this->assertValidHtmlSnippet($html);
     $this->assertEquals(self::normalize($expected), self::normalize($html));
 }
 /**
  * @dataProvider getHtmlData
  *
  * @param string $input
  * @param string $expectedText
  * @param array $expectedRemoved
  * @param callable|bool $callback
  */
 public function testTransform($input, $expectedText, $expectedRemoved = array(), $callback = false)
 {
     $input = self::normalize($input);
     $formatter = new HtmlFormatter(HtmlFormatter::wrapHTML($input));
     if ($callback) {
         $callback($formatter);
     }
     $removedElements = $formatter->filterContent();
     $html = $formatter->getText();
     $removed = array();
     foreach ($removedElements as $removedElement) {
         $removed[] = self::normalize($formatter->getText($removedElement));
     }
     $expectedRemoved = array_map('self::normalize', $expectedRemoved);
     $this->assertValidHtmlSnippet($html);
     $this->assertEquals(self::normalize($expectedText), self::normalize($html));
     $this->assertEquals(asort($expectedRemoved), asort($removed));
 }