public function UrlEmbedFilterTest::testFilter in URL Embed 8
Tests the url_embed filter.
Ensures that iframes are getting rendered when valid urls are passed. Also tests situations when embed fails.
File
- tests/src/ Functional/ UrlEmbedFilterTest.php, line 23 
- Contains \Drupal\url_embed\Tests\UrlEmbedFilterTest.
Class
- UrlEmbedFilterTest
- Tests the url_embed filter.
Namespace
Drupal\Tests\url_embed\FunctionalCode
public function testFilter() {
  // Tests url embed using sample flickr url.
  $content = '<drupal-url data-embed-url="' . static::FLICKR_URL . '">This placeholder should not be rendered.</drupal-url>';
  $settings = array();
  $settings['type'] = 'page';
  $settings['title'] = 'Test url embed with sample flickr url';
  $settings['body'] = array(
    array(
      'value' => $content,
      'format' => 'custom_format',
    ),
  );
  $node = $this
    ->drupalCreateNode($settings);
  $this
    ->drupalGet('node/' . $node
    ->id());
  $this
    ->assertSession()
    ->responseContains(static::FLICKR_OUTPUT_WYSIWYG);
  $this
    ->assertNoText(strip_tags($content), 'Placeholder does not appear in the output when embed is successful.');
  // Ensure that placeholder is not replaced when embed is unsuccessful.
  $content = '<drupal-url data-embed-url="">This placeholder should be rendered since specified URL does not exists.</drupal-url>';
  $settings = array();
  $settings['type'] = 'page';
  $settings['title'] = 'Test that placeholder is retained when specified URL does not exists';
  $settings['body'] = array(
    array(
      'value' => $content,
      'format' => 'custom_format',
    ),
  );
  $node = $this
    ->drupalCreateNode($settings);
  $this
    ->drupalGet('node/' . $node
    ->id());
  $this
    ->assertNoText(strip_tags($content), 'Placeholder does not appear in the output when embed is unsuccessful.');
  // Test that tag of container element is not replaced when it's not
  // <drupal-url>.
  $content = '<not-drupal-url data-embed-url="' . static::FLICKR_URL . '" data-url-provider="Flickr">this placeholder should not be rendered.</not-drupal-url>';
  $settings = array();
  $settings['type'] = 'page';
  $settings['title'] = 'test url embed with embed-url';
  $settings['body'] = array(
    array(
      'value' => $content,
      'format' => 'custom_format',
    ),
  );
  $node = $this
    ->drupalCreateNode($settings);
  $this
    ->drupalget('node/' . $node
    ->id());
  $this
    ->assertSession()
    ->responseContains('</not-drupal-url>');
  $content = '<div data-embed-url="' . static::FLICKR_URL . '">this placeholder should not be rendered.</div>';
  $settings = array();
  $settings['type'] = 'page';
  $settings['title'] = 'test url embed with embed-url';
  $settings['body'] = array(
    array(
      'value' => $content,
      'format' => 'custom_format',
    ),
  );
  $node = $this
    ->drupalCreateNode($settings);
  $this
    ->drupalget('node/' . $node
    ->id());
  $this
    ->assertSession()
    ->responseContains('<div data-embed-url="' . static::FLICKR_URL . '"');
}