public function FeedLanguageTest::testFeedLanguage in Drupal 9
Same name and namespace in other branches
- 8 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 57
Class
- FeedLanguageTest
- Tests aggregator feeds in multiple languages.
Namespace
Drupal\Tests\aggregator\FunctionalCode
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());
}
}
}