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) {
* The path should be relative to base_path(), and thus should be built using
* 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
* The path to the file.
*
* @return $this
*/
public function setFile($filename) {
include_once $filename;
$this->file = $filename;
return $this;
}
......
......@@ -113,11 +113,20 @@ public function testSetErrorMessage() {
* @covers ::setFile
*/
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())
->setFile('filename.php')
->setFile($filename)
->setFinishCallback('_batch_test_finished_1')
->addOperation('_batch_test_callback_1', [])
->toArray();
$this->assertEquals('filename.php', $batch['file']);
$this->assertEquals($filename, $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