diff --git a/src/PhpSpreadsheet/IOFactory.php b/src/PhpSpreadsheet/IOFactory.php
index 91eec42ea..6472459a7 100644
--- a/src/PhpSpreadsheet/IOFactory.php
+++ b/src/PhpSpreadsheet/IOFactory.php
@@ -54,6 +54,31 @@ abstract class IOFactory
'Mpdf' => Writer\Pdf\Mpdf::class,
];
+ /** @internal */
+ public static function restoreDefaultReadersAndWriters(): void
+ {
+ self::$readers = [
+ self::READER_XLSX => Reader\Xlsx::class,
+ self::READER_XLS => Reader\Xls::class,
+ self::READER_XML => Reader\Xml::class,
+ self::READER_ODS => Reader\Ods::class,
+ self::READER_SLK => Reader\Slk::class,
+ self::READER_GNUMERIC => Reader\Gnumeric::class,
+ self::READER_HTML => Reader\Html::class,
+ self::READER_CSV => Reader\Csv::class,
+ ];
+ self::$writers = [
+ self::WRITER_XLS => Writer\Xls::class,
+ self::WRITER_XLSX => Writer\Xlsx::class,
+ self::WRITER_ODS => Writer\Ods::class,
+ self::WRITER_CSV => Writer\Csv::class,
+ self::WRITER_HTML => Writer\Html::class,
+ 'Tcpdf' => Writer\Pdf\Tcpdf::class,
+ 'Dompdf' => Writer\Pdf\Dompdf::class,
+ 'Mpdf' => Writer\Pdf\Mpdf::class,
+ ];
+ }
+
/**
* Create Writer\IWriter.
*/
diff --git a/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php b/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php
index 9a81d180b..9893409d5 100644
--- a/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php
+++ b/tests/PhpSpreadsheetTests/Calculation/CalculationCoverageTest.php
@@ -9,7 +9,6 @@ use PhpOffice\PhpSpreadsheet\Calculation\Exception as CalcException;
use PhpOffice\PhpSpreadsheet\Calculation\ExceptionHandler;
use PhpOffice\PhpSpreadsheet\NamedRange;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
-use PHPUnit\Framework\Attributes;
use PHPUnit\Framework\TestCase;
class CalculationCoverageTest extends TestCase
@@ -130,8 +129,6 @@ class CalculationCoverageTest extends TestCase
protected static string $winIndicator = 'WIN';
- // separate process because it sets its own handler
- #[Attributes\RunInSeparateProcess]
public function testExceptionHandler(): void
{
if (
@@ -145,6 +142,5 @@ class CalculationCoverageTest extends TestCase
$this->expectExceptionMessage('hello');
$handler = new ExceptionHandler();
trigger_error('hello');
- self::assertNotNull($handler); // @phpstan-ignore-line
}
}
diff --git a/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php b/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php
index b81208bd6..ddfd93067 100644
--- a/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php
+++ b/tests/PhpSpreadsheetTests/Functional/AbstractFunctional.php
@@ -20,18 +20,22 @@ abstract class AbstractFunctional extends TestCase
protected function writeAndReload(Spreadsheet $spreadsheet, string $format, ?callable $readerCustomizer = null, ?callable $writerCustomizer = null): Spreadsheet
{
$filename = File::temporaryFilename();
- $writer = IOFactory::createWriter($spreadsheet, $format);
- if ($writerCustomizer) {
- $writerCustomizer($writer);
- }
- $writer->save($filename);
- $reader = IOFactory::createReader($format);
- if ($readerCustomizer) {
- $readerCustomizer($reader);
+ try {
+ $writer = IOFactory::createWriter($spreadsheet, $format);
+ if ($writerCustomizer) {
+ $writerCustomizer($writer);
+ }
+ $writer->save($filename);
+
+ $reader = IOFactory::createReader($format);
+ if ($readerCustomizer) {
+ $readerCustomizer($reader);
+ }
+ $reloadedSpreadsheet = $reader->load($filename);
+ } finally {
+ @unlink($filename);
}
- $reloadedSpreadsheet = $reader->load($filename);
- unlink($filename);
return $reloadedSpreadsheet;
}
diff --git a/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php b/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php
index 246fdc420..c8be9da30 100644
--- a/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php
+++ b/tests/PhpSpreadsheetTests/IOFactoryRegisterTest.php
@@ -9,13 +9,15 @@ use PhpOffice\PhpSpreadsheet\Reader;
use PhpOffice\PhpSpreadsheet\Reader\Exception as ReaderException;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer;
-use PHPUnit\Framework\Attributes;
use PHPUnit\Framework\TestCase;
-// Separate processes because register arrays are static
-#[Attributes\RunTestsInSeparateProcesses]
class IOFactoryRegisterTest extends TestCase
{
+ protected function tearDown(): void
+ {
+ IOFactory::restoreDefaultReadersAndWriters();
+ }
+
public function testRegisterWriter(): void
{
IOFactory::registerWriter('Pdf', Writer\Pdf\Mpdf::class);
diff --git a/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php b/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php
index 086d780f5..9bb30c045 100644
--- a/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/Csv/CsvNumberFormatLocaleTest.php
@@ -6,12 +6,10 @@ namespace PhpOffice\PhpSpreadsheetTests\Reader\Csv;
use PhpOffice\PhpSpreadsheet\Cell\DataType;
use PhpOffice\PhpSpreadsheet\Reader\Csv;
-use PHPUnit\Framework\Attributes;
+use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
-// separate processes due to setLocale
-#[Attributes\RunTestsInSeparateProcesses]
class CsvNumberFormatLocaleTest extends TestCase
{
private bool $localeAdjusted;
@@ -39,10 +37,16 @@ class CsvNumberFormatLocaleTest extends TestCase
$this->filename = 'tests/data/Reader/CSV/NumberFormatTest.de.csv';
$this->csvReader = new Csv();
+ StringHelper::setCurrencyCode(null);
+ StringHelper::setThousandsSeparator(null);
+ StringHelper::setDecimalSeparator(null);
}
protected function tearDown(): void
{
+ StringHelper::setCurrencyCode(null);
+ StringHelper::setThousandsSeparator(null);
+ StringHelper::setDecimalSeparator(null);
if ($this->localeAdjusted && is_string($this->currentLocale)) {
setlocale(LC_ALL, $this->currentLocale);
}
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php
index d3e86fe8c..47567cc8e 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlBorderTest.php
@@ -24,8 +24,7 @@ class HtmlBorderTest extends TestCase
|
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$style = $firstSheet->getCell('A1')->getStyle();
$borders = $style->getBorders();
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php
index 0a8dfeb33..cf21554b5 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlHelper.php
@@ -31,4 +31,15 @@ class HtmlHelper
return $spreadsheet;
}
+
+ public static function loadHtmlStringIntoSpreadsheet(string $content, ?bool $allowExternalImages = null): Spreadsheet
+ {
+ $html = new Html();
+ if ($allowExternalImages !== null) {
+ $html->setAllowExternalImages($allowExternalImages);
+ }
+ $spreadsheet = $html->loadFromString($content);
+
+ return $spreadsheet;
+ }
}
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php
index 839ef7369..5043ebfdf 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImage2Test.php
@@ -29,8 +29,7 @@ class HtmlImage2Test extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, true);
$firstSheet = $spreadsheet->getSheet(0);
/** @var Drawing $drawing */
@@ -48,8 +47,7 @@ class HtmlImage2Test extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, false);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, false);
$firstSheet = $spreadsheet->getSheet(0);
self::assertCount(0, $firstSheet->getDrawingCollection());
$spreadsheet->disconnectWorksheets();
@@ -66,8 +64,7 @@ class HtmlImage2Test extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, true);
$firstSheet = $spreadsheet->getSheet(0);
$drawingCollection = $firstSheet->getDrawingCollection();
self::assertCount(0, $drawingCollection);
@@ -82,8 +79,7 @@ class HtmlImage2Test extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true, false);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html, false);
$firstSheet = $spreadsheet->getSheet(0);
$drawingCollection = $firstSheet->getDrawingCollection();
self::assertCount(0, $drawingCollection);
@@ -100,8 +96,7 @@ class HtmlImage2Test extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
}
public static function providerBadProtocol(): array
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php
index b56a316a1..1fa59dd91 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlImageTest.php
@@ -18,8 +18,7 @@ class HtmlImageTest extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
/** @var Drawing $drawing */
@@ -40,8 +39,7 @@ class HtmlImageTest extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
/** @var Drawing $drawing */
@@ -59,8 +57,7 @@ class HtmlImageTest extends TestCase
 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
/** @var Drawing $drawing */
@@ -77,8 +74,7 @@ class HtmlImageTest extends TestCase
![]() |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
self::assertCount(0, $firstSheet->getDrawingCollection());
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php
index 5df5c249b..e308e75ae 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlLibxmlTest.php
@@ -12,10 +12,7 @@ use PHPUnit\Framework\TestCase;
* although it will generate warning messages.
* This member demonstrates a method less intrusive than
* set_error_handler to detect if there has been a problem.
- * I want it run in a separate
- * process because I am nervous about libxml_use_internal_errors.
*/
-#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses]
class HtmlLibxmlTest extends TestCase
{
private bool $useErrors;
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php
index d691a40ce..939dfd37f 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlPhpunit10Test.php
@@ -9,10 +9,8 @@ use PHPUnit\Framework\TestCase;
/**
* There were problems running this test in HtmlTest with PhpUnit 10.
- * This replacement seem to work. I want it run in a separate
- * process because I am nervous about set_error_handler.
+ * This replacement seem to work.
*/
-#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses]
class HtmlPhpunit10Test extends TestCase
{
private static string $errorString;
diff --git a/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php b/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php
index 1443ceb7e..4ae0b590b 100644
--- a/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php
+++ b/tests/PhpSpreadsheetTests/Reader/Html/HtmlTest.php
@@ -73,8 +73,7 @@ class HtmlTest extends TestCase
Unknown fore/background |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$style = $firstSheet->getCell('A1')->getStyle();
self::assertEquals('FFFFFF', $style->getFont()->getColor()->getRGB());
@@ -103,8 +102,7 @@ class HtmlTest extends TestCase
Line through |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$style = $firstSheet->getCell('A1')->getStyle();
@@ -136,8 +134,7 @@ class HtmlTest extends TestCase
50px |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$dimension = $firstSheet->getColumnDimension('A');
@@ -164,8 +161,7 @@ class HtmlTest extends TestCase
1 |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$dimension = $firstSheet->getRowDimension(1);
@@ -191,8 +187,7 @@ class HtmlTest extends TestCase
Wraptext |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$style = $firstSheet->getCell('A1')->getStyle();
@@ -224,8 +219,7 @@ class HtmlTest extends TestCase
x |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$sheet = $spreadsheet->getSheet(0);
self::assertEquals('mmm-yy', $sheet->getStyle('A1')->getNumberFormat()->getFormatCode());
@@ -250,8 +244,7 @@ class HtmlTest extends TestCase
Hello World |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$cellStyle = $firstSheet->getStyle('A1');
@@ -293,8 +286,7 @@ class HtmlTest extends TestCase
Text Indent |
';
- $filename = HtmlHelper::createHtml($html);
- $spreadsheet = HtmlHelper::loadHtmlIntoSpreadsheet($filename, true);
+ $spreadsheet = HtmlHelper::loadHtmlStringIntoSpreadsheet($html);
$firstSheet = $spreadsheet->getSheet(0);
$style = $firstSheet->getCell('C2')->getStyle();
self::assertEquals(1, $style->getAlignment()->getIndent());
diff --git a/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php b/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php
index 22505530d..bd0bf98c5 100644
--- a/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php
+++ b/tests/PhpSpreadsheetTests/Shared/OLEPhpunit10Test.php
@@ -9,10 +9,8 @@ use PHPUnit\Framework\TestCase;
/**
* There were problems running these tests in OLETest with PhpUnit 10.
- * These replacements seem to work. I want them run in separate
- * processes because I am nervous about set_error_handler.
+ * These replacements seem to work.
*/
-#[\PHPUnit\Framework\Attributes\RunTestsInSeparateProcesses]
class OLEPhpunit10Test extends TestCase
{
private static string $errorString;
diff --git a/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php b/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php
index d3c0b43df..d7e910659 100644
--- a/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php
+++ b/tests/PhpSpreadsheetTests/Shared/StringHelperLocaleTest.php
@@ -5,11 +5,8 @@ declare(strict_types=1);
namespace PhpOffice\PhpSpreadsheetTests\Shared;
use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
-use PHPUnit\Framework\Attributes;
use PHPUnit\Framework\TestCase;
-// separate processes due to setLocale
-#[Attributes\RunTestsInSeparateProcesses]
class StringHelperLocaleTest extends TestCase
{
/**
@@ -20,6 +17,7 @@ class StringHelperLocaleTest extends TestCase
protected function setUp(): void
{
$this->currentLocale = setlocale(LC_ALL, '0');
+ StringHelper::setCurrencyCode(null);
}
protected function tearDown(): void
diff --git a/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php b/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php
index 92ecedd99..2c21171d6 100644
--- a/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php
+++ b/tests/PhpSpreadsheetTests/SpreadsheetSerializeTest.php
@@ -8,7 +8,6 @@ use PhpOffice\PhpSpreadsheet\Exception as SpreadsheetException;
use PhpOffice\PhpSpreadsheet\Helper\Sample;
use PhpOffice\PhpSpreadsheet\NamedRange;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
-use PHPUnit\Framework\Attributes;
use PHPUnit\Framework\TestCase;
class SpreadsheetSerializeTest extends TestCase
@@ -80,11 +79,7 @@ class SpreadsheetSerializeTest extends TestCase
self::assertNotFalse(
file_put_contents($outputFileName, $ser)
);
- }
- #[Attributes\RunInSeparateProcess]
- public function testReadSerialize(): void
- {
$inputFileName = self::getTempFileName();
$ser = (string) file_get_contents($inputFileName);
unlink($inputFileName);
diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php
index 3075ad5dd..95c22cfbb 100644
--- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php
+++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/AccountingTest.php
@@ -6,6 +6,7 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard;
use NumberFormatter;
use PhpOffice\PhpSpreadsheet\Exception;
+use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Formatter;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Accounting;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Currency;
@@ -17,6 +18,13 @@ use ReflectionMethod;
class AccountingTest extends TestCase
{
+ protected function tearDown(): void
+ {
+ StringHelper::setCurrencyCode(null);
+ StringHelper::setThousandsSeparator(null);
+ StringHelper::setDecimalSeparator(null);
+ }
+
#[DataProvider('providerAccounting')]
public function testAccounting(
string $expectedResultPositive,
diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php
index 0de17ac35..6153f9ea4 100644
--- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php
+++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/CurrencyTest.php
@@ -6,6 +6,7 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard;
use NumberFormatter;
use PhpOffice\PhpSpreadsheet\Exception;
+use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Formatter;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Accounting;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Currency;
@@ -17,6 +18,13 @@ use ReflectionMethod;
class CurrencyTest extends TestCase
{
+ protected function tearDown(): void
+ {
+ StringHelper::setCurrencyCode(null);
+ StringHelper::setThousandsSeparator(null);
+ StringHelper::setDecimalSeparator(null);
+ }
+
#[DataProvider('providerCurrency')]
public function testCurrency(
string $expectedResultPositive,
diff --git a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php
index fb6f56a1d..0c604b52a 100644
--- a/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php
+++ b/tests/PhpSpreadsheetTests/Style/NumberFormat/Wizard/NumberTest.php
@@ -6,12 +6,21 @@ namespace PhpOffice\PhpSpreadsheetTests\Style\NumberFormat\Wizard;
use NumberFormatter;
use PhpOffice\PhpSpreadsheet\Exception;
+use PhpOffice\PhpSpreadsheet\Shared\StringHelper;
use PhpOffice\PhpSpreadsheet\Style\NumberFormat\Wizard\Number;
+use PHPUnit\Framework\Attributes\DataProvider;
use PHPUnit\Framework\TestCase;
class NumberTest extends TestCase
{
- #[\PHPUnit\Framework\Attributes\DataProvider('providerNumber')]
+ protected function tearDown(): void
+ {
+ StringHelper::setCurrencyCode(null);
+ StringHelper::setThousandsSeparator(null);
+ StringHelper::setDecimalSeparator(null);
+ }
+
+ #[DataProvider('providerNumber')]
public function testNumber(string $expectedResult, int $decimals, bool $thousandsSeparator): void
{
$wizard = new Number($decimals, $thousandsSeparator);
@@ -30,7 +39,7 @@ class NumberTest extends TestCase
];
}
- #[\PHPUnit\Framework\Attributes\DataProvider('providerNumberLocale')]
+ #[DataProvider('providerNumberLocale')]
public function testNumberLocale(
string $expectedResult,
string $locale
diff --git a/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php b/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php
index 5ca2a0401..a3f6ddcb6 100644
--- a/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php
+++ b/tests/PhpSpreadsheetTests/Writer/Xlsx/LocaleFloatsTest.php
@@ -47,14 +47,9 @@ class LocaleFloatsTest extends AbstractFunctional
}
}
- /**
- * Use separate process because this calls native Php setlocale.
- */
- #[\PHPUnit\Framework\Attributes\RunInSeparateProcess]
public function testLocaleFloatsCorrectlyConvertedByWriter(): void
{
if (!setlocale(LC_ALL, 'fr_FR.UTF-8', 'fra_fra.utf8')) {
- $this->currentPhpLocale = false;
self::markTestSkipped('Unable to set locale for testing.');
}
$localeconv = localeconv();
@@ -102,14 +97,9 @@ class LocaleFloatsTest extends AbstractFunctional
self::assertSame('2,50', $sheet->getCell('A12')->getFormattedValue());
}
- /**
- * Use separate process because this calls native Php setlocale.
- */
- #[\PHPUnit\Framework\Attributes\RunInSeparateProcess]
public function testPercentageStoredAsString2(): void
{
if (!setlocale(LC_ALL, 'fr_FR.UTF-8', 'fra_fra.utf8')) {
- $this->currentPhpLocale = false;
self::markTestSkipped('Unable to set locale for testing.');
}
$localeconv = localeconv();