mirror of
https://github.com/PHPOffice/PhpSpreadsheet.git
synced 2026-09-02 05:27:44 +00:00
Bug in Uncovered Code in XMLWriter
Add test, fix bug.
This commit is contained in:
@@ -39,6 +39,7 @@ class XMLWriter extends \XMLWriter
|
||||
if (empty($this->tempFileName) || $this->openUri($this->tempFileName) === false) {
|
||||
// Fallback to memory...
|
||||
$this->openMemory();
|
||||
$this->tempFileName = '';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace PhpOffice\PhpSpreadsheetTests\Shared;
|
||||
|
||||
class XMLWriterNoUri extends \PhpOffice\PhpSpreadsheet\Shared\XMLWriter
|
||||
{
|
||||
public function openUri(string $uri): bool
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -83,4 +83,28 @@ class XmlWriterTest extends TestCase
|
||||
$expected .= '</root>' . $indentnl;
|
||||
self::assertSame($expected, $objWriter->getData());
|
||||
}
|
||||
|
||||
public function testFallbackToMemory(): void
|
||||
{
|
||||
XMLWriter::$debugEnabled = false;
|
||||
$indent = '';
|
||||
$indentnl = '';
|
||||
$objWriter = new XMLWriterNoUri(XMLWriter::STORAGE_DISK);
|
||||
$objWriter->startDocument('1.0', 'UTF-8', 'yes');
|
||||
$expected = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>' . "\n";
|
||||
$objWriter->startElement('root');
|
||||
$expected .= '<root>' . $indentnl;
|
||||
$objWriter->startElement('node');
|
||||
$expected .= $indent . '<node>';
|
||||
$objWriter->writeRawData('xyz');
|
||||
$expected .= 'xyz';
|
||||
$objWriter->writeRawData(null);
|
||||
$objWriter->writeRawData(['12', '34', '5']);
|
||||
$expected .= "12\n34\n5";
|
||||
$objWriter->endElement(); // node
|
||||
$expected .= '</node>' . $indentnl;
|
||||
$objWriter->endElement(); // root
|
||||
$expected .= '</root>' . $indentnl;
|
||||
self::assertSame($expected, $objWriter->getData());
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user