From d16f491577d13143386cf91ba04131bcd9923a3d Mon Sep 17 00:00:00 2001
From: catch <catch@35733.no-reply.drupal.org>
Date: Tue, 19 Dec 2023 14:49:38 +0000
Subject: [PATCH] Issue #3371219 by quietone, smustgrave: Remove forum from
 block migration tests

---
 .../d6/MigrateBlockContentTranslationTest.php |   1 -
 .../Kernel/Migrate/d6/MigrateBlockTest.php    |  19 +--
 .../d7/MigrateBlockContentTranslationTest.php |   1 -
 .../Kernel/Migrate/d6/MigrateBlockTest.php    | 129 ++++++++++++++++++
 4 files changed, 136 insertions(+), 14 deletions(-)
 create mode 100644 core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php

diff --git a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php
index 1f20809de72d..2173a8ae6e07 100644
--- a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php
+++ b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockContentTranslationTest.php
@@ -18,7 +18,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal6TestBase {
     'book',
     'block',
     'comment',
-    'forum',
     'views',
     'block_content',
     'config_translation',
diff --git a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php
index b138ee94fbe5..b55d0757944f 100644
--- a/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php
+++ b/core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php
@@ -23,7 +23,6 @@ class MigrateBlockTest extends MigrateDrupal6TestBase {
     'block_content',
     'taxonomy',
     'node',
-    'forum',
     'path_alias',
     'statistics',
   ];
@@ -216,26 +215,20 @@ public function testBlockMigration() {
 
     // Check forum block settings.
     $settings = [
-      'id' => 'forum_active_block',
+      'id' => 'broken',
       'label' => '',
-      'provider' => 'forum',
+      'provider' => 'core',
       'label_display' => '0',
       'block_count' => 3,
-      'properties' => [
-        'administrative' => '1',
-      ],
     ];
     $this->assertEntity('forum', [], 'sidebar', 'olivero', -8, $settings);
 
     $settings = [
-      'id' => 'forum_new_block',
+      'id' => 'broken',
       'label' => '',
-      'provider' => 'forum',
+      'provider' => 'core',
       'label_display' => '0',
       'block_count' => 4,
-      'properties' => [
-        'administrative' => '1',
-      ],
     ];
     $this->assertEntity('forum_1', [], 'sidebar', 'olivero', -9, $settings);
 
@@ -307,11 +300,13 @@ public function testBlockMigration() {
 
     // Check migrate messages.
     $messages = iterator_to_array($this->getMigration('d6_block')->getIdMap()->getMessages());
-    $this->assertCount(4, $messages);
+    $this->assertCount(6, $messages);
     $this->assertSame($messages[0]->message, 'Schema errors for block.block.block_1 with the following errors: 0 [dependencies.theme.0] Theme &#039;bluemarine&#039; is not installed.');
     $this->assertSame($messages[1]->message, "d6_block:visibility: The block with bid '13' from module 'block' will have no PHP or request_path visibility configuration.");
     $this->assertSame($messages[2]->message, 'Schema errors for block.block.aggregator with the following errors: block.block.aggregator:settings.block_count missing schema, block.block.aggregator:settings.feed missing schema, 0 [settings.block_count] &#039;block_count&#039; is not a supported key., 1 [settings.feed] &#039;feed&#039; is not a supported key.');
     $this->assertSame($messages[3]->message, 'Schema errors for block.block.book with the following errors: block.block.book:settings.block_mode missing schema, 0 [settings.block_mode] &#039;block_mode&#039; is not a supported key.');
+    $this->assertSame('Schema errors for block.block.forum with the following errors: block.block.forum:settings.block_count missing schema, 0 [settings.block_count] &#039;block_count&#039; is not a supported key.', $messages[4]->message);
+    $this->assertSame('Schema errors for block.block.forum_1 with the following errors: block.block.forum_1:settings.block_count missing schema, 0 [settings.block_count] &#039;block_count&#039; is not a supported key.', $messages[5]->message);
   }
 
 }
diff --git a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
index 5c9d8153acaa..3436736c7f38 100644
--- a/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
+++ b/core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockContentTranslationTest.php
@@ -21,7 +21,6 @@ class MigrateBlockContentTranslationTest extends MigrateDrupal7TestBase {
     'block',
     'comment',
     'filter',
-    'forum',
     'views',
     'block_content',
     'config_translation',
diff --git a/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php
new file mode 100644
index 000000000000..d018716c62ca
--- /dev/null
+++ b/core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php
@@ -0,0 +1,129 @@
+<?php
+
+namespace Drupal\Tests\forum\Kernel\Migrate\d6;
+
+use Drupal\block\Entity\Block;
+use Drupal\Tests\migrate_drupal\Kernel\d6\MigrateDrupal6TestBase;
+
+/**
+ * Tests migration of forum blocks.
+ *
+ * @group forum
+ */
+class MigrateBlockTest extends MigrateDrupal6TestBase {
+
+  /**
+   * {@inheritdoc}
+   */
+  protected static $modules = [
+    'block',
+    'block_content',
+    'comment',
+    'forum',
+    'node',
+    'path_alias',
+    'taxonomy',
+  ];
+
+  /**
+   * {@inheritdoc}
+   */
+  protected function setUp(): void {
+    parent::setUp();
+
+    // Install the themes used for this test.
+    $this->installEntitySchema('block_content');
+    $this->container->get('theme_installer')->install(['olivero', 'test_theme']);
+
+    $this->installConfig(['block_content']);
+
+    // Set Olivero as the default public theme.
+    $config = $this->config('system.theme');
+    $config->set('default', 'olivero');
+    $config->save();
+
+    $this->executeMigrations([
+      'd6_filter_format',
+      'block_content_type',
+      'block_content_body_field',
+      'd6_custom_block',
+      'd6_user_role',
+      'd6_block',
+    ]);
+    block_rebuild();
+  }
+
+  /**
+   * Gets the path to the fixture file.
+   */
+  protected function getFixtureFilePath() {
+    return __DIR__ . '/../../../../fixtures/drupal6.php';
+  }
+
+  /**
+   * Asserts various aspects of a block.
+   *
+   * @param string $id
+   *   The block ID.
+   * @param array $visibility
+   *   The block visibility settings.
+   * @param string $region
+   *   The display region.
+   * @param string $theme
+   *   The theme.
+   * @param int $weight
+   *   The block weight.
+   * @param array $settings
+   *   (optional) The block settings.
+   * @param bool $status
+   *   Whether the block is expected to be enabled or disabled.
+   *
+   * @internal
+   */
+  public function assertEntity(string $id, array $visibility, string $region, string $theme, int $weight, array $settings = [], bool $status = TRUE): void {
+    $block = Block::load($id);
+    $this->assertInstanceOf(Block::class, $block);
+    $this->assertSame($visibility, $block->getVisibility());
+    $this->assertSame($region, $block->getRegion());
+    $this->assertSame($theme, $block->getTheme());
+    $this->assertSame($weight, $block->getWeight());
+    $this->assertSame($status, $block->status());
+    if ($settings) {
+      $block_settings = $block->get('settings');
+      $block_settings['id'] = current(explode(':', $block_settings['id']));
+      $this->assertEquals($settings, $block_settings);
+    }
+  }
+
+  /**
+   * Tests the block migration.
+   */
+  public function testBlockMigration() {
+
+    // Check forum block settings.
+    $settings = [
+      'id' => 'forum_active_block',
+      'label' => '',
+      'provider' => 'forum',
+      'label_display' => '0',
+      'block_count' => 3,
+      'properties' => [
+        'administrative' => '1',
+      ],
+    ];
+    $this->assertEntity('forum', [], 'sidebar', 'olivero', -8, $settings);
+
+    $settings = [
+      'id' => 'forum_new_block',
+      'label' => '',
+      'provider' => 'forum',
+      'label_display' => '0',
+      'block_count' => 4,
+      'properties' => [
+        'administrative' => '1',
+      ],
+    ];
+    $this->assertEntity('forum_1', [], 'sidebar', 'olivero', -9, $settings);
+  }
+
+}
-- 
GitLab