View source
<?php
namespace Drupal\Tests\entity_browser\FunctionalJavascript;
use Drupal\entityqueue\Entity\EntitySubqueue;
use Drupal\FunctionalJavascriptTests\WebDriverTestBase;
class EntityQueueTest extends WebDriverTestBase {
protected static $modules = [
'entity_browser',
'entity_browser_test',
'entityqueue',
'entity_browser_test_entityqueue',
];
protected $adminUser;
protected $defaultTheme = 'stark';
protected function setUp() {
parent::setUp();
$this->adminUser = $this
->drupalCreateUser([
'access content',
'access widget_context_default_value entity browser pages',
'manipulate all entityqueues',
]);
}
public function testEntityQueueButtons() {
$this
->drupalLogin($this->adminUser);
$article1 = $this
->createNode([
'type' => 'article',
'title' => 'Article 1',
]);
$article2 = $this
->createNode([
'type' => 'article',
'title' => 'Article 2',
]);
$article3 = $this
->createNode([
'type' => 'article',
'title' => 'Article 3',
]);
$subqueue = EntitySubqueue::load('nodes');
$subqueue->items
->setValue([
$article1,
$article2,
$article3,
]);
$subqueue
->save();
$this
->drupalGet('/admin/structure/entityqueue/nodes/nodes');
$correct_order = [
1 => 'Article 1',
2 => 'Article 2',
3 => 'Article 3',
];
foreach ($correct_order as $key => $value) {
$this
->assertSession()
->elementContains('xpath', "(//div[contains(@class, 'item-container')])[" . $key . "]", $value);
}
$this
->assertSession()
->buttonExists('Reverse')
->press();
$this
->assertSession()
->assertWaitOnAjaxRequest();
$correct_order = [
1 => 'Article 3',
2 => 'Article 2',
3 => 'Article 1',
];
foreach ($correct_order as $key => $value) {
$this
->assertSession()
->elementContains('xpath', "(//div[contains(@class, 'item-container')])[" . $key . "]", $value);
}
$this
->assertSession()
->buttonExists('Clear')
->press();
$this
->assertSession()
->assertWaitOnAjaxRequest();
$this
->assertSession()
->elementNotExists('xpath', "//div[contains(@class, 'item-container')]");
}
}