entity_hierarchy-8.x-2.24/modules/entity_hierarchy_microsite/tests/src/Functional/GenerateMenuUpgradePathTest.php
modules/entity_hierarchy_microsite/tests/src/Functional/GenerateMenuUpgradePathTest.php
<?php
declare(strict_types=1);
namespace Drupal\Tests\entity_hierarchy_microsite\Functional;
use Composer\Semver\Semver;
use Drupal\entity_hierarchy_microsite\Entity\Microsite;
use Drupal\FunctionalTests\Update\UpdatePathTestBase;
/**
* Defines a class for testing update path.
*
* @group entity_hierarchy
* @group entity_hierarchy_microsite
*/
final class GenerateMenuUpgradePathTest extends UpdatePathTestBase {
/**
* {@inheritdoc}
*/
protected function setDatabaseDumpFiles(): void {
$this->databaseDumpFiles = [
dirname(__DIR__, 2) . '/fixtures/3284026-dump.sql.gz',
];
}
/**
* Tests update path.
*/
public function testUpdatePath(): void {
if (Semver::satisfies(\Drupal::VERSION, '>=11')) {
$this->markTestSkipped('This test is only for Drupal 10');
}
$microsites = Microsite::loadMultiple();
$microsite = reset($microsites);
$this->assertEquals('Grandparent', $microsite->label());
$items = \Drupal::database()->select('menu_tree', 'mt')
->fields('mt', ['discovered', 'title'])
->condition('menu_name', 'entity-hierarchy-microsite')
->execute()
->fetchAllAssoc('title');
$items = array_combine(array_map(function (string $key) {
return unserialize($key, ['allowed_classes' => FALSE]);
}, array_keys($items)), array_map(function ($row) {
return $row->discovered;
}, $items));
$this->assertEquals([
'Grandparent' => 0,
'Parent' => 0,
'Child' => 0,
'Manual link' => 0,
], $items);
$this->runUpdates();
$microsite = \Drupal::entityTypeManager()->getStorage('entity_hierarchy_microsite')->loadUnchanged($microsite->id());
$this->assertTrue($microsite->shouldGenerateMenu());
$items = \Drupal::database()->select('menu_tree', 'mt')
->fields('mt', ['discovered', 'title'])
->condition('menu_name', 'entity-hierarchy-microsite')
->execute()
->fetchAllAssoc('title');
$items = array_combine(array_map(function (string $key) {
return unserialize($key, ['allowed_classes' => FALSE]);
}, array_keys($items)), array_map(function ($row) {
return $row->discovered;
}, $items));
$this->assertEquals([
'Grandparent' => 1,
'Parent' => 1,
'Manual link' => 1,
], $items);
}
}
