diff --git a/.php_cs.dist b/.php-cs-fixer.dist.php similarity index 90% rename from .php_cs.dist rename to .php-cs-fixer.dist.php index 9879a529c..d0ea034a0 100644 --- a/.php_cs.dist +++ b/.php-cs-fixer.dist.php @@ -1,6 +1,6 @@ setRiskyAllowed(true) ->setRules([ '@Symfony' => true, @@ -13,13 +13,14 @@ 'declare_equal_normalize' => ['space' => 'single'], 'heredoc_to_nowdoc' => true, 'increment_style' => ['style' => 'post'], - 'is_null' => ['use_yoda_style' => false], - 'method_argument_space' => ['ensure_fully_multiline' => true], + 'method_argument_space' => [ + 'on_multiline' => 'ensure_fully_multiline' + ], 'modernize_types_casting' => true, 'no_break_comment' => ['comment_text' => 'do nothing'], 'no_empty_phpdoc' => false, 'no_null_property_initialization' => true, - 'no_short_echo_tag' => true, + 'echo_tag_syntax' => false, 'no_superfluous_elseif' => true, 'no_superfluous_phpdoc_tags' => false, 'no_unneeded_control_parentheses' => ['statements' => ['break', 'clone', 'continue', 'echo_print', 'switch_case', 'yield']], @@ -37,7 +38,7 @@ 'phpdoc_types_order' => ['null_adjustment' => 'always_last', 'sort_algorithm' => 'none'], 'phpdoc_separation' => false, 'protected_to_private' => true, - 'psr4' => true, + 'psr_autoloading' => true, 'return_type_declaration' => ['space_before' => 'one'], 'semicolon_after_instruction' => true, 'simplified_null_return' => false, diff --git a/.travis.yml b/.travis.yml index 365ee595f..d5121c35c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -42,7 +42,7 @@ before_script: script: - | if [[ "$WITH_CS" == "true" ]]; then - vendor/bin/php-cs-fixer fix --config=.php_cs.dist --verbose --diff --dry-run --diff-format=udiff + vendor/bin/php-cs-fixer fix --verbose --diff --dry-run --diff-format=udiff fi - | if [[ "$WITH_PHPUNIT" == "true" ]]; then diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..32a9aa6db --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +FROM php:7.2-cli + +RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y \ + libzip-dev \ + locales \ + locales-all \ + zip \ + && docker-php-ext-configure zip --with-libzip \ + && docker-php-ext-install zip + +COPY --from=composer:2 /usr/bin/composer /usr/local/bin/composer +RUN chmod +x /usr/local/bin/composer diff --git a/README.md b/README.md index 7c772427c..0a7bceda2 100644 --- a/README.md +++ b/README.md @@ -40,6 +40,25 @@ For information, the performance tests take about 10 minutes to run (processing > Performance tests status: [![Build Status](https://travis-ci.org/box/spout.svg?branch=perf-tests)](https://travis-ci.org/box/spout) +### Running test with Docker + +First install the dependencies with docker-compose + +```bash +docker-compose run --rm -u ${UID} php composer install +``` + +Then launch the PHPUnit tests + +```bash +docker-compose run --rm php vendor/bin/phpunit +``` + +Same for CS Fixer tests + +```bash +docker-compose run --rm php vendor/bin/php-cs-fixer fix --verbose --diff --dry-run --diff-format=udiff +``` ## Support diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 000000000..70d678ffe --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,8 @@ +version: '3' +services: + php: + build: . + working_dir: /srv/spout + volumes: + - $PWD:/srv/spout + - $PWD/tests/generated/resources/unwritable:/srv/spout/tests/resources/generated/unwritable:ro diff --git a/tests/Spout/Writer/ODS/WriterTest.php b/tests/Spout/Writer/ODS/WriterTest.php index a9aaa0e39..5fb876064 100644 --- a/tests/Spout/Writer/ODS/WriterTest.php +++ b/tests/Spout/Writer/ODS/WriterTest.php @@ -291,12 +291,17 @@ public function testAddRowShouldSupportFloatValuesInDifferentLocale() // Installed locales differ from one system to another, so we can't pick // a given locale. $supportedLocales = explode("\n", shell_exec('locale -a')); + $foundCommaLocale = false; foreach ($supportedLocales as $supportedLocale) { \setlocale(LC_ALL, $supportedLocale); if (\localeconv()['decimal_point'] === ',') { + $foundCommaLocale = true; break; } } + if (!$foundCommaLocale) { + $this->markTestSkipped('No locale with comma decimal separator'); + } $this->assertEquals(',', \localeconv()['decimal_point']); $fileName = 'test_add_row_should_support_float_values_in_different_locale.xlsx'; @@ -306,8 +311,8 @@ public function testAddRowShouldSupportFloatValuesInDifferentLocale() $this->writeToODSFile($dataRows, $fileName); - $this->assertValueWasNotWrittenToSheet($fileName, 1, "1234,5"); - $this->assertValueWasWrittenToSheet($fileName, 1, "1234.5"); + $this->assertValueWasNotWrittenToSheet($fileName, 1, '1234,5'); + $this->assertValueWasWrittenToSheet($fileName, 1, '1234.5'); } finally { // reset locale \setlocale(LC_ALL, $previousLocale); diff --git a/tests/Spout/Writer/XLSX/WriterTest.php b/tests/Spout/Writer/XLSX/WriterTest.php index 26b379257..ddd21c662 100644 --- a/tests/Spout/Writer/XLSX/WriterTest.php +++ b/tests/Spout/Writer/XLSX/WriterTest.php @@ -406,12 +406,17 @@ public function testAddRowShouldSupportFloatValuesInDifferentLocale() // Installed locales differ from one system to another, so we can't pick // a given locale. $supportedLocales = explode("\n", shell_exec('locale -a')); + $foundCommaLocale = false; foreach ($supportedLocales as $supportedLocale) { \setlocale(LC_ALL, $supportedLocale); if (\localeconv()['decimal_point'] === ',') { + $foundCommaLocale = true; break; } } + if (!$foundCommaLocale) { + $this->markTestSkipped('No locale with comma decimal separator'); + } $this->assertEquals(',', \localeconv()['decimal_point']); $fileName = 'test_add_row_should_support_float_values_in_different_locale.xlsx'; @@ -421,8 +426,8 @@ public function testAddRowShouldSupportFloatValuesInDifferentLocale() $this->writeToXLSXFile($dataRows, $fileName, $shouldUseInlineStrings = false); - $this->assertInlineDataWasNotWrittenToSheet($fileName, 1, "1234,5"); - $this->assertInlineDataWasWrittenToSheet($fileName, 1, "1234.5"); + $this->assertInlineDataWasNotWrittenToSheet($fileName, 1, '1234,5'); + $this->assertInlineDataWasWrittenToSheet($fileName, 1, '1234.5'); } finally { // reset locale \setlocale(LC_ALL, $previousLocale);