From a2366e9ddf135827265481e7a9a3c94df2ea26da Mon Sep 17 00:00:00 2001 From: Roman Syroeshko Date: Wed, 12 Mar 2014 20:09:10 +0400 Subject: [PATCH 1/4] https://github.com/PHPOffice/PHPWord/issues/43 Unit test for PHPWord_Template.save() method. --- Tests/PHPWord/TemplateTest.php | 54 ++++++++++++++++++++++++++-------- 1 file changed, 41 insertions(+), 13 deletions(-) diff --git a/Tests/PHPWord/TemplateTest.php b/Tests/PHPWord/TemplateTest.php index 65db985082..7bb0b9531d 100644 --- a/Tests/PHPWord/TemplateTest.php +++ b/Tests/PHPWord/TemplateTest.php @@ -6,21 +6,20 @@ /** * @coversDefaultClass PHPWord_Template */ -class TemplateTest extends \PHPUnit_Framework_TestCase +final class TemplateTest extends \PHPUnit_Framework_TestCase { /** - * @covers ::applyXslStyleSheet + * @covers ::save * @test */ - final public function testXslStyleSheetCanBeApplied() + final public function testTemplateCanBeSavedInTemporaryLocation() { - $template = new PHPWord_Template( - \join( - \DIRECTORY_SEPARATOR, - array(\PHPWORD_TESTS_DIR_ROOT, '_files', 'templates', 'with_table_macros.docx') - ) + $templateFqfn = \join( + \DIRECTORY_SEPARATOR, + array(\PHPWORD_TESTS_DIR_ROOT, '_files', 'templates', 'with_table_macros.docx') ); + $document = new PHPWord_Template($templateFqfn); $xslDOMDocument = new \DOMDocument(); $xslDOMDocument->load( \join( @@ -28,12 +27,41 @@ final public function testXslStyleSheetCanBeApplied() array(\PHPWORD_TESTS_DIR_ROOT, '_files', 'xsl', 'remove_tables_by_needle.xsl') ) ); - foreach (array('${employee.', '${scoreboard.') as $needle) { - $template->applyXslStyleSheet($xslDOMDocument, array('needle' => $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}\"."); } - $actualDocument = $template->save(); + $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 $document; + } + + /** + * @covers ::applyXslStyleSheet + * @depends testTemplateCanBeSavedInTemporaryLocation + * @test + */ + final public function testXslStyleSheetCanBeApplied(&$actualDocument) + { $expectedDocument = \join( \DIRECTORY_SEPARATOR, array(\PHPWORD_TESTS_DIR_ROOT, '_files', 'documents', 'without_table_macros.docx') @@ -43,14 +71,14 @@ final public function testXslStyleSheetCanBeApplied() $actualZip->open($actualDocument); $actualXml = $actualZip->getFromName('word/document.xml'); if ($actualZip->close() === false) { - throw new \Exception('Could not close zip file "' . $actualDocument . '".'); + throw new \Exception("Could not close zip file \"{$actualDocument}\"."); } $expectedZip = new \ZipArchive(); $expectedZip->open($expectedDocument); $expectedXml = $expectedZip->getFromName('word/document.xml'); if ($expectedZip->close() === false) { - throw new \Exception('Could not close zip file "' . $expectedDocument . '".'); + throw new \Exception("Could not close zip file \"{$expectedDocument}\"."); } $this->assertXmlStringEqualsXmlString($expectedXml, $actualXml); From 36c03d4f157ccce8c293eab5a280aa163dcfd98e Mon Sep 17 00:00:00 2001 From: Roman Syroeshko Date: Wed, 12 Mar 2014 20:13:06 +0400 Subject: [PATCH 2/4] https://github.com/PHPOffice/PHPWord/issues/43 Redundant imports of PHPUnit_Framework_TestCase were removed. --- Tests/PHPWord/AutoloaderTest.php | 3 +-- Tests/PHPWord/IOFactoryTest.php | 1 - Tests/PHPWord/MediaTest.php | 1 - Tests/PHPWord/Reader/Word2007Test.php | 1 - Tests/PHPWord/Section/Footer/PreserveTextTest.php | 1 - Tests/PHPWord/Section/FooterTest.php | 1 - Tests/PHPWord/Section/FootnoteTest.php | 1 - Tests/PHPWord/Section/HeaderTest.php | 1 - Tests/PHPWord/Section/ImageTest.php | 1 - Tests/PHPWord/Section/LinkTest.php | 1 - Tests/PHPWord/Section/ListItemTest.php | 1 - Tests/PHPWord/Section/MemoryImageTest.php | 1 - Tests/PHPWord/Section/ObjectTest.php | 1 - Tests/PHPWord/Section/PageBreakTest.php | 1 - Tests/PHPWord/Section/SettingsTest.php | 1 - Tests/PHPWord/Section/Table/CellTest.php | 1 - Tests/PHPWord/Section/Table/RowTest.php | 1 - Tests/PHPWord/Section/TableTest.php | 1 - Tests/PHPWord/Section/TextBreakTest.php | 1 - Tests/PHPWord/Section/TextRunTest.php | 1 - Tests/PHPWord/Section/TextTest.php | 1 - Tests/PHPWord/Section/TitleTest.php | 1 - Tests/PHPWord/SectionTest.php | 1 - Tests/PHPWord/Shared/DrawingTest.php | 1 - Tests/PHPWord/Shared/FileTest.php | 1 - Tests/PHPWord/Shared/FontTest.php | 1 - Tests/PHPWord/Shared/StringTest.php | 1 - Tests/PHPWord/Style/CellTest.php | 1 - Tests/PHPWord/Style/FontTest.php | 1 - Tests/PHPWord/Style/ImageTest.php | 1 - Tests/PHPWord/Style/ListItemTest.php | 1 - Tests/PHPWord/Style/ParagraphTest.php | 1 - Tests/PHPWord/Style/RowTest.php | 1 - Tests/PHPWord/Style/TOCTest.php | 1 - Tests/PHPWord/Style/TableFullTest.php | 1 - Tests/PHPWord/Style/TableTest.php | 1 - Tests/PHPWord/Style/TabsTest.php | 1 - Tests/PHPWord/TOCTest.php | 3 +-- Tests/PHPWord/Writer/ODTextTest.php | 1 - Tests/PHPWord/Writer/RTFTest.php | 1 - Tests/PHPWord/Writer/Word2007/BaseTest.php | 1 - Tests/PHPWord/Writer/Word2007/DocumentTest.php | 1 - Tests/PHPWord/Writer/Word2007/StylesTest.php | 1 - Tests/PHPWord/Writer/Word2007Test.php | 1 - Tests/PHPWordTest.php | 3 +-- 45 files changed, 3 insertions(+), 48 deletions(-) diff --git a/Tests/PHPWord/AutoloaderTest.php b/Tests/PHPWord/AutoloaderTest.php index d8882f9fc5..03e16db073 100644 --- a/Tests/PHPWord/AutoloaderTest.php +++ b/Tests/PHPWord/AutoloaderTest.php @@ -1,11 +1,10 @@ Date: Wed, 12 Mar 2014 20:24:59 +0400 Subject: [PATCH 3/4] https://github.com/PHPOffice/PHPWord/issues/43 Unit test fix. --- Tests/PHPWord/TemplateTest.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tests/PHPWord/TemplateTest.php b/Tests/PHPWord/TemplateTest.php index 7bb0b9531d..77cebd1aab 100644 --- a/Tests/PHPWord/TemplateTest.php +++ b/Tests/PHPWord/TemplateTest.php @@ -60,7 +60,7 @@ final public function testTemplateCanBeSavedInTemporaryLocation() * @depends testTemplateCanBeSavedInTemporaryLocation * @test */ - final public function testXslStyleSheetCanBeApplied(&$actualDocument) + final public function testXslStyleSheetCanBeApplied(PHPWord_Template $actualDocument) { $expectedDocument = \join( \DIRECTORY_SEPARATOR, From 2aa49dc17b87faef64fde7a482dc600b41ee7444 Mon Sep 17 00:00:00 2001 From: Roman Syroeshko Date: Wed, 12 Mar 2014 20:40:29 +0400 Subject: [PATCH 4/4] https://github.com/PHPOffice/PHPWord/issues/43 Unit test fix #2. --- Tests/PHPWord/TemplateTest.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/Tests/PHPWord/TemplateTest.php b/Tests/PHPWord/TemplateTest.php index 77cebd1aab..d7e99e5586 100644 --- a/Tests/PHPWord/TemplateTest.php +++ b/Tests/PHPWord/TemplateTest.php @@ -52,7 +52,7 @@ final public function testTemplateCanBeSavedInTemporaryLocation() $this->assertNotEquals($documentXml, $templateXml); - return $document; + return $documentFqfn; } /** @@ -60,28 +60,28 @@ final public function testTemplateCanBeSavedInTemporaryLocation() * @depends testTemplateCanBeSavedInTemporaryLocation * @test */ - final public function testXslStyleSheetCanBeApplied(PHPWord_Template $actualDocument) + final public function testXslStyleSheetCanBeApplied($actualDocumentFqfn) { - $expectedDocument = \join( + $expectedDocumentFqfn = \join( \DIRECTORY_SEPARATOR, array(\PHPWORD_TESTS_DIR_ROOT, '_files', 'documents', 'without_table_macros.docx') ); - $actualZip = new \ZipArchive(); - $actualZip->open($actualDocument); - $actualXml = $actualZip->getFromName('word/document.xml'); - if ($actualZip->close() === false) { - throw new \Exception("Could not close zip file \"{$actualDocument}\"."); + $actualDocumentZip = new \ZipArchive(); + $actualDocumentZip->open($actualDocumentFqfn); + $actualDocumentXml = $actualDocumentZip->getFromName('word/document.xml'); + if ($actualDocumentZip->close() === false) { + throw new \Exception("Could not close zip file \"{$actualDocumentFqfn}\"."); } - $expectedZip = new \ZipArchive(); - $expectedZip->open($expectedDocument); - $expectedXml = $expectedZip->getFromName('word/document.xml'); - if ($expectedZip->close() === false) { - throw new \Exception("Could not close zip file \"{$expectedDocument}\"."); + $expectedDocumentZip = new \ZipArchive(); + $expectedDocumentZip->open($expectedDocumentFqfn); + $expectedDocumentXml = $expectedDocumentZip->getFromName('word/document.xml'); + if ($expectedDocumentZip->close() === false) { + throw new \Exception("Could not close zip file \"{$expectedDocumentFqfn}\"."); } - $this->assertXmlStringEqualsXmlString($expectedXml, $actualXml); + $this->assertXmlStringEqualsXmlString($expectedDocumentXml, $actualDocumentXml); } /**