3 namespace Drupal\Tests\system\Functional\Entity;
5 use Drupal\Core\Language\LanguageInterface;
6 use Drupal\entity_test\Entity\EntityTest;
7 use Drupal\Tests\BrowserTestBase;
10 * Tests entity list builder functionality.
14 class EntityListBuilderTest extends BrowserTestBase {
19 public static $modules = ['entity_test'];
24 protected function setUp() {
27 // Create and log in user.
28 $this->webUser = $this->drupalCreateUser([
29 'administer entity_test content',
31 $this->drupalLogin($this->webUser);
37 public function testPager() {
38 // Create 51 test entities.
39 for ($i = 1; $i < 52; $i++) {
40 EntityTest::create(['name' => 'Test entity ' . $i])->save();
43 // Load the listing page.
44 $this->drupalGet('entity_test/list');
46 // Item 51 should not be present.
47 $this->assertRaw('Test entity 50', 'Item 50 is shown.');
48 $this->assertNoRaw('Test entity 51', 'Item 51 is on the next page.');
50 // Browse to the next page.
51 $this->clickLink(t('Page 2'));
52 $this->assertNoRaw('Test entity 50', 'Test entity 50 is on the previous page.');
53 $this->assertRaw('Test entity 51', 'Test entity 51 is shown.');
57 * Tests that the correct cache contexts are set.
59 public function testCacheContexts() {
60 /** @var \Drupal\Core\Entity\EntityListBuilderInterface $list_builder */
61 $list_builder = $this->container->get('entity.manager')->getListBuilder('entity_test');
63 $build = $list_builder->render();
64 $this->container->get('renderer')->renderRoot($build);
66 $this->assertEqual(['entity_test_view_grants', 'languages:' . LanguageInterface::TYPE_INTERFACE, 'theme', 'url.query_args.pagers:0', 'user.permissions'], $build['#cache']['contexts']);
70 * Tests if the list cache tags are set.
72 public function testCacheTags() {
73 $this->drupalGet('entity_test/list');
74 $this->assertCacheTag('entity_test_list');