bynder-4.0.0-beta1/tests/src/Functional/BynderWidgetsTest.php
tests/src/Functional/BynderWidgetsTest.php
<?php
namespace Drupal\Tests\bynder\Functional;
use Drupal\Tests\BrowserTestBase;
/**
* Tests the Bynder Entity Browser widgets.
*
* @group bynder
*/
class BynderWidgetsTest extends BrowserTestBase {
/**
* {@inheritdoc}
*/
protected static $modules = [
'bynder',
'media',
'node',
'bynder_test_module',
'entity_browser_bynder_test',
];
/**
* {@inheritdoc}
*/
protected $defaultTheme = 'stark';
/**
* {@inheritdoc}
*/
protected function setUp(): void {
parent::setUp();
$account = $this->drupalCreateUser(['access bynder entity browser pages', 'dropzone upload files']);
$this->drupalLogin($account);
\Drupal::service('config.factory')->getEditable('bynder.settings')
->set('permanent_token', 'token')
->set('client_id', 'id')
->set('client_secret', 'secret')
->set('account_domain', 'https://dam.bynder.com')
->save();
}
/**
* Tests redirect from Bynder to Entity browser widgets.
*/
public function testRedirectToEntityBrowserWidgets() {
\Drupal::keyValue('bynder_mock')->set('bynder.bynder_test_brands', [
[
'id' => 'brand_id',
'name' => 'Brand Name',
'subBrands' => [],
],
]);
$entity_browser = $this->container->get('entity_type.manager')
->getStorage('entity_browser')
->load('bynder');
$entity_browser->setWidgetSelector('tabs');
$widget_configuration = [
'id' => 'bynder_upload',
'label' => 'Bynder upload',
'weight' => 5,
'settings' => [
'media_type' => 'media_type',
'brand' => 'brand_id',
],
];
$widget_id = $entity_browser->addWidget($widget_configuration);
$entity_browser->save();
$this->drupalGet('/entity-browser/modal/bynder');
// Tests that we redirect to the upload widget after we press the "Reload
// after submit" button.
\Drupal::keyValue('bynder_mock')->set('bynder.bynder_test_access_token', FALSE);
$this->getSession()->getPage()->pressButton('Bynder upload');
$this->assertSession()->elementAttributeNotContains('css', '#edit-tab-selector-065aa618-5851-4744-b51c-02e57f5f0cc3', 'class', 'is-disabled');
$this->assertSession()->elementAttributeContains('css', '#edit-tab-selector-' . $widget_id, 'class', 'is-disabled');
\Drupal::keyValue('bynder_mock')->set('bynder.bynder_test_access_token', TRUE);
$this->getSession()->getPage()->pressButton('Reload after submit');
$this->assertSession()->elementAttributeNotContains('css', '#edit-tab-selector-065aa618-5851-4744-b51c-02e57f5f0cc3', 'class', 'is-disabled');
$this->assertSession()->elementAttributeContains('css', '#edit-tab-selector-' . $widget_id, 'class', 'is-disabled');
}
}
