/** * Template can be saved in temporary location * * @covers ::save * @test */ public final function testTemplateCanBeSavedInTemporaryLocation() { $templateFqfn = __DIR__ . "/_files/templates/with_table_macros.docx"; $document = new Template($templateFqfn); $xslDOMDocument = new \DOMDocument(); $xslDOMDocument->load(__DIR__ . "/_files/xsl/remove_tables_by_needle.xsl"); foreach (array('${employee.', '${scoreboard.') as $needle) { $document->applyXslStyleSheet($xslDOMDocument, array('needle' => $needle)); } $documentFqfn = $document->save(); $this->assertNotEmpty($documentFqfn, 'FQFN of the saved document is empty.'); $this->assertFileExists($documentFqfn, "The saved document \"{$documentFqfn}\" doesn't exist."); $templateZip = new \ZipArchive(); $templateZip->open($templateFqfn); $templateXml = $templateZip->getFromName('word/document.xml'); if ($templateZip->close() === false) { throw new \Exception("Could not close zip file \"{$templateZip}\"."); } $documentZip = new \ZipArchive(); $documentZip->open($documentFqfn); $documentXml = $documentZip->getFromName('word/document.xml'); if ($documentZip->close() === false) { throw new \Exception("Could not close zip file \"{$documentZip}\"."); } $this->assertNotEquals($documentXml, $templateXml); return $documentFqfn; }