X-Git-Url: http://aleph1.co.uk/gitweb/?a=blobdiff_plain;ds=sidebyside;f=web%2Fcore%2Fmodules%2Faggregator%2Fsrc%2FTests%2FFeedLanguageTest.php;fp=web%2Fcore%2Fmodules%2Faggregator%2Fsrc%2FTests%2FFeedLanguageTest.php;h=98d04fa5c1319e5a9ba25460311fd4135f65f704;hb=a2bd1bf0c2c1f1a17d188f4dc0726a45494cefae;hp=0000000000000000000000000000000000000000;hpb=57c063afa3f66b07c4bbddc2d6129a96d90f0aad;p=yaffs-website diff --git a/web/core/modules/aggregator/src/Tests/FeedLanguageTest.php b/web/core/modules/aggregator/src/Tests/FeedLanguageTest.php new file mode 100644 index 000000000..98d04fa5c --- /dev/null +++ b/web/core/modules/aggregator/src/Tests/FeedLanguageTest.php @@ -0,0 +1,85 @@ +langcodes = [ConfigurableLanguage::load('en')]; + for ($i = 1; $i < 3; ++$i) { + $language = ConfigurableLanguage::create([ + 'id' => 'l' . $i, + 'label' => $this->randomString(), + ]); + $language->save(); + $this->langcodes[$i] = $language->id(); + } + } + + /** + * Tests creation of feeds with a language. + */ + 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->drupalPostForm('admin/config/regional/content-language', $edit, t('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->assertEqual($feeds[1]->language()->getId(), $this->langcodes[1]); + $this->assertEqual($feeds[2]->language()->getId(), $this->langcodes[2]); + + // 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 = entity_load_multiple_by_properties('aggregator_item', ['fid' => $feed->id()]); + $this->assertTrue(count($items) > 0, 'Feed items were created.'); + foreach ($items as $item) { + $this->assertEqual($item->language()->getId(), $feed->language()->getId()); + } + } + } + +}