function MenuLinkTest::providerSource

Same name in other branches
  1. 9 core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php \Drupal\Tests\menu_link_content\Kernel\Plugin\migrate\source\MenuLinkTest::providerSource()
  2. 10 core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php \Drupal\Tests\menu_link_content\Kernel\Plugin\migrate\source\MenuLinkTest::providerSource()
  3. 11.x core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php \Drupal\Tests\menu_link_content\Kernel\Plugin\migrate\source\MenuLinkTest::providerSource()

Overrides MigrateSourceTestBase::providerSource

File

core/modules/menu_link_content/tests/src/Kernel/Plugin/migrate/source/MenuLinkTest.php, line 25

Class

MenuLinkTest
Tests the menu link source plugin.

Namespace

Drupal\Tests\menu_link_content\Kernel\Plugin\migrate\source

Code

public function providerSource() {
    $tests = [];
    // The source data.
    $tests[0]['source_data']['menu_links'] = [
        [
            // Customized menu link, provided by system module.
'menu_name' => 'menu-test-menu',
            'mlid' => 140,
            'plid' => 0,
            'link_path' => 'admin/config/system/cron',
            'router_path' => 'admin/config/system/cron',
            'link_title' => 'Cron',
            'options' => [],
            'module' => 'system',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 0,
            'expanded' => 0,
            'weight' => 0,
            'depth' => 0,
            'customized' => 1,
            'p1' => '0',
            'p2' => '0',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => '',
        ],
        [
            // D6 customized menu link, provided by menu module.
'menu_name' => 'menu-test-menu',
            'mlid' => 141,
            'plid' => 0,
            'link_path' => 'node/141',
            'router_path' => 'node/%',
            'link_title' => 'Node 141',
            'options' => [],
            'module' => 'menu',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 0,
            'expanded' => 0,
            'weight' => 0,
            'depth' => 0,
            'customized' => 1,
            'p1' => '0',
            'p2' => '0',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => '',
        ],
        [
            // D6 non-customized menu link, provided by menu module.
'menu_name' => 'menu-test-menu',
            'mlid' => 142,
            'plid' => 0,
            'link_path' => 'node/142',
            'router_path' => 'node/%',
            'link_title' => 'Node 142',
            'options' => [],
            'module' => 'menu',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 0,
            'expanded' => 0,
            'weight' => 0,
            'depth' => 0,
            'customized' => 0,
            'p1' => '0',
            'p2' => '0',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => '',
        ],
        [
            'menu_name' => 'menu-test-menu',
            'mlid' => 138,
            'plid' => 0,
            'link_path' => 'admin',
            'router_path' => 'admin',
            'link_title' => 'Test 1',
            'options' => [
                'attributes' => [
                    'title' => 'Test menu link 1',
                ],
            ],
            'module' => 'menu',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 1,
            'expanded' => 0,
            'weight' => 15,
            'depth' => 1,
            'customized' => 1,
            'p1' => '138',
            'p2' => '0',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => 'Test menu link 1',
        ],
        [
            'menu_name' => 'menu-test-menu',
            'mlid' => 139,
            'plid' => 138,
            'link_path' => 'admin/modules',
            'router_path' => 'admin/modules',
            'link_title' => 'Test 2',
            'options' => [
                'attributes' => [
                    'title' => 'Test menu link 2',
                ],
            ],
            'module' => 'menu',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 0,
            'expanded' => 0,
            'weight' => 12,
            'depth' => 2,
            'customized' => 1,
            'p1' => '138',
            'p2' => '139',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => 'Test menu link 2',
        ],
        [
            'menu_name' => 'menu-user',
            'mlid' => 143,
            'plid' => 0,
            'link_path' => 'admin/build/menu-customize/navigation',
            'router_path' => 'admin/build/menu-customize/%',
            'link_title' => 'Navigation',
            'options' => [],
            'module' => 'menu',
            'hidden' => 0,
            'external' => 0,
            'has_children' => 0,
            'expanded' => 0,
            'weight' => 0,
            'depth' => 0,
            'customized' => 0,
            'p1' => '0',
            'p2' => '0',
            'p3' => '0',
            'p4' => '0',
            'p5' => '0',
            'p6' => '0',
            'p7' => '0',
            'p8' => '0',
            'p9' => '0',
            'updated' => '0',
            'description' => '',
        ],
    ];
    // Add long link title attributes to source data.
    $title = $this->getRandomGenerator()
        ->string('500');
    $tests[0]['source_data']['menu_links'][0]['options']['attributes']['title'] = $title;
    // Build the expected results.
    $expected = $tests[0]['source_data']['menu_links'];
    // Add long link title attributes to expected results.
    $expected[0]['description'] = Unicode::truncate($title, 255);
    // Don't expect D6 menu link to a custom menu, provided by menu module.
    unset($expected[5]);
    array_walk($tests[0]['source_data']['menu_links'], function (&$row) {
        $row['options'] = serialize($row['options']);
    });
    $tests[0]['expected_data'] = $expected;
    return $tests;
}

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