acquia_dam-1.0.0-rc1/tests/src/Kernel/ModuleInstallationTest.php
tests/src/Kernel/ModuleInstallationTest.php
<?php declare(strict_types=1); namespace Drupal\Tests\acquia_dam\Kernel; use Drupal\Core\Messenger\MessengerInterface; use Drupal\media\Entity\MediaType; /** * Tests compatibility with module installation. * * @group acquia_dam */ final class ModuleInstallationTest extends AcquiaDamKernelTestBase { /** * Tests that data is copied over on installation. */ public function testUninstallInstall(): void { $this->setDamSiteToken(); $user = $this->drupalSetUpCurrentUser(); $user_data = $this->container->get('acquia_dam.authentication_service')->getUserData((int) $user->id()); self::assertArrayHasKey('acquia_dam_token', $user_data); self::assertNotNull($this->container->get('state')->get('acquia_dam_token')); $this->container->get('module_installer')->uninstall(['acquia_dam']); $this->assertNull(\Drupal::state()->get('acquia_dam.last_update_check')); self::assertNull($this->container->get('state')->get('acquia_dam_token')); self::assertNull($this->container->get('user.data')->get('acquia_dam', $user->id(), 'account')); $this->installModule('acquia_dam'); $this->container->get('module_handler')->loadInclude('acquia_dam', 'install'); acquia_dam_install(FALSE); $this->assertNotNull(\Drupal::state()->get('acquia_dam.last_update_check')); $this->assertCount(1, \Drupal::service('messenger')->messagesByType(MessengerInterface::TYPE_STATUS)); $this->assertEquals('The Acquia DAM module has been installed. You need to <a href="/admin/config/acquia-dam">configure the module</a> for others to make use of it.', \Drupal::service('messenger')->messagesByType(MessengerInterface::TYPE_STATUS)[0]->__toString()); } /** * Tests to check data saved correctly after the hook_update. */ public function testUpdateHook(): void { $config_array = []; $configuration_map = [ 'media.type.acquia_dam_image_asset', 'media.type.acquia_dam_spinset_asset', 'media.type.acquia_dam_documents_asset', 'core.entity_view_display.media.acquia_dam_image_asset.default', 'core.entity_view_display.media.acquia_dam_image_asset.media_library', 'core.entity_view_display.media.acquia_dam_spinset_asset.default', 'core.entity_view_display.media.acquia_dam_spinset_asset.media_library', 'core.entity_view_display.media.acquia_dam_documents_asset.default', 'core.entity_view_display.media.acquia_dam_documents_asset.media_library', ]; $this->installModule('acquia_dam'); $this->container->get('module_handler')->loadInclude('acquia_dam', 'install'); acquia_dam_install(FALSE); // For the media library display view config. $this->installConfig(['media_library', 'acquia_dam']); foreach ($configuration_map as $config) { $config_array[$config] = $this->config($config)->get(); } self::assertEquals(5, count(MediaType::loadMultiple())); $media_storage = $this->entityTypeManager->getStorage('media_type'); $media_storage->load('acquia_dam_image_asset')->delete(); $media_storage->load('acquia_dam_spinset_asset')->delete(); $media_storage->load('acquia_dam_documents_asset')->delete(); foreach ($configuration_map as $config) { self::assertEmpty($this->config($config)->get()); } self::assertEquals(2, count(MediaType::loadMultiple())); acquia_dam_update_9001(); self::assertEquals(5, count(MediaType::loadMultiple())); foreach ($configuration_map as $config) { $new_config = $this->config($config)->get(); unset($new_config['uuid']); unset($config_array[$config]['uuid']); unset($config_array[$config]['_core']); self::assertEquals($config_array[$config], $new_config); } } }