MarkupInterfaceComparator.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace Drupal\TestTools\Comparator;
  3. use Drupal\Component\Render\MarkupInterface;
  4. use SebastianBergmann\Comparator\Comparator;
  5. /**
  6. * Compares MarkupInterface objects for equality.
  7. */
  8. class MarkupInterfaceComparator extends Comparator {
  9. /**
  10. * {@inheritdoc}
  11. */
  12. public function accepts($expected, $actual) {
  13. // If at least one argument is a MarkupInterface object, we take over and
  14. // convert to strings before comparing.
  15. return ($expected instanceof MarkupInterface && $actual instanceof MarkupInterface) ||
  16. ($expected instanceof MarkupInterface && is_scalar($actual)) ||
  17. (is_scalar($expected) && $actual instanceof MarkupInterface);
  18. }
  19. /**
  20. * {@inheritdoc}
  21. */
  22. public function assertEquals($expected, $actual, $delta = 0.0, $canonicalize = FALSE, $ignoreCase = FALSE) {
  23. $expected_safe = (string) $expected;
  24. $actual_safe = (string) $actual;
  25. $comparator = $this->factory->getComparatorFor($expected_safe, $actual_safe);
  26. $comparator->assertEquals($expected_safe, $actual_safe, $delta, $canonicalize, $ignoreCase);
  27. }
  28. }