function MigrateBlockTest::testBlockMigration

Same name in this branch
  1. 8.9.x core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d7\MigrateBlockTest::testBlockMigration()
Same name in other branches
  1. 9 core/modules/aggregator/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\aggregator\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  2. 9 core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  3. 9 core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d7\MigrateBlockTest::testBlockMigration()
  4. 10 core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\forum\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  5. 10 core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  6. 10 core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d7\MigrateBlockTest::testBlockMigration()
  7. 11.x core/modules/forum/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\forum\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  8. 11.x core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d6\MigrateBlockTest::testBlockMigration()
  9. 11.x core/modules/block/tests/src/Kernel/Migrate/d7/MigrateBlockTest.php \Drupal\Tests\block\Kernel\Migrate\d7\MigrateBlockTest::testBlockMigration()

Tests the block migration.

File

core/modules/block/tests/src/Kernel/Migrate/d6/MigrateBlockTest.php, line 97

Class

MigrateBlockTest
Tests migration of blocks to configuration entities.

Namespace

Drupal\Tests\block\Kernel\Migrate\d6

Code

public function testBlockMigration() {
    $blocks = Block::loadMultiple();
    $this->assertCount(14, $blocks);
    // Check user blocks.
    $visibility = [
        'request_path' => [
            'id' => 'request_path',
            'negate' => TRUE,
            'pages' => "<front>\n/node/1\n/blog/*",
        ],
    ];
    $settings = [
        'id' => 'user_login_block',
        'label' => '',
        'provider' => 'user',
        'label_display' => '0',
    ];
    $this->assertEntity('user', $visibility, 'sidebar_first', 'bartik', -10, $settings);
    $visibility = [];
    $settings = [
        'id' => 'system_menu_block',
        'label' => 'zu - Navigation',
        'provider' => 'system',
        'label_display' => 'visible',
        'level' => 1,
        'expand_all_items' => FALSE,
        'depth' => 0,
    ];
    $this->assertEntity('user_1', $visibility, 'sidebar_first', 'bartik', -11, $settings);
    $visibility = [
        'user_role' => [
            'id' => 'user_role',
            'roles' => [
                'authenticated' => 'authenticated',
            ],
            'context_mapping' => [
                'user' => '@user.current_user_context:current_user',
            ],
            'negate' => FALSE,
        ],
    ];
    $settings = [
        'id' => 'broken',
        'label' => '',
        'provider' => 'core',
        'label_display' => '0',
        'items_per_page' => '5',
    ];
    $this->assertEntity('user_2', $visibility, 'sidebar_second', 'bartik', -11, $settings);
    $visibility = [
        'user_role' => [
            'id' => 'user_role',
            'roles' => [
                'migrate_test_role_1' => 'migrate_test_role_1',
            ],
            'context_mapping' => [
                'user' => '@user.current_user_context:current_user',
            ],
            'negate' => FALSE,
        ],
    ];
    $settings = [
        'id' => 'broken',
        'label' => '',
        'provider' => 'core',
        'label_display' => '0',
        'items_per_page' => '10',
    ];
    $this->assertEntity('user_3', $visibility, 'sidebar_second', 'bartik', -10, $settings);
    // Check system block.
    $visibility = [
        'request_path' => [
            'id' => 'request_path',
            'negate' => TRUE,
            'pages' => '/node/1',
        ],
    ];
    $settings = [
        'id' => 'system_powered_by_block',
        'label' => '',
        'provider' => 'system',
        'label_display' => '0',
    ];
    $this->assertEntity('system', $visibility, 'footer_fifth', 'bartik', -5, $settings);
    // Check menu blocks.
    $settings = [
        'id' => 'broken',
        'label' => '',
        'provider' => 'core',
        'label_display' => '0',
    ];
    $this->assertEntity('menu', [], 'header', 'bartik', -5, $settings);
    // Check aggregator block.
    $settings = [
        'id' => 'aggregator_feed_block',
        'label' => '',
        'provider' => 'aggregator',
        'label_display' => '0',
        'block_count' => 7,
        'feed' => '5',
    ];
    $this->assertEntity('aggregator', [], 'sidebar_second', 'bartik', -2, $settings);
    // Check book block.
    $settings = [
        'id' => 'book_navigation',
        'label' => '',
        'provider' => 'book',
        'label_display' => '0',
        'block_mode' => 'book pages',
    ];
    $this->assertEntity('book', [], 'sidebar_second', 'bartik', -4, $settings);
    // 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_first', 'bartik', -8, $settings);
    $settings = [
        'id' => 'forum_new_block',
        'label' => '',
        'provider' => 'forum',
        'label_display' => '0',
        'block_count' => 4,
        'properties' => [
            'administrative' => '1',
        ],
    ];
    $this->assertEntity('forum_1', [], 'sidebar_first', 'bartik', -9, $settings);
    // Check statistic block settings.
    $settings = [
        'id' => 'broken',
        'label' => '',
        'provider' => 'core',
        'label_display' => '0',
        'top_day_num' => 7,
        'top_all_num' => 8,
        'top_last_num' => 9,
    ];
    $this->assertEntity('statistics', [], 'sidebar_second', 'bartik', 0, $settings);
    // Check custom blocks.
    $visibility = [
        'request_path' => [
            'id' => 'request_path',
            'negate' => FALSE,
            'pages' => '<front>',
        ],
    ];
    $settings = [
        'id' => 'block_content',
        'label' => 'Static Block',
        'provider' => 'block_content',
        'label_display' => 'visible',
        'status' => TRUE,
        'info' => '',
        'view_mode' => 'full',
    ];
    $this->assertEntity('block', $visibility, 'content', 'bartik', 0, $settings);
    $visibility = [
        'request_path' => [
            'id' => 'request_path',
            'negate' => FALSE,
            'pages' => '/node',
        ],
    ];
    $settings = [
        'id' => 'block_content',
        'label' => 'Another Static Block',
        'provider' => 'block_content',
        'label_display' => 'visible',
        'status' => TRUE,
        'info' => '',
        'view_mode' => 'full',
    ];
    // We expect this block to be disabled because '' is not a valid region,
    // and block_rebuild() will disable any block in an invalid region.
    $this->assertEntity('block_1', $visibility, '', 'bluemarine', -4, $settings, FALSE);
    $settings = [
        'id' => 'block_content',
        'label' => '',
        'provider' => 'block_content',
        'label_display' => '0',
        'status' => TRUE,
        'info' => '',
        'view_mode' => 'full',
    ];
    $this->assertEntity('block_2', [], 'right', 'test_theme', -7, $settings);
    // Custom block with php code is not migrated.
    $block = Block::load('block_3');
    $this->assertNotInstanceOf(Block::class, $block);
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.