|
|
|
@ -2,6 +2,8 @@
|
|
|
|
|
|
|
|
|
|
namespace Drupal\Tests\islandora\Functional; |
|
|
|
|
|
|
|
|
|
use Drupal\views\Views; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Tests the DeleteMedia and DeleteMediaAndFile actions. |
|
|
|
|
* |
|
|
|
@ -9,6 +11,18 @@ namespace Drupal\Tests\islandora\Functional;
|
|
|
|
|
*/ |
|
|
|
|
class DeleteMediaTest extends IslandoraFunctionalTestBase { |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Modules to be enabled. |
|
|
|
|
* |
|
|
|
|
* @var array |
|
|
|
|
*/ |
|
|
|
|
public static $modules = [ |
|
|
|
|
'media_test_views', |
|
|
|
|
'context_ui', |
|
|
|
|
'field_ui', |
|
|
|
|
'islandora', |
|
|
|
|
]; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Media. |
|
|
|
|
* |
|
|
|
@ -23,6 +37,13 @@ class DeleteMediaTest extends IslandoraFunctionalTestBase {
|
|
|
|
|
*/ |
|
|
|
|
protected $file; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* User account. |
|
|
|
|
* |
|
|
|
|
* @var \Drupal\Core\Session\AccountInterface; |
|
|
|
|
*/ |
|
|
|
|
protected $account; |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* {@inheritdoc} |
|
|
|
|
*/ |
|
|
|
@ -30,9 +51,9 @@ class DeleteMediaTest extends IslandoraFunctionalTestBase {
|
|
|
|
|
parent::setUp(); |
|
|
|
|
|
|
|
|
|
// Create a test user. |
|
|
|
|
$account = $this->createUser(['create media']); |
|
|
|
|
$this->account = $this->createUser(['create media', 'delete any media']); |
|
|
|
|
|
|
|
|
|
list($this->file, $this->media) = $this->makeMediaAndFile($account); |
|
|
|
|
list($this->file, $this->media) = $this->makeMediaAndFile($this->account); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
@ -41,12 +62,31 @@ class DeleteMediaTest extends IslandoraFunctionalTestBase {
|
|
|
|
|
* @covers \Drupal\islandora\Plugin\Action\DeleteMediaAndFile::execute |
|
|
|
|
*/ |
|
|
|
|
public function testDeleteMediaAndFile() { |
|
|
|
|
$action = $this->container->get('entity_type.manager')->getStorage('action')->load('delete_media_and_file'); |
|
|
|
|
$this->drupalLogin($this->account); |
|
|
|
|
$session = $this->getSession(); |
|
|
|
|
$page = $session->getPage(); |
|
|
|
|
|
|
|
|
|
$mid = $this->media->id(); |
|
|
|
|
$fid = $this->file->id(); |
|
|
|
|
|
|
|
|
|
$action->execute([$this->media]); |
|
|
|
|
// Ensure the media is in the test view. |
|
|
|
|
$view = Views::getView('test_media_bulk_form'); |
|
|
|
|
$view->execute(); |
|
|
|
|
$this->assertSame($view->total_rows, 1); |
|
|
|
|
|
|
|
|
|
$this->drupalGet('test-media-bulk-form'); |
|
|
|
|
|
|
|
|
|
// Check that the option exists. |
|
|
|
|
$this->assertSession()->optionExists('action', 'delete_media_and_file'); |
|
|
|
|
|
|
|
|
|
// Run the bulk action. |
|
|
|
|
$page->checkField('media_bulk_form[0]'); |
|
|
|
|
$page->selectFieldOption('action', 'delete_media_and_file'); |
|
|
|
|
$page->pressButton('Apply to selected items'); |
|
|
|
|
$this->assertSession()->pageTextContains('Are you sure you want to delete this media and associated files?'); |
|
|
|
|
$page->pressButton('Delete'); |
|
|
|
|
// Should assert that a media and file were deleted. |
|
|
|
|
$this->assertSession()->pageTextContains('Deleted 2 items.'); |
|
|
|
|
|
|
|
|
|
// Attempt to reload the entities. |
|
|
|
|
// Both media and file should be gone. |
|
|
|
|