function FeedLanguageTest::testFeedLanguage

Same name in other branches
  1. 8.9.x core/modules/aggregator/tests/src/Functional/FeedLanguageTest.php \Drupal\Tests\aggregator\Functional\FeedLanguageTest::testFeedLanguage()

Tests creation of feeds with a language.

File

core/modules/aggregator/tests/src/Functional/FeedLanguageTest.php, line 58

Class

FeedLanguageTest
Tests aggregator feeds in multiple languages.

Namespace

Drupal\Tests\aggregator\Functional

Code

public function testFeedLanguage() {
    $admin_user = $this->drupalCreateUser([
        'administer languages',
        'access administration pages',
        'administer news feeds',
        'access news feeds',
        'create article content',
    ]);
    $this->drupalLogin($admin_user);
    // Enable language selection for feeds.
    $edit['entity_types[aggregator_feed]'] = TRUE;
    $edit['settings[aggregator_feed][aggregator_feed][settings][language][language_alterable]'] = TRUE;
    $this->drupalGet('admin/config/regional/content-language');
    $this->submitForm($edit, 'Save configuration');
    
    /** @var \Drupal\aggregator\FeedInterface[] $feeds */
    $feeds = [];
    // Create feeds.
    $feeds[1] = $this->createFeed(NULL, [
        'langcode[0][value]' => $this->langcodes[1],
    ]);
    $feeds[2] = $this->createFeed(NULL, [
        'langcode[0][value]' => $this->langcodes[2],
    ]);
    // Make sure that the language has been assigned.
    $this->assertEquals($this->langcodes[1], $feeds[1]->language()
        ->getId());
    $this->assertEquals($this->langcodes[2], $feeds[2]->language()
        ->getId());
    // Create example nodes to create feed items from and then update the feeds.
    $this->createSampleNodes();
    $this->cronRun();
    // Loop over the created feed items and verify that their language matches
    // the one from the feed.
    foreach ($feeds as $feed) {
        
        /** @var \Drupal\aggregator\ItemInterface[] $items */
        $items = \Drupal::entityTypeManager()->getStorage('aggregator_item')
            ->loadByProperties([
            'fid' => $feed->id(),
        ]);
        // Verify that the feed items were created.
        $this->assertNotEmpty($items);
        foreach ($items as $item) {
            $this->assertEquals($feed->language()
                ->getId(), $item->language()
                ->getId());
        }
    }
}

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