3 namespace Drupal\aggregator\Tests;
5 use Drupal\language\Entity\ConfigurableLanguage;
8 * Tests aggregator feeds in multiple languages.
12 class FeedLanguageTest extends AggregatorTestBase {
19 public static $modules = ['language'];
26 protected $langcodes = [];
31 protected function setUp() {
34 // Create test languages.
35 $this->langcodes = [ConfigurableLanguage::load('en')];
36 for ($i = 1; $i < 3; ++$i) {
37 $language = ConfigurableLanguage::create([
39 'label' => $this->randomString(),
42 $this->langcodes[$i] = $language->id();
47 * Tests creation of feeds with a language.
49 public function testFeedLanguage() {
50 $admin_user = $this->drupalCreateUser(['administer languages', 'access administration pages', 'administer news feeds', 'access news feeds', 'create article content']);
51 $this->drupalLogin($admin_user);
53 // Enable language selection for feeds.
54 $edit['entity_types[aggregator_feed]'] = TRUE;
55 $edit['settings[aggregator_feed][aggregator_feed][settings][language][language_alterable]'] = TRUE;
57 $this->drupalPostForm('admin/config/regional/content-language', $edit, t('Save configuration'));
59 /** @var \Drupal\aggregator\FeedInterface[] $feeds */
62 $feeds[1] = $this->createFeed(NULL, ['langcode[0][value]' => $this->langcodes[1]]);
63 $feeds[2] = $this->createFeed(NULL, ['langcode[0][value]' => $this->langcodes[2]]);
65 // Make sure that the language has been assigned.
66 $this->assertEqual($feeds[1]->language()->getId(), $this->langcodes[1]);
67 $this->assertEqual($feeds[2]->language()->getId(), $this->langcodes[2]);
69 // Create example nodes to create feed items from and then update the feeds.
70 $this->createSampleNodes();
73 // Loop over the created feed items and verify that their language matches
74 // the one from the feed.
75 foreach ($feeds as $feed) {
76 /** @var \Drupal\aggregator\ItemInterface[] $items */
77 $items = entity_load_multiple_by_properties('aggregator_item', ['fid' => $feed->id()]);
78 $this->assertTrue(count($items) > 0, 'Feed items were created.');
79 foreach ($items as $item) {
80 $this->assertEqual($item->language()->getId(), $feed->language()->getId());