diff --git a/src/Tests/EntityBrowserUploadWidgetWebTest.php b/src/Tests/EntityBrowserUploadWidgetWebTest.php index 1b2dacd..00b91bf 100644 --- a/src/Tests/EntityBrowserUploadWidgetWebTest.php +++ b/src/Tests/EntityBrowserUploadWidgetWebTest.php @@ -1,14 +1,10 @@ user = $this->drupalCreateUser([ - 'administer users', - 'administer permissions', - 'administer site configuration', - 'administer content types', - 'administer node fields', - 'administer node display', - 'administer node form display', 'administer entity browsers', ]); $this->drupalLogin($this->user); @@ -67,59 +52,21 @@ class EntityBrowserUploadWidgetWebTest extends WebTestBase { * Tests Entity Browser upload widget. */ public function testUploadWidget() { - // Create a new content type. - $edit = [ - 'name' => 'Entity browser', - 'title_label' => 'An example Custom Content type.', - 'type' => 'entity_browser', - ]; - $this->drupalPostForm('admin/structure/types/add', $edit, t('Save and manage fields')); - - // Create entity_reference field. - $edit = [ - 'new_storage_type' => 'entity_reference', - 'label' => 'Images', - 'field_name' => 'images', - ]; - $this->drupalPostForm('admin/structure/types/manage/entity_browser/fields/add-field', $edit, t('Save and continue')); - - // Set type of item to reference. - $edit = [ - 'settings[target_type]' => 'file', - 'cardinality' => '-1', - ]; - $this->drupalPostForm('/admin/structure/types/manage/entity_browser/fields/node.entity_browser.field_images/storage', $edit, t('Save field settings')); // Create a new entity browser. $entity_browser = $this->createEntityBrowser(); - // Go to the form display page. - $this->drupalGet('/admin/structure/types/manage/entity_browser/form-display'); - - // Switch widget dropdown to entity browser and click on the widget settings - // button to open the widget settings form. + // Go to the widget standalone page and test the upload. + $this->drupalGet($entity_browser->getDisplay()->path()); + $this->assertField('files[upload][]', 'Upload field found.'); + $image = current($this->drupalGetTestFiles('image')); $edit = [ - 'fields[field_images][type]' => 'entity_browser_entity_reference', + 'files[upload][]' => $this->container->get('file_system')->realpath($image->uri), ]; - $this->drupalPostAjaxForm(NULL, $edit, 'field_images_settings_edit'); - - // Update widget settings form. - $edit = [ - 'fields[field_images][settings_edit_form][settings][entity_browser]' => $entity_browser->id(), - 'fields[field_images][settings_edit_form][settings][field_widget_display]' => 'label', - 'fields[field_images][settings_edit_form][settings][field_widget_edit]' => 1, - 'fields[field_images][settings_edit_form][settings][field_widget_remove]' => 1, - 'fields[field_images][settings_edit_form][settings][open]' => 1, - ]; - $this->drupalPostForm(NULL, $edit, t('Update')); - $this->drupalPostForm(NULL, [], t('Save')); - - // Add new node and test if the upload widget is present. - $this->drupalGet('/node/add/entity_browser'); - $this->assertLink('Open browser'); - $this->assertResponse(200); - $this->drupalGet('/entity-browser/iframe/' . $entity_browser->id(), ['query' => ['uuid' => $entity_browser->uuid(), 'original_path' => '/node/add/entity_browser']]); - $this->assertFieldByName('files[upload][]'); + $this->drupalPostForm(NULL, $edit, t('Select')); + /** @var \Drupal\file\FileInterface $file */ + $file = File::load(1); + $this->assertNotNull($file->getFileUri(), 'Image uploaded correctly'); } @@ -135,8 +82,8 @@ class EntityBrowserUploadWidgetWebTest extends WebTestBase { $edit = [ 'label' => 'test entity browser', 'id' => 'test_entity_browser', - 'display' => 'iframe', - 'widget_selector' => 'tabs', + 'display' => 'standalone', + 'widget_selector' => 'single', 'selection_display' => 'no_display', 'submit_text' => 'Select', ]; @@ -144,10 +91,7 @@ class EntityBrowserUploadWidgetWebTest extends WebTestBase { // Display configuration step. $this->assertUrl('/admin/config/content/entity_browser/test_entity_browser/display', ['query' => ['js' => 'nojs']]); $edit = [ - 'width' => 720, - 'height' => 500, - 'link_text' => 'Open browser', - 'auto_open' => FALSE, + 'path' => '/admin/test-entity-browser', ]; $this->drupalPostForm(NULL, $edit, 'Next'); // Widget selector step. @@ -164,6 +108,7 @@ class EntityBrowserUploadWidgetWebTest extends WebTestBase { ->getStorage('entity_browser') ->load('test_entity_browser'); // Add the permission to access to this entity_browser page to the user. + /** @var \Drupal\user\RoleInterface $role */ $role = Role::load('authenticated'); $role->grantPermission('access test_entity_browser entity browser pages'); $role->save();