diff --git a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php index c901b85c11e..1ac4a1b9e58 100644 --- a/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php +++ b/core/modules/migrate_drupal/src/Plugin/migrate/source/Variable.php @@ -60,7 +60,8 @@ class Variable extends DrupalSqlBase { * {@inheritdoc} */ public function count($refresh = FALSE) { - return intval($this->query()->countQuery()->execute()->fetchField() > 0); + // Variable always returns a single row with at minimum an 'id' property. + return 1; } /** diff --git a/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/VariableTest.php b/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/VariableTest.php index b68c4b467b3..1a52b1df30d 100644 --- a/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/VariableTest.php +++ b/core/modules/migrate_drupal/tests/src/Kernel/Plugin/migrate/source/VariableTest.php @@ -48,6 +48,42 @@ class VariableTest extends MigrateSqlSourceTestBase { 'bar', ]; + // Tests getting one of two variables. + $tests[1]['source_data']['variable'] = [ + ['name' => 'foo', 'value' => 'i:1;'], + ['name' => 'bar', 'value' => 'b:0;'], + ]; + + $tests[1]['expected_data'] = [ + [ + 'id' => 'foo', + 'foo' => 1, + ], + ]; + + $tests[1]['expected_count'] = NULL; + + $tests[1]['configuration']['variables'] = [ + 'foo', + 'bar0', + ]; + + // Tests requesting mis-spelled variable names. + $tests[2]['source_data']['variable'] = [ + ['name' => 'foo', 'value' => 'i:1;'], + ['name' => 'bar', 'value' => 'b:0;'], + ]; + $tests[2]['expected_data'] = [ + [ + 'id' => 'foo0', + ], + ]; + $tests[2]['expected_count'] = NULL; + $tests[2]['configuration']['variables'] = [ + 'foo0', + 'bar0', + ]; + return $tests; }