function UpdateFeedTest::testUpdateFeed

Same name and namespace in other branches
  1. 8.9.x core/modules/aggregator/tests/src/Functional/UpdateFeedTest.php \Drupal\Tests\aggregator\Functional\UpdateFeedTest::testUpdateFeed()

Creates a feed and attempts to update it.

File

core/modules/aggregator/tests/src/Functional/UpdateFeedTest.php, line 21

Class

UpdateFeedTest
Update feed test.

Namespace

Drupal\Tests\aggregator\Functional

Code

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->drupalGet('aggregator/sources/' . $feed->id() . '/configure');
        $this->submitForm($edit, 'Save');
        $this->assertSession()
            ->pageTextContains('The feed ' . $edit['title[0][value]'] . ' has been updated.');
        // Verify that the creation message contains a link to a feed.
        $this->assertSession()
            ->elementExists('xpath', '//div[@data-drupal-messages]//a[contains(@href, "aggregator/sources/")]');
        // Check feed data.
        $this->assertSession()
            ->addressEquals($feed->toUrl('canonical'));
        $this->assertTrue($this->uniqueFeed($edit['title[0][value]'], $edit['url[0][value]']), 'The feed is unique.');
        // Check feed source, the title should be on the page.
        $this->drupalGet('aggregator/sources/' . $feed->id());
        $this->assertSession()
            ->statusCodeEquals(200);
        $this->assertSession()
            ->pageTextContains($edit['title[0][value]']);
        // Set correct title so deleteFeed() will work.
        $feed->title = $edit['title[0][value]'];
        // Delete feed.
        $this->deleteFeed($feed);
    }
}

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