3 namespace Drupal\Tests\entity_browser\FunctionalJavascript;
5 use Drupal\Core\Field\FieldStorageDefinitionInterface;
6 use Drupal\field\Entity\FieldConfig;
7 use Drupal\field\Entity\FieldStorageConfig;
10 * Tests entity browser pager form element.
12 * @group entity_browser
14 class PagerElementTest extends EntityBrowserJavascriptTestBase {
21 public static $modules = [
22 'entity_browser_test',
32 protected function setUp() {
35 $this->drupalCreateContentType(['type' => 'foo', 'name' => 'Foo']);
37 FieldStorageConfig::create([
38 'field_name' => 'field_reference_pager',
39 'type' => 'entity_reference',
40 'entity_type' => 'node',
41 'cardinality' => FieldStorageDefinitionInterface::CARDINALITY_UNLIMITED,
43 'target_type' => 'node',
49 'field_name' => 'field_reference_pager',
50 'entity_type' => 'node',
52 'label' => 'Reference',
56 /** @var \Drupal\Core\Entity\Display\EntityFormDisplayInterface $form_display */
57 $form_display = $this->container->get('entity_type.manager')
58 ->getStorage('entity_form_display')
59 ->load('node.foo.default');
61 $form_display->setComponent('field_reference_pager', [
62 'type' => 'entity_browser_entity_reference',
64 'entity_browser' => 'pager',
65 'field_widget_display' => 'label',
70 $account = $this->drupalCreateUser([
71 'access pager entity browser pages',
75 $this->drupalLogin($account);
79 * Test entity browser pager form element.
81 public function testPagerElement() {
82 $this->drupalGet('/entity-browser/iframe/pager');
83 // Go through pager next and previous buttons and assert pages.
84 $this->assertSession()->pageTextContains('Current page reported by the element is: 1.');
85 $this->assertSession()->buttonExists('‹ Previous')->hasAttribute('disabled');
86 $this->assertSession()->pageTextContains('Page 1');
87 $this->assertSession()->buttonExists('Next ›');
88 $this->getSession()->getPage()->pressButton('Next ›');
89 $this->assertSession()->pageTextContains('Current page reported by the element is: 2.');
90 $this->assertSession()->pageTextContains('Page 2');
91 $this->getSession()->getPage()->pressButton('Next ›');
92 $this->assertSession()->pageTextContains('Current page reported by the element is: 3.');
93 $this->assertSession()->pageTextContains('Page 3');
94 $this->getSession()->getPage()->pressButton('Next ›');
95 $this->assertSession()->pageTextContains('Current page reported by the element is: 4.');
96 $this->assertSession()->pageTextContains('Page 4');
97 $this->assertSession()->buttonExists('Next ›')->hasAttribute('disabled');
100 $this->getSession()->getPage()->pressButton('‹ Previous');
101 $this->assertSession()->pageTextContains('Current page reported by the element is: 3.');
102 $this->assertSession()->pageTextContains('Page 3');
103 $this->getSession()->getPage()->pressButton('‹ Previous');
104 $this->assertSession()->pageTextContains('Current page reported by the element is: 2.');
105 $this->assertSession()->pageTextContains('Page 2');
106 $this->getSession()->getPage()->pressButton('‹ Previous');
107 $this->assertSession()->pageTextContains('Current page reported by the element is: 1.');
108 $this->assertSession()->pageTextContains('Page 1');
109 $this->assertSession()->buttonExists('‹ Previous')->hasAttribute('disabled');
111 // Test reset button.
112 $this->getSession()->getPage()->pressButton('Last page');
113 $this->assertSession()->pageTextContains('Current page reported by the element is: 4.');
114 $this->assertSession()->pageTextContains('Page 4');
115 $this->getSession()->getPage()->pressButton('First page');
116 $this->assertSession()->pageTextContains('Current page reported by the element is: 1.');
117 $this->assertSession()->pageTextContains('Page 1');