X-Git-Url: http://www.aleph1.co.uk/gitweb/?p=yaffs-website;a=blobdiff_plain;f=web%2Fmodules%2Fcontrib%2Fmedia_entity%2Ftests%2Fsrc%2FFunctional%2FMediaBulkFormTest.php;fp=web%2Fmodules%2Fcontrib%2Fmedia_entity%2Ftests%2Fsrc%2FFunctional%2FMediaBulkFormTest.php;h=5429766fbce8059b1d4118669bdbf8637cd76804;hp=0000000000000000000000000000000000000000;hb=af6d1fb995500ae68849458ee10d66abbdcfb252;hpb=680c79a86e3ed402f263faeac92e89fb6d9edcc0 diff --git a/web/modules/contrib/media_entity/tests/src/Functional/MediaBulkFormTest.php b/web/modules/contrib/media_entity/tests/src/Functional/MediaBulkFormTest.php new file mode 100644 index 000000000..5429766fb --- /dev/null +++ b/web/modules/contrib/media_entity/tests/src/Functional/MediaBulkFormTest.php @@ -0,0 +1,118 @@ +testBundle = $this->drupalCreateMediaBundle(); + + // Create some test media entities. + $this->mediaEntities = []; + for ($i = 1; $i <= 5; $i++) { + $media = Media::create([ + 'bundle' => $this->testBundle->id(), + ]); + $media->save(); + $this->mediaEntities[] = $media; + } + + } + + /** + * Tests the media bulk form. + */ + public function testBulkForm() { + + $session = $this->getSession(); + $page = $session->getPage(); + $assert_session = $this->assertSession(); + + // Check that all created entities are present in the test view. + $view = Views::getView('test_media_entity_bulk_form'); + $view->execute(); + $this->assertEquals($view->total_rows, 5); + + // Check the operations are accessible to the logged in user. + $this->drupalGet('test-media-entity-bulk-form'); + // Current available actions: Delete, Save, Publish, Unpublish. + $available_actions = [ + 'media_delete_action', + 'media_publish_action', + 'media_save_action', + 'media_unpublish_action', + ]; + foreach ($available_actions as $action_name) { + $assert_session->optionExists('action', $action_name); + } + + // Test unpublishing in bulk. + $page->checkField('media_bulk_form[0]'); + $page->checkField('media_bulk_form[1]'); + $page->checkField('media_bulk_form[2]'); + $page->selectFieldOption('action', 'media_unpublish_action'); + $page->pressButton('Apply to selected items'); + $assert_session->pageTextContains('Unpublish media was applied to 3 items'); + for ($i = 1; $i <= 3; $i++) { + $this->assertFalse($this->storage->loadUnchanged($i)->isPublished(), 'The unpublish action failed in some of the media entities.'); + } + + // Test publishing in bulk. + $page->checkField('media_bulk_form[0]'); + $page->checkField('media_bulk_form[1]'); + $page->selectFieldOption('action', 'media_publish_action'); + $page->pressButton('Apply to selected items'); + $assert_session->pageTextContains('Publish media was applied to 2 items'); + for ($i = 1; $i <= 2; $i++) { + $this->assertTrue($this->storage->loadUnchanged($i)->isPublished(), 'The publish action failed in some of the media entities.'); + } + + // Test deletion in bulk. + $page->checkField('media_bulk_form[0]'); + $page->checkField('media_bulk_form[1]'); + $page->selectFieldOption('action', 'media_delete_action'); + $page->pressButton('Apply to selected items'); + $assert_session->pageTextContains('Are you sure you want to delete these items?'); + $page->pressButton('Delete'); + $assert_session->pageTextContains('Deleted 2 media entities.'); + for ($i = 1; $i <= 2; $i++) { + $this->assertNull($this->storage->loadUnchanged($i), 'Could not delete some of the media entities.'); + } + + } + +}