Skip to content
Snippets Groups Projects
Verified Commit 03bdeb1d authored by Alex Pott's avatar Alex Pott
Browse files

Issue #3283498 by Mile23, alexpott: Scaffold ReplaceOp::copyScaffold() throws...

Issue #3283498 by Mile23, alexpott: Scaffold ReplaceOp::copyScaffold() throws an error for empty files

(cherry picked from commit fc14cbc6)
parent 8f20f776
No related branches found
No related tags found
21 merge requests!8357Issue #2994000 by Lendude, Pasqualle, quietone, pameeela: Notice in logs when...,!4488Issue #3376281: Random machine names no longer need to be wrapped in strtolower(),!3149Issue #3282285: Email "" does not comply with addr-spec of RFC 2822,!3000Issue #793660: Check for failure of hook_install,!2940Issue #3320240: Entity count query returns a string instead of int,!2937Issue #3315245: Order of languages overrides default language fallback,!2877Issue #3056652 by yogeshmpawar, mashermike, aalin, ranjith_kumar_k_u: Link...,!2804URL of image field formatter use absolute URL option.,!2749Issue #3309024: Focus on the wrong submit button after AJAX submit,!2692Issue #3284010 by _shY, mherchel, Abhijith S: "Create content" link within...,!2608Issue #2430379 by quietone, znerol, larowlan: Add explicit test for session...,!2575Issue #3198340 by alexpott, xjm, cilefen, Mile23, mmjvb, catch, longwave, mfb,...,!2555Issue #3277148 by rpayanm, andregp, joachim, Farnoosh, Athrylith, Jingting:...,!2554Issue #3277148 by rpayanm, andregp, joachim, Farnoosh, Athrylith, Jingting:...,!2539Issue #3299806 by BenStallings: Include uuid field in d7_node migration, if present.,!2453Issue #332796 by voleger, dww, Steve Dondley, ykhadilkar, Dave Reid,...,!2426Issue #3278314 by acbramley: InlineBlockUsageInterface::getUsage can return...,!1627Issue #3082958: Add gitignore(s) to composer-ready project templates,!1014Issue #3226806: Move filter implementations from filter.module to plugin classes,!939Issue #2971209: Allow the MediaLibraryUiBuilder service to use an alternative view display,!88Issue #3163299: Ajax exposed filters not working for multiple instances of the same Views block placed on one page
......@@ -92,8 +92,7 @@ public function process(ScaffoldFilePath $destination, IOInterface $io, Scaffold
protected function copyScaffold(ScaffoldFilePath $destination, IOInterface $io) {
$interpolator = $destination->getInterpolator();
$this->source->addInterpolationData($interpolator);
$success = file_put_contents($destination->fullPath(), $this->contents());
if (!$success) {
if (file_put_contents($destination->fullPath(), $this->contents()) === FALSE) {
throw new \RuntimeException($interpolator->interpolate("Could not copy source file <info>[src-rel-path]</info> to <info>[dest-rel-path]</info>!"));
}
$io->write($interpolator->interpolate(" - Copy <info>[dest-rel-path]</info> from <info>[src-rel-path]</info>"));
......
......@@ -39,4 +39,26 @@ public function testProcess() {
$this->assertStringContainsString('Copy [web-root]/robots.txt from assets/robots.txt', $output);
}
/**
* @covers ::process
*/
public function testEmptyFile() {
$fixtures = new Fixtures();
$destination = $fixtures->destinationPath('[web-root]/empty_file.txt');
$source = $fixtures->sourcePath('empty-file', 'empty_file.txt');
$options = ScaffoldOptions::create([]);
$sut = new ReplaceOp($source, TRUE);
// Assert that there is no target file before we run our test.
$this->assertFileDoesNotExist($destination->fullPath());
// Test the system under test.
$sut->process($destination, $fixtures->io(), $options);
// Assert that the target file was created.
$this->assertFileExists($destination->fullPath());
// Assert the target contained the contents from the correct scaffold file.
$this->assertSame('', file_get_contents($destination->fullPath()));
// Confirm that expected output was written to our io fixture.
$output = $fixtures->getOutput();
$this->assertStringContainsString('Copy [web-root]/empty_file.txt from assets/empty_file.txt', $output);
}
}
{
"name": "fixtures/empty-file",
"extra": {
"drupal-scaffold": {
"file-mapping": {
"[web-root]/empty_file.txt": "assets/empty_file.txt"
}
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment