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 c901b85c11e8f1cf7acc7e13859cbf68a363f4d9..1ac4a1b9e58943abbbea190a8fccca8342a38f34 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 @@ protected function values() { * {@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 b68c4b467b35795646126fd7d900dc9f2fb96870..1a52b1df30de980efd6d1b33e4662993114cb734 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 @@ public function providerSource() { '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; }