From 69147409bfc74e52fcee1e375d8ecb210acd60c8 Mon Sep 17 00:00:00 2001 From: Progi1984 Date: Mon, 11 Dec 2023 15:06:03 +0100 Subject: [PATCH] CI : Removed deprecations --- docs/changes/1.1.0.md | 6 +++++- phpunit.xml.dist | 2 +- samples/Sample_02_Serialized.php | 6 +++--- .../Tests/Reader/SerializedTest.php | 2 +- .../Writer/PowerPoint2007/PptChartsTest.php | 4 ++-- .../_includes/PhpPresentationTestCase.php | 8 ++++++-- tests/resources/files/serialized.phppt | Bin 14853 -> 14433 bytes 7 files changed, 18 insertions(+), 10 deletions(-) diff --git a/docs/changes/1.1.0.md b/docs/changes/1.1.0.md index 1f58c72c3b..e09f322efe 100644 --- a/docs/changes/1.1.0.md +++ b/docs/changes/1.1.0.md @@ -22,7 +22,6 @@ ## Bugfixes -- Fixed CI - [@Progi1984](https://github.com/Progi1984) in [#766](https://github.com/PHPOffice/PHPPresentation/pull/766) - PowerPoint2077 Writer : Fixed broken PPT Presentations due to MS Office update 2309 - [@WFarmerEthisphere](https://github.com/WFarmerEthisphere) in [#770](https://github.com/PHPOffice/PHPPresentation/pull/770) - PowerPoint2077 Writer : Fixed error when defining min/max bounds to 0 - [@LilyEssence](https://github.com/LilyEssence) in [#771](https://github.com/PHPOffice/PHPPresentation/pull/771) - PowerPoint2007 Writer : Outline : Fixed the base unit - [@Pakku](https://github.com/Pakku) in [#772](https://github.com/PHPOffice/PHPPresentation/pull/772) @@ -31,5 +30,10 @@ - PowerPoint2007 Writer : Fixed broken video file relationship - [@potofcoffee](https://github.com/potofcoffee) in [#776](https://github.com/PHPOffice/PHPPresentation/pull/776) - PowerPoint2007 Writer : Fixed issue when first element in series is null - [@ksmeeks0001](https://github.com/ksmeeks0001) in [#778](https://github.com/PHPOffice/PHPPresentation/pull/778) +## Miscellaneous + +- Fixed CI - [@Progi1984](https://github.com/Progi1984) in [#766](https://github.com/PHPOffice/PHPPresentation/pull/766) +- CI : Removed deprecations - [@Progi1984](https://github.com/Progi1984) in [#780](https://github.com/PHPOffice/PHPPresentation/pull/780) + ## BC Breaks - `PhpOffice\PhpPresentation\Style\Outline` : the width is now based on pixels (before in points) \ No newline at end of file diff --git a/phpunit.xml.dist b/phpunit.xml.dist index bb1e1593b1..4c92bf72c1 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -8,7 +8,7 @@ convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true" - convertDeprecationsToExceptions="false" + convertDeprecationsToExceptions="true" processIsolation="false" stopOnFailure="false" xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"> diff --git a/samples/Sample_02_Serialized.php b/samples/Sample_02_Serialized.php index b2101c440e..26ec633f98 100644 --- a/samples/Sample_02_Serialized.php +++ b/samples/Sample_02_Serialized.php @@ -30,7 +30,7 @@ $shape = $currentSlide->createDrawingShape(); $shape->setName('PHPPresentation logo') ->setDescription('PHPPresentation logo') - ->setPath('./resources/phppowerpoint_logo.gif') + ->setPath(__DIR__ . '/resources/phppowerpoint_logo.gif') ->setHeight(36) ->setOffsetX(10) ->setOffsetY(10); @@ -55,11 +55,11 @@ $basename = basename(__FILE__, '.php'); echo date('H:i:s') . ' Write to serialized format' . EOL; $objWriter = IOFactory::createWriter($objPHPPresentation, 'Serialized'); -$objWriter->save('results/' . basename(__FILE__, '.php') . '.phppt'); +$objWriter->save(__DIR__ . '/results/' . basename(__FILE__, '.php') . '.phppt'); // Read from serialized file echo date('H:i:s') . ' Read from serialized format' . EOL; -$objPHPPresentationLoaded = IOFactory::load('results/' . basename(__FILE__, '.php') . '.phppt'); +$objPHPPresentationLoaded = IOFactory::load(__DIR__ . '/results/' . basename(__FILE__, '.php') . '.phppt'); // Save file echo write($objPHPPresentationLoaded, basename(__FILE__, '.php'), $writers); diff --git a/tests/PhpPresentation/Tests/Reader/SerializedTest.php b/tests/PhpPresentation/Tests/Reader/SerializedTest.php index bc4824c3f8..9a09df7d6a 100644 --- a/tests/PhpPresentation/Tests/Reader/SerializedTest.php +++ b/tests/PhpPresentation/Tests/Reader/SerializedTest.php @@ -85,7 +85,7 @@ public function testLoadSerializedFileNotExists(): void )); $oArchive = new ZipArchive(); - $oArchive->open($file, ZipArchive::CREATE); + $oArchive->open($file, ZipArchive::OVERWRITE); $oArchive->addFromString('PhpPresentation.xml', ''); $oArchive->close(); diff --git a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php index 6bbc6d39dd..97200913e3 100644 --- a/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php +++ b/tests/PhpPresentation/Tests/Writer/PowerPoint2007/PptChartsTest.php @@ -1796,7 +1796,7 @@ public static function dataProviderMarkerSymbol(): iterable /** * @return array> */ - public function dataProviderFont(): iterable + public static function dataProviderFont(): iterable { foreach ([ [Bar::class, 'c:barChart'], @@ -1815,7 +1815,7 @@ public function dataProviderFont(): iterable /** * @return array> */ - public function dataProviderIncludedSpreadsheet(): iterable + public static function dataProviderIncludedSpreadsheet(): iterable { foreach ([ [Area::class, 'c:areaChart'], diff --git a/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php b/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php index b1c31b3b7b..0fc395d3a8 100644 --- a/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php +++ b/tests/PhpPresentation/Tests/_includes/PhpPresentationTestCase.php @@ -107,7 +107,9 @@ class PhpPresentationTestCase extends TestCase */ protected function setUp(): void { - $this->xmlDisableEntityLoader = libxml_disable_entity_loader(false); + if (\PHP_VERSION_ID < 80000) { + $this->xmlDisableEntityLoader = libxml_disable_entity_loader(false); + } $this->workDirectory = sys_get_temp_dir() . '/PhpPresentation_Unit_Test/'; $this->oPresentation = new PhpPresentation(); $this->filePath = tempnam(sys_get_temp_dir(), 'PhpPresentation'); @@ -125,7 +127,9 @@ protected function setUp(): void */ protected function tearDown(): void { - libxml_disable_entity_loader($this->xmlDisableEntityLoader); + if (\PHP_VERSION_ID < 80000) { + libxml_disable_entity_loader($this->xmlDisableEntityLoader); + } libxml_use_internal_errors($this->xmlInternalErrors); $this->oPresentation = null; $this->resetPresentationFile(); diff --git a/tests/resources/files/serialized.phppt b/tests/resources/files/serialized.phppt index 44b1903515b1736a3c932b4c3f4aac7adc5bdbe5..828ad826e1d9b31608d88ea1e331f153903e5d42 100644 GIT binary patch delta 7003 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 BT}J=_ delta 7508 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 B3s?XE