Unverified Commit f63bd1c6 authored by larowlan's avatar larowlan

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

(cherry picked from commit ad50981a)
parent 11ddd4c0
...@@ -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');
} }
/** /**
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment