UpdateFeedTest.php

Same filename in other branches
  1. 9 core/modules/aggregator/tests/src/Functional/UpdateFeedTest.php

Namespace

Drupal\Tests\aggregator\Functional

File

core/modules/aggregator/tests/src/Functional/UpdateFeedTest.php

View source
<?php

namespace Drupal\Tests\aggregator\Functional;

use Drupal\Component\Render\FormattableMarkup;

/**
 * Update feed test.
 *
 * @group aggregator
 */
class UpdateFeedTest extends AggregatorTestBase {
    
    /**
     * {@inheritdoc}
     */
    protected $defaultTheme = 'stark';
    
    /**
     * Creates a feed and attempts to update it.
     */
    public function testUpdateFeed() {
        $remaining_fields = [
            'title[0][value]',
            'url[0][value]',
            '',
        ];
        foreach ($remaining_fields as $same_field) {
            $feed = $this->createFeed();
            // Get new feed data array and modify newly created feed.
            $edit = $this->getFeedEditArray();
            // Change refresh value.
            $edit['refresh'] = 1800;
            if (isset($feed->{$same_field}->value)) {
                $edit[$same_field] = $feed->{$same_field}->value;
            }
            $this->drupalPostForm('aggregator/sources/' . $feed->id() . '/configure', $edit, t('Save'));
            $this->assertText(t('The feed @name has been updated.', [
                '@name' => $edit['title[0][value]'],
            ]), new FormattableMarkup('The feed %name has been updated.', [
                '%name' => $edit['title[0][value]'],
            ]));
            // Verify that the creation message contains a link to a feed.
            $view_link = $this->xpath('//div[@class="messages"]//a[contains(@href, :href)]', [
                ':href' => 'aggregator/sources/',
            ]);
            $this->assert(isset($view_link), 'The message area contains a link to a feed');
            // Check feed data.
            $this->assertUrl($feed->toUrl('canonical', [
                'absolute' => TRUE,
            ])
                ->toString());
            $this->assertTrue($this->uniqueFeed($edit['title[0][value]'], $edit['url[0][value]']), 'The feed is unique.');
            // Check feed source.
            $this->drupalGet('aggregator/sources/' . $feed->id());
            $this->assertSession()
                ->statusCodeEquals(200);
            $this->assertText($edit['title[0][value]'], 'Page title');
            // Set correct title so deleteFeed() will work.
            $feed->title = $edit['title[0][value]'];
            // Delete feed.
            $this->deleteFeed($feed);
        }
    }

}

Classes

Title Deprecated Summary
UpdateFeedTest Update feed test.

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.