From 739be0d0c4fc01e8f612408b2f1d627d20e5a6c8 Mon Sep 17 00:00:00 2001 From: Yannik Date: Sat, 14 Nov 2020 16:40:20 +0100 Subject: [PATCH 1/5] UPDATED - laravel 8 upgraded & < 7 dropped --- .github/workflows/test.yml | 43 +++++++++++++------ composer.json | 12 +++--- phpunit.xml.dist | 35 +++------------ src/IdentityManager.php | 4 +- src/UploadManager.php | 20 ++++----- tests/Driver/BlueimpUploadHandlerTest.php | 13 +++--- tests/Driver/DropzoneUploadHandlerTest.php | 8 ++-- tests/Driver/FlowJsUploadHandlerTest.php | 10 ++--- tests/Driver/MonolithUploadHandlerTest.php | 6 +-- tests/Driver/NgFileUploadHandlerTest.php | 10 ++--- tests/Driver/PluploadUploadHandlerTest.php | 10 ++--- tests/Driver/ResumableJsUploadHandlerTest.php | 10 ++--- .../SimpleUploaderUploadHandlerTest.php | 10 ++--- 13 files changed, 93 insertions(+), 98 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 5609ace..c8e432c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -1,4 +1,4 @@ -name: test +name: run-tests on: push: @@ -9,26 +9,41 @@ on: - 'master' jobs: - build: - name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} + test: runs-on: ubuntu-latest + strategy: - fail-fast: true + fail-fast: false matrix: - php: [ '7.2', '7.3', '7.4' ] - laravel: [ '5.5.*', '5.6.*', '5.7.*', '5.8.*', '^6.0', '^7.0' ] + php: [ 7.4, 7.3 ] + laravel: [ 8.*, 7.* ] + dependency-version: [prefer-lowest, prefer-stable] + include: + - laravel: 7.* + testbench: 5.* + - laravel: 8.* + testbench: 6.* + + name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} steps: - - uses: actions/checkout@v2 + - name: Update apt + run: sudo apt-get update --fix-missing + + - name: Checkout code + uses: actions/checkout@v2 - - uses: actions/cache@v1 + - name: Cache dependencies + uses: actions/cache@v2 with: path: ~/.composer/cache/files - key: laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} - - uses: shivammathur/setup-php@v1 + - name: Setup PHP + uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} + extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, bcmath, soap, intl, gd, exif, iconv, imagick coverage: none - name: Validate composer.json @@ -36,8 +51,8 @@ jobs: - name: Install dependencies run: | - composer require "illuminate/support:${{ matrix.laravel }}" "illuminate/http:${{ matrix.laravel }}" --no-interaction --no-update - composer update --prefer-dist --no-interaction --no-suggest + composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - - name: Run test - run: ./vendor/bin/phpunit --verbose + - name: Execute tests + run: vendor/bin/phpunit diff --git a/composer.json b/composer.json index 8944778..c654f0a 100644 --- a/composer.json +++ b/composer.json @@ -14,14 +14,14 @@ } ], "require": { - "php": "^7.1", - "illuminate/support": "^5.5 || ^6.0 || ^7.0", - "illuminate/http": "^5.5 || ^6.0 || ^7.0" + "php": "^7.3", + "illuminate/support": "^7.0 || ^8.0", + "illuminate/http": "^7.0 || ^8.0" }, "require-dev": { - "orchestra/testbench": "^3.5 || ^4.0 || ^5.0", - "phpunit/phpunit": "^6.0 || ^7.0 || ^8.0", - "mockery/mockery": "^1.0" + "orchestra/testbench": "^5.0 || ^6.0", + "phpunit/phpunit": "^9.1", + "mockery/mockery": "^1.3" }, "autoload": { "psr-4": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 930e0e7..38e4729 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,34 +1,13 @@ - + + + + src/ + + - ./tests + tests - - - ./src - - - - - - - - diff --git a/src/IdentityManager.php b/src/IdentityManager.php index 6cdf06f..058498d 100644 --- a/src/IdentityManager.php +++ b/src/IdentityManager.php @@ -31,7 +31,7 @@ public function createNopDriver() */ public function getDefaultDriver() { - return $this->app['config']['upload-handler.identifier']; + return $this->container['config']['upload-handler.identifier']; } /** @@ -43,6 +43,6 @@ public function getDefaultDriver() */ public function setDefaultDriver($name) { - $this->app['config']['upload-handler.identifier'] = $name; + $this->container['config']['upload-handler.identifier'] = $name; } } diff --git a/src/UploadManager.php b/src/UploadManager.php index 85d83a9..244dec7 100644 --- a/src/UploadManager.php +++ b/src/UploadManager.php @@ -16,25 +16,25 @@ class UploadManager extends Manager { public function createMonolithDriver() { - return new MonolithBaseHandler($this->app['config']['upload-handler.monolith']); + return new MonolithBaseHandler($this->container['config']['upload-handler.monolith']); } public function createBlueimpDriver() { /** @var \Illuminate\Support\Manager $identityManager */ - $identityManager = $this->app['upload-handler.identity-manager']; + $identityManager = $this->container['upload-handler.identity-manager']; - return new BlueimpBaseHandler($this->app['config']['upload-handler.blueimp'], $identityManager->driver()); + return new BlueimpBaseHandler($this->container['config']['upload-handler.blueimp'], $identityManager->driver()); } public function createDropzoneDriver() { - return new DropzoneBaseHandler($this->app['config']['upload-handler.dropzone']); + return new DropzoneBaseHandler($this->container['config']['upload-handler.dropzone']); } public function createFlowJsDriver() { - return new FlowJsHandler($this->app['config']['upload-handler.resumable-js'], $this->identityManager()->driver()); + return new FlowJsHandler($this->container['config']['upload-handler.resumable-js'], $this->identityManager()->driver()); } public function createNgFileUploadDriver() @@ -49,12 +49,12 @@ public function createPluploadDriver() public function createResumableJsDriver() { - return new ResumableJsBaseHandler($this->app['config']['upload-handler.resumable-js'], $this->identityManager()->driver()); + return new ResumableJsBaseHandler($this->container['config']['upload-handler.resumable-js'], $this->identityManager()->driver()); } public function createSimpleUploaderJsDriver() { - return new SimpleUploaderJsHandler($this->app['config']['upload-handler.simple-uploader-js'], $this->identityManager()->driver()); + return new SimpleUploaderJsHandler($this->container['config']['upload-handler.simple-uploader-js'], $this->identityManager()->driver()); } /** @@ -62,7 +62,7 @@ public function createSimpleUploaderJsDriver() */ protected function identityManager() { - return $this->app['upload-handler.identity-manager']; + return $this->container['upload-handler.identity-manager']; } /** @@ -72,7 +72,7 @@ protected function identityManager() */ public function getDefaultDriver() { - return $this->app['config']['upload-handler.handler']; + return $this->container['config']['upload-handler.handler']; } /** @@ -84,6 +84,6 @@ public function getDefaultDriver() */ public function setDefaultDriver($name) { - $this->app['config']['upload-handler.handler'] = $name; + $this->container['config']['upload-handler.handler'] = $name; } } diff --git a/tests/Driver/BlueimpUploadHandlerTest.php b/tests/Driver/BlueimpUploadHandlerTest.php index 93b21f6..d8e79e4 100644 --- a/tests/Driver/BlueimpUploadHandlerTest.php +++ b/tests/Driver/BlueimpUploadHandlerTest.php @@ -28,10 +28,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'blueimp'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'blueimp'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -39,7 +39,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(BlueimpBaseHandler::class, $manager->driver()); } @@ -120,7 +120,8 @@ public function testUploadWhenFileParameterIsEmpty() public function testUploadWhenFileParameterIsInvalid() { - $file = Mockery::mock(UploadedFile::class)->makePartial(); + $file = Mockery::mock(UploadedFile::class) + ->makePartial(); $file->shouldReceive('isValid') ->andReturn(false); diff --git a/tests/Driver/DropzoneUploadHandlerTest.php b/tests/Driver/DropzoneUploadHandlerTest.php index 21ff93f..4adf392 100644 --- a/tests/Driver/DropzoneUploadHandlerTest.php +++ b/tests/Driver/DropzoneUploadHandlerTest.php @@ -26,9 +26,9 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.handler', 'dropzone'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.handler', 'dropzone'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -36,7 +36,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(DropzoneBaseHandler::class, $manager->driver()); } diff --git a/tests/Driver/FlowJsUploadHandlerTest.php b/tests/Driver/FlowJsUploadHandlerTest.php index c5623e6..b1dc1df 100644 --- a/tests/Driver/FlowJsUploadHandlerTest.php +++ b/tests/Driver/FlowJsUploadHandlerTest.php @@ -28,10 +28,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'flow-js'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'flow-js'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -39,7 +39,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(FlowJsHandler::class, $manager->driver()); } diff --git a/tests/Driver/MonolithUploadHandlerTest.php b/tests/Driver/MonolithUploadHandlerTest.php index 98dea18..19df828 100644 --- a/tests/Driver/MonolithUploadHandlerTest.php +++ b/tests/Driver/MonolithUploadHandlerTest.php @@ -28,8 +28,8 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.handler', 'monolith'); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.handler', 'monolith'); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -37,7 +37,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(MonolithBaseHandler::class, $manager->driver()); } diff --git a/tests/Driver/NgFileUploadHandlerTest.php b/tests/Driver/NgFileUploadHandlerTest.php index 86ef8a3..8e0791c 100644 --- a/tests/Driver/NgFileUploadHandlerTest.php +++ b/tests/Driver/NgFileUploadHandlerTest.php @@ -27,10 +27,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'ng-file-upload'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'ng-file-upload'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -38,7 +38,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(NgFileBaseHandler::class, $manager->driver()); } diff --git a/tests/Driver/PluploadUploadHandlerTest.php b/tests/Driver/PluploadUploadHandlerTest.php index 16f2012..336a958 100644 --- a/tests/Driver/PluploadUploadHandlerTest.php +++ b/tests/Driver/PluploadUploadHandlerTest.php @@ -27,10 +27,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'plupload'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'plupload'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -38,7 +38,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(PluploadBaseHandler::class, $manager->driver()); } diff --git a/tests/Driver/ResumableJsUploadHandlerTest.php b/tests/Driver/ResumableJsUploadHandlerTest.php index 5f53a37..b17ae50 100644 --- a/tests/Driver/ResumableJsUploadHandlerTest.php +++ b/tests/Driver/ResumableJsUploadHandlerTest.php @@ -28,10 +28,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'resumable-js'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'resumable-js'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -39,7 +39,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(ResumableJsBaseHandler::class, $manager->driver()); } diff --git a/tests/Driver/SimpleUploaderUploadHandlerTest.php b/tests/Driver/SimpleUploaderUploadHandlerTest.php index 00c4c29..0188395 100644 --- a/tests/Driver/SimpleUploaderUploadHandlerTest.php +++ b/tests/Driver/SimpleUploaderUploadHandlerTest.php @@ -28,10 +28,10 @@ protected function setUp(): void { parent::setUp(); - $this->app->make('config')->set('upload-handler.identifier', 'nop'); - $this->app->make('config')->set('upload-handler.handler', 'simple-uploader-js'); - $this->app->make('config')->set('upload-handler.sweep', false); - $this->handler = $this->app->make(UploadHandler::class); + config()->set('upload-handler.identifier', 'nop'); + config()->set('upload-handler.handler', 'simple-uploader-js'); + config()->set('upload-handler.sweep', false); + $this->handler = app()->make(UploadHandler::class); Storage::fake('local'); Event::fake(); @@ -39,7 +39,7 @@ protected function setUp(): void public function testDriverInstance() { - $manager = $this->app->make('upload-handler.upload-manager'); + $manager = app()->make('upload-handler.upload-manager'); $this->assertInstanceOf(SimpleUploaderJsHandler::class, $manager->driver()); } From a54607cb6089c688f9da1fc757bef731a4fefb23 Mon Sep 17 00:00:00 2001 From: Yannik Date: Sat, 14 Nov 2020 16:43:15 +0100 Subject: [PATCH 2/5] UPDATED - readme --- README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index c74ba20..b0bbb72 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ This package helps integrate a Laravel application with chunk uploader libraries [DropzoneJS](https://www.dropzonejs.com/) and [jQuery-File-Upload from blueimp](https://blueimp.github.io/jQuery-File-Upload/). -Uploading a large file in chunks can help reduce risks. +Uploading a large file in chunks can help reduce risks. - PHP from 5.3.4 limits the number of concurrent uploads and by uploading a file in one request can limit the availability of a service. ([max_file_uploads][php-max-file-uploads]) @@ -47,7 +47,7 @@ project at the moment is [tus](https://tus.io/). - [NOP identifier](#nop-identifier) - [Contribution](#contribution) - [License](#license) - + ## Installation You can easily install this package using Composer, by running the following command: @@ -60,8 +60,8 @@ composer require coding-socks/laravel-upload-handler This package has the following requirements: -- PHP 7.1 or higher -- Laravel 5.5 or higher +- PHP 7.3 or higher +- Laravel 7 or higher ## Usage @@ -115,7 +115,7 @@ the disk and the path of the uploaded file. [Registering Events & Listeners from Laravel](https://laravel.com/docs/5.8/events#registering-events-and-listeners) You can also add a `Closure` as the second parameter of the `handle` method to add an inline listener. The listener -is called with the disk and the path of the uploaded file. +is called with the disk and the path of the uploaded file. ```php $handler->handle($request, function ($disk, $path) { From c9b7d887a180ab2d1cd6873359d740b215226798 Mon Sep 17 00:00:00 2001 From: Yannik Date: Sun, 15 Nov 2020 10:23:21 +0100 Subject: [PATCH 3/5] FIXED - phpunit --- phpunit.xml.dist | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 38e4729..b2c04bf 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -10,4 +10,10 @@ tests + + + + + + From cb2fd554ba38b5e2ec5414e4b4c432f1254a21e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20G=C3=B6r=C3=B6g?= Date: Sun, 15 Nov 2020 15:40:31 +0100 Subject: [PATCH 4/5] composer: add Laravel ^6.10 dependency --- .github/workflows/test.yml | 19 +++++++------------ composer.json | 8 ++++---- phpunit.xml.dist | 15 ++++++++++----- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index c8e432c..09d9556 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -15,16 +15,11 @@ jobs: strategy: fail-fast: false matrix: - php: [ 7.4, 7.3 ] - laravel: [ 8.*, 7.* ] + php: [ 7.3, 7.4 ] + laravel: [ '^6.10', '^7.0', '^7.8' ] dependency-version: [prefer-lowest, prefer-stable] - include: - - laravel: 7.* - testbench: 5.* - - laravel: 8.* - testbench: 6.* - name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} + name: PHP ${{ matrix.php }} - Laravel ${{ matrix.laravel }} steps: - name: Update apt @@ -37,7 +32,7 @@ jobs: uses: actions/cache@v2 with: path: ~/.composer/cache/files - key: dependencies-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} + key: laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }} - name: Setup PHP uses: shivammathur/setup-php@v2 @@ -51,8 +46,8 @@ jobs: - name: Install dependencies run: | - composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update - composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest + composer require "illuminate/support:${{ matrix.laravel }}" "illuminate/http:${{ matrix.laravel }}" --no-interaction --no-update + composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest - name: Execute tests - run: vendor/bin/phpunit + run: vendor/bin/phpunit --verbose diff --git a/composer.json b/composer.json index c654f0a..022d08a 100644 --- a/composer.json +++ b/composer.json @@ -15,12 +15,12 @@ ], "require": { "php": "^7.3", - "illuminate/support": "^7.0 || ^8.0", - "illuminate/http": "^7.0 || ^8.0" + "illuminate/support": "^6.10 || ^7.0 || ^8.0", + "illuminate/http": "^6.10 || ^7.0 || ^8.0" }, "require-dev": { - "orchestra/testbench": "^5.0 || ^6.0", - "phpunit/phpunit": "^9.1", + "orchestra/testbench": "^4.0 || ^5.0 || ^6.0", + "phpunit/phpunit": "^9.3", "mockery/mockery": "^1.3" }, "autoload": { diff --git a/phpunit.xml.dist b/phpunit.xml.dist index b2c04bf..13f7337 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,9 +1,16 @@ - + src/ + + + @@ -11,9 +18,7 @@ - - - - + + From 91ed9adf842f689e07b199700de1ee7c21f3d02e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A1szl=C3=B3=20G=C3=B6r=C3=B6g?= Date: Sun, 15 Nov 2020 15:42:02 +0100 Subject: [PATCH 5/5] readme: update requirements --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0bbb72..4cd16d1 100644 --- a/README.md +++ b/README.md @@ -60,8 +60,10 @@ composer require coding-socks/laravel-upload-handler This package has the following requirements: -- PHP 7.3 or higher -- Laravel 7 or higher +- PHP `^7.3` +- Laravel `^6.10 || ^7.0 || ^8.0` + +[Caret Version Range (^)](https://getcomposer.org/doc/articles/versions.md#caret-version-range-) ## Usage