Skip to content
Snippets Groups Projects
Verified Commit 978e4b52 authored by Lee Rowlands's avatar Lee Rowlands
Browse files

Issue #3028621 by jungle, John Cook: BatchBuilder included files fails

(cherry picked from commit ad50981a)
parent af6fc3f5
No related branches found
No related tags found
9 merge requests!1445Issue #2920039: Views' User Name exposed group filter validation,!1298Issue #3240993: Let layout builder render inline block translations,!774Issue #3174569: Example node template file name is incorrect,!497Issue #2463967: Use .user.ini file for PHP settings,!433Resolve #3163663 "Too many open files",!233Resolve #2693787 "Taxonomy term name",!133Resolve #2666286 "Clean up menuui",!112Resolve #3187004 "Drupaldatetime serialization issue",!53Resolve #3181870: Correct typo "the the" in "core/classList" deprecation message.
...@@ -205,12 +205,18 @@ public function setErrorMessage($message) { ...@@ -205,12 +205,18 @@ public function setErrorMessage($message) {
* The path should be relative to base_path(), and thus should be built using * The path should be relative to base_path(), and thus should be built using
* drupal_get_path(). Defaults to {module_name}.module. * drupal_get_path(). Defaults to {module_name}.module.
* *
* The file needs to be set before using ::addOperation(),
* ::setFinishCallback(), or any other function that uses callbacks from the
* file. This is so that PHP knows about the included functions.
*
* @param string $filename * @param string $filename
* The path to the file. * The path to the file.
* *
* @return $this * @return $this
*/ */
public function setFile($filename) { public function setFile($filename) {
include_once $filename;
$this->file = $filename; $this->file = $filename;
return $this; return $this;
} }
......
...@@ -113,11 +113,20 @@ public function testSetErrorMessage() { ...@@ -113,11 +113,20 @@ public function testSetErrorMessage() {
* @covers ::setFile * @covers ::setFile
*/ */
public function testSetFile() { public function testSetFile() {
$filename = dirname(__DIR__, 6) . '/core/modules/system/tests/modules/batch_test/batch_test.callbacks.inc';
$this->assertIsNotCallable('_batch_test_callback_1');
$this->assertIsNotCallable('_batch_test_finished_1');
$batch = (new BatchBuilder()) $batch = (new BatchBuilder())
->setFile('filename.php') ->setFile($filename)
->setFinishCallback('_batch_test_finished_1')
->addOperation('_batch_test_callback_1', [])
->toArray(); ->toArray();
$this->assertEquals($filename, $batch['file']);
$this->assertEquals('filename.php', $batch['file']); $this->assertEquals([['_batch_test_callback_1', []]], $batch['operations']);
$this->assertEquals('_batch_test_finished_1', $batch['finished']);
$this->assertIsCallable('_batch_test_callback_1');
$this->assertIsCallable('_batch_test_finished_1');
} }
/** /**
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment