diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
deleted file mode 100644
index 92faea2..0000000
--- a/.github/CODEOWNERS
+++ /dev/null
@@ -1 +0,0 @@
-* @Sylius/core-team
diff --git a/.gitignore b/.gitignore
index 07229a6..98c18d0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,3 +9,8 @@
/behat.yml
/phpspec.yml
+
+/package-lock.json
+
+/.php-version
+/.phpunit.result.cache
diff --git a/.travis.yml b/.travis.yml
index 44edbaf..0b44fd7 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -6,7 +6,6 @@ sudo: false
php:
- '7.2'
- - '7.3'
cache:
yarn: true
@@ -18,7 +17,6 @@ env:
global:
- APP_ENV=test
- SYLIUS_CACHE_DIR=$HOME/.sylius-cache
- - SYLIUS_BUILD_DIR=etc/build
before_install:
- phpenv config-rm xdebug.ini
@@ -30,48 +28,23 @@ install:
- (cd tests/Application && yarn install)
before_script:
+ - ln -s tests/Application/node_modules node_modules
- (cd tests/Application && bin/console doctrine:database:create -vvv)
- (cd tests/Application && bin/console doctrine:schema:create -vvv)
- (cd tests/Application && bin/console assets:install public -vvv)
- (cd tests/Application && bin/console cache:warmup -vvv)
- (cd tests/Application && yarn build)
- # Configure display
- - /sbin/start-stop-daemon --start --quiet --pidfile /tmp/xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1680x1050x16
- - export DISPLAY=:99
-
- # Download and configure ChromeDriver
- - |
- if [ ! -f $SYLIUS_CACHE_DIR/chromedriver ] || [ "$($SYLIUS_CACHE_DIR/chromedriver --version | grep -c 2.34)" = "0" ]; then
- curl http://chromedriver.storage.googleapis.com/2.34/chromedriver_linux64.zip > chromedriver.zip
- unzip chromedriver.zip
- chmod +x chromedriver
- mv chromedriver $SYLIUS_CACHE_DIR
- fi
-
- # Run ChromeDriver
- - $SYLIUS_CACHE_DIR/chromedriver > /dev/null 2>&1 &
-
- # Download and configure Selenium
- - |
- if [ ! -f $SYLIUS_CACHE_DIR/selenium.jar ] || [ "$(java -jar $SYLIUS_CACHE_DIR/selenium.jar --version | grep -c 3.4.0)" = "0" ]; then
- curl http://selenium-release.storage.googleapis.com/3.4/selenium-server-standalone-3.4.0.jar > selenium.jar
- mv selenium.jar $SYLIUS_CACHE_DIR
- fi
-
- # Run Selenium
- - java -Dwebdriver.chrome.driver=$SYLIUS_CACHE_DIR/chromedriver -jar $SYLIUS_CACHE_DIR/selenium.jar > /dev/null 2>&1 &
-
# Run webserver
- (cd tests/Application && bin/console server:run 127.0.0.1:8080 --quiet > /dev/null 2>&1 &)
script:
- - composer validate
- - vendor/bin/phpstan analyse -c phpstan.neon -l max src/
+ - composer validate --strict
+ - vendor/bin/phpstan analyse -c phpstan.neon src/
- vendor/bin/phpunit
- vendor/bin/phpspec run
- - vendor/bin/behat --strict -vvv --no-interaction || vendor/bin/behat --strict -vvv --no-interaction --rerun
-after_failure:
- - vendor/lakion/mink-debug-extension/travis/tools/upload-textfiles "${SYLIUS_BUILD_DIR}/*.log"
+branches:
+ only:
+ - master
diff --git a/LICENCE.txt b/LICENCE.txt
new file mode 100644
index 0000000..bae1c61
--- /dev/null
+++ b/LICENCE.txt
@@ -0,0 +1,7 @@
+Copyright 2020 Monsieur Biz
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/README.md b/README.md
index 79aa5bc..7039ee1 100644
--- a/README.md
+++ b/README.md
@@ -1,26 +1,39 @@
-# Monsieur Biz Sylius sales report plugin
+
+
+
+
+
+
+
+
+
-## Install
+Sales Reports
- Without symfony binary :
-
-`composer require monsieurbiz/sylius-sales-reports-plugin=dev-master`
-
- With symfony binary :
-
-`symfony composer require monsieurbiz/sylius-sales-reports-plugin=dev-master`
+[](https://github.com/monsieurbiz/SyliusSalesReportsPlugin/blob/master/LICENSE.txt)
+[](https://travis-ci.com/monsieurbiz/SyliusSalesReportsPlugin)
+[](https://scrutinizer-ci.com/g/monsieurbiz/SyliusSalesReportsPlugin/?branch=master)
-> We will make tagged release when the plugin development will be ended. Use it carefully until this moment
+A simple plugin to have sales reports in Sylius
-## Configure
-
-Edit your `config/bundles.php` to add this line :
+## Installation
+```bash
+`composer require monsieurbiz/sylius-sales-reports-plugin
```
+
+Change your `config/bundles.php` file to add the line for the plugin :
+
+```php
+ ['all' => true],
-```
+];
+```
-Import plugin config in `config/packages/monsieur_biz_sales_reports_plugin.yaml` :
+Then create the config file in `config/packages/monsieur_biz_sales_reports_plugin.yaml` :
```yaml
imports:
@@ -28,9 +41,14 @@ imports:
```
-Import plugin routing in `config/routes.yaml` :
+Finally import the routes in `config/routes.yaml` :
```yaml
monsieur_biz_sales_reports_plugin:
resource: "@MonsieurBizSyliusSalesReportsPlugin/Resources/config/routing.yaml"
```
+
+## Contributing
+
+You can open an issue or a Pull Request if you want! 😘
+Thank you!
diff --git a/TESTING.md b/TESTING.md
new file mode 100644
index 0000000..ae0583d
--- /dev/null
+++ b/TESTING.md
@@ -0,0 +1,55 @@
+# Testing
+
+## Installation
+
+1. From the plugin root directory, run the following commands:
+
+ ```bash
+ $ (cd tests/Application && yarn install)
+ $ (cd tests/Application && yarn build)
+ $ (cd tests/Application && bin/console assets:install public -e test)
+
+ $ (cd tests/Application && bin/console doctrine:database:create -e test)
+ $ (cd tests/Application && bin/console doctrine:schema:create -e test)
+ ```
+
+To be able to setup the plugin's database, remember to configure your database credentials in `tests/Application/.env`
+and `tests/Application/.env.test`. You can also add custom configuration in `tests/Application/.env.test.local`.
+
+## Usage
+
+### Running plugin tests
+
+ - PHPUnit
+
+ ```bash
+ $ vendor/bin/phpunit
+ ```
+
+ - PHPSpec
+
+ ```bash
+ $ vendor/bin/phpspec run
+ ```
+
+ - PHPStan
+
+ ```bash
+ $ vendor/bin/phpstan analyse src
+ ```
+
+### Opening Sylius with the plugin
+
+- Using `test` environment:
+
+ ```bash
+ $ (cd tests/Application && bin/console sylius:fixtures:load -e test)
+ $ (cd tests/Application && bin/console server:run -d public -e test)
+ ```
+
+- Using `dev` environment:
+
+ ```bash
+ $ (cd tests/Application && bin/console sylius:fixtures:load -e dev)
+ $ (cd tests/Application && bin/console server:run -d public -e dev)
+ ```
diff --git a/UPGRADE-1.3.md b/UPGRADE-1.3.md
deleted file mode 100644
index 9fd4141..0000000
--- a/UPGRADE-1.3.md
+++ /dev/null
@@ -1,28 +0,0 @@
-# UPGRADE FROM `v1.2.X` TO `v1.3.0`
-
-## Application
-
-* Run `composer require sylius/sylius:~1.3.0 --no-update`
-
-* Add the following code in your `behat.yml(.dist)` file:
-
- ```yaml
- default:
- extensions:
- FriendsOfBehat\SymfonyExtension:
- env_file: ~
- ```
-
-* Incorporate changes from the following files into plugin's test application:
-
- * [`tests/Application/package.json`](https://github.com/Sylius/PluginSkeleton/blob/1.3/tests/Application/package.json) ([see diff](https://github.com/Sylius/PluginSkeleton/pull/134/files#diff-726e1353c14df7d91379c0dea6b30eef))
- * [`tests/Application/.babelrc`](https://github.com/Sylius/PluginSkeleton/blob/1.3/tests/Application/.babelrc) ([see diff](https://github.com/Sylius/PluginSkeleton/pull/134/files#diff-a2527d9d8ad55460b2272274762c9386))
- * [`tests/Application/.eslintrc.js`](https://github.com/Sylius/PluginSkeleton/blob/1.3/tests/Application/.eslintrc.js) ([see diff](https://github.com/Sylius/PluginSkeleton/pull/134/files#diff-396c8c412b119deaa7dd84ae28ae04ca))
-
-* Update PHP and JS dependencies by running `composer update` and `(cd tests/Application && yarn upgrade)`
-
-* Clear cache by running `(cd tests/Application && bin/console cache:clear)`
-
-* Install assets by `(cd tests/Application && bin/console assets:install web)` and `(cd tests/Application && yarn build)`
-
-* optionally, remove the build for PHP 7.1. in `.travis.yml`
diff --git a/UPGRADE-1.4.md b/UPGRADE-1.4.md
deleted file mode 100644
index dc84cad..0000000
--- a/UPGRADE-1.4.md
+++ /dev/null
@@ -1,86 +0,0 @@
-# UPGRADE FROM `v1.3.X` TO `v1.4.0`
-
-First step is upgrading Sylius with composer
-
-- `composer require sylius/sylius:~1.4.0`
-
-### Test application database
-
-#### Migrations
-
-If you provide migrations with your plugin, take a look at following changes:
-
-* Change base `AbstractMigration` namespace to `Doctrine\Migrations\AbstractMigration`
-* Add `: void` return types to both `up` and `down` functions
-
-#### Schema update
-
-If you don't use migrations, just run `(cd tests/Application && bin/console doctrine:schema:update --force)` to update the test application's database schema.
-
-### Dotenv
-
-* `composer require symfony/dotenv:^4.2 --dev`
-* Follow [Symfony dotenv update guide](https://symfony.com/doc/current/configuration/dot-env-changes.html) to incorporate required changes in `.env` files structure. Remember - they should be done on `tests/Application/` level! Optionally, you can take a look at [corresponding PR](https://github.com/Sylius/PluginSkeleton/pull/156/) introducing these changes in **PluginSkeleton** (this PR also includes changes with Behat - see below)
-
-Don't forget to clear the cache (`tests/Application/bin/console cache:clear`) to be 100% everything is loaded properly.
-
----
-
-### Behat
-
-If you're using Behat and want to be up-to-date with our configuration
-
-* Update required extensions with `composer require friends-of-behat/symfony-extension:^2.0 friends-of-behat/page-object-extension:^0.3 --dev`
-* Remove extensions that are not needed yet with `composer remove friends-of-behat/context-service-extension friends-of-behat/cross-container-extension friends-of-behat/service-container-extension --dev`
-* Update your `behat.yml` - look at the diff [here](https://github.com/Sylius/Sylius-Standard/pull/322/files#diff-7bde54db60a6e933518d8b61b929edce)
-* Add `SymfonyExtensionBundle` to your `tests/Application/config/bundles.php`:
- ```php
- return [
- //...
- FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle::class => ['test' => true, 'test_cached' => true],
- ];
- ```
-* If you use our Travis CI configuration, follow [these changes](https://github.com/Sylius/PluginSkeleton/pull/156/files#diff-354f30a63fb0907d4ad57269548329e3) introduced in `.travis.yml` file
-* Create `tests/Application/config/services_test.yaml` file with the following code and add these your own Behat services as well:
- ```yaml
- imports:
- - { resource: "../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml" }
- ```
-* Remove all `__symfony__` prefixes in your Behat services
-* Remove all `` tags from your Behat services
-* Make your Behat services public by default with ``
-* Change `contexts_services ` in your suite definitions to `contexts`
-* Take a look at [SymfonyExtension UPGRADE guide](https://github.com/FriendsOfBehat/SymfonyExtension/blob/master/UPGRADE-2.0.md) if you have any more problems
-
-### Phpstan
-
-* Fix the container XML path parameter in the `phpstan.neon` file as done [here](https://github.com/Sylius/PluginSkeleton/commit/37fa614dbbcf8eb31b89eaf202b4bd4d89a5c7b3)
-
-# UPGRADE FROM `v1.2.X` TO `v1.4.0`
-
-Firstly, check out the [PluginSkeleton 1.3 upgrade guide](https://github.com/Sylius/PluginSkeleton/blob/1.4/UPGRADE-1.3.md) to update Sylius version step by step.
-To upgrade to Sylius 1.4 follow instructions from [the previous section](https://github.com/Sylius/PluginSkeleton/blob/1.4/UPGRADE-1.4.md#upgrade-from-v13x-to-v140) with following changes:
-
-### Doctrine migrations
-
-* Change namespaces of copied migrations to `Sylius\Migrations`
-
-### Dotenv
-
-* These changes are not required, but can be done as well, if you've changed application directory structure in `1.2.x` to `1.3` update
-
-### Behat
-
-* Add `\FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle()` to your bundles lists in `tests/Application/AppKernel.php` (preferably only in `test` environment)
-* Import Sylius Behat services in `tests/Application/config/config_test.yml` and your own Behat services as well:
- ```yaml
- imports:
- - { resource: "../../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml" }
- ```
-* Specify test application's kernel path in `behat.yml`:
- ```yaml
- FriendsOfBehat\SymfonyExtension:
- kernel:
- class: AppKernel
- path: tests/Application/app/AppKernel.php
- ```
diff --git a/behat.yml.dist b/behat.yml.dist
deleted file mode 100644
index b3d0fda..0000000
--- a/behat.yml.dist
+++ /dev/null
@@ -1,47 +0,0 @@
-imports:
- - vendor/sylius/sylius/src/Sylius/Behat/Resources/config/suites.yml
- - tests/Behat/Resources/suites.yml
-
-default:
- extensions:
- Lakion\Behat\MinkDebugExtension:
- directory: etc/build
- clean_start: false
- screenshot: true
-
- Behat\MinkExtension:
- files_path: "%paths.base%/vendor/sylius/sylius/src/Sylius/Behat/Resources/fixtures/"
- base_url: "http://localhost:8080/"
- default_session: symfony
- javascript_session: chrome
- sessions:
- symfony:
- symfony: ~
- chrome:
- selenium2:
- browser: chrome
- capabilities:
- browserName: chrome
- browser: chrome
- version: ""
- marionette: null # https://github.com/Behat/MinkExtension/pull/311
- chrome:
- switches:
- - "start-fullscreen"
- - "start-maximized"
- - "no-sandbox"
- firefox:
- selenium2:
- browser: firefox
- show_auto: false
-
- FriendsOfBehat\SymfonyExtension:
- bootstrap: tests/Application/config/bootstrap.php
- kernel:
- class: Tests\Monsieurbiz\SyliusSalesReportsPlugin\Application\Kernel
-
- FriendsOfBehat\VariadicExtension: ~
-
- FriendsOfBehat\SuiteSettingsExtension:
- paths:
- - "features"
diff --git a/composer.json b/composer.json
index 0352e3a..0dd4441 100644
--- a/composer.json
+++ b/composer.json
@@ -2,11 +2,11 @@
"name": "monsieurbiz/sylius-sales-reports-plugin",
"type": "sylius-plugin",
"keywords": ["sylius", "sylius-plugin"],
- "description": "__Your description__",
+ "description": "A simple plugin to have sales reports in Sylius",
"license": "MIT",
"require": {
- "php": "^7.2",
- "sylius/sylius": "^1.4.0"
+ "php": "~7.2",
+ "sylius/sylius": "~1.3"
},
"require-dev": {
"behat/behat": "^3.4",
@@ -41,11 +41,14 @@
}
},
"autoload-dev": {
+ "psr-4": {
+ "Tests\\MonsieurBiz\\SyliusSalesReportsPlugin\\": "tests/"
+ },
"classmap": ["tests/Application/Kernel.php"]
},
"extra": {
"branch-alias": {
- "dev-master": "1.6-dev"
+ "dev-master": "1.0-dev"
}
}
}
diff --git a/easy-coding-standard.yml b/easy-coding-standard.yml
deleted file mode 100644
index 2403599..0000000
--- a/easy-coding-standard.yml
+++ /dev/null
@@ -1,2 +0,0 @@
-imports:
- - { resource: 'vendor/sylius-labs/coding-standard/easy-coding-standard.yml' }
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..a345e5d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,32 @@
+{
+ "name": "monsieurbiz-sylius-rich-editor-plugin",
+ "version": "0.0.1",
+ "description": "Add and manage custom content blocks in your content",
+ "main": "webpack.config.js",
+ "scripts": {
+ "build": "encore production",
+ "watch": "encore dev --watch"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/monsieurbiz/sylius-rich-editor-plugin.git"
+ },
+ "author": "Monsieur Biz ",
+ "license": "MIT",
+ "bugs": {
+ "url": "https://github.com/monsieurbiz/sylius-rich-editor-plugin/issues"
+ },
+ "homepage": "https://github.com/monsieurbiz/sylius-rich-editor-plugin#readme",
+ "devDependencies": {
+ "@symfony/webpack-encore": "^0.28.1",
+ "autoprefixer": "^9.7.3",
+ "node-sass": "^4.13.0",
+ "postcss-loader": "^3.0.0",
+ "sass-loader": "^7.3.1"
+ },
+ "dependencies": {
+ "dragula": "^3.7.2",
+ "pell": "^1.0.6",
+ "tingle.js": "^0.15.2"
+ }
+}
diff --git a/phpstan.neon b/phpstan.neon
index ea8e49e..899e069 100644
--- a/phpstan.neon
+++ b/phpstan.neon
@@ -3,7 +3,9 @@ includes:
- vendor/phpstan/phpstan-webmozart-assert/extension.neon
parameters:
- reportUnmatchedIgnoredErrors: false
+ level: max
+ paths:
+ - %rootDir%/src/
excludes_analyse:
# Makes PHPStan crash
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
index 609c106..29bd013 100644
--- a/phpunit.xml.dist
+++ b/phpunit.xml.dist
@@ -1,20 +1,20 @@
-
+
tests
-
-
+
+
+
diff --git a/src/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php
index 8fac13a..349e5a8 100644
--- a/src/DependencyInjection/Configuration.php
+++ b/src/DependencyInjection/Configuration.php
@@ -14,12 +14,12 @@ final class Configuration implements ConfigurationInterface
*/
public function getConfigTreeBuilder(): TreeBuilder
{
- $treeBuilder = new TreeBuilder(MonsieurBizSylius__YourName_Extension::EXTENSION_CONFIG_NAME);
+ $treeBuilder = new TreeBuilder(MonsieurBizSyliusSalesReportsExtension::EXTENSION_CONFIG_NAME);
if (\method_exists($treeBuilder, 'getRootNode')) {
$rootNode = $treeBuilder->getRootNode();
} else {
// BC layer for symfony/config 4.1 and older
- $rootNode = $treeBuilder->root(MonsieurBizSylius__YourName_Extension::EXTENSION_CONFIG_NAME);
+ $rootNode = $treeBuilder->root(MonsieurBizSyliusSalesReportsExtension::EXTENSION_CONFIG_NAME);
}
return $treeBuilder;
diff --git a/src/DependencyInjection/MonsieurBizSylius__YourName_Extension.php b/src/DependencyInjection/MonsieurBizSyliusSalesReportsExtension.php
similarity index 90%
rename from src/DependencyInjection/MonsieurBizSylius__YourName_Extension.php
rename to src/DependencyInjection/MonsieurBizSyliusSalesReportsExtension.php
index cd6855b..583442c 100644
--- a/src/DependencyInjection/MonsieurBizSylius__YourName_Extension.php
+++ b/src/DependencyInjection/MonsieurBizSyliusSalesReportsExtension.php
@@ -7,7 +7,7 @@
use Symfony\Component\DependencyInjection\ContainerBuilder;
use Symfony\Component\DependencyInjection\Extension\Extension;
-final class MonsieurBizSylius__YourName_Extension extends Extension
+final class MonsieurBizSyliusSalesReportsExtension extends Extension
{
CONST EXTENSION_CONFIG_NAME = 'monsieur_biz_sylius_sales_reports';
diff --git a/tests/Application/.babelrc b/tests/Application/.babelrc
new file mode 100644
index 0000000..e563a62
--- /dev/null
+++ b/tests/Application/.babelrc
@@ -0,0 +1,15 @@
+{
+ "presets": [
+ ["env", {
+ "targets": {
+ "node": "6"
+ },
+ "useBuiltIns": true
+ }]
+ ],
+ "plugins": [
+ ["transform-object-rest-spread", {
+ "useBuiltIns": true
+ }]
+ ]
+}
diff --git a/tests/Application/.env b/tests/Application/.env
new file mode 100644
index 0000000..1465c68
--- /dev/null
+++ b/tests/Application/.env
@@ -0,0 +1,23 @@
+# This file is a "template" of which env vars needs to be defined in your configuration or in an .env file
+# Set variables here that may be different on each deployment target of the app, e.g. development, staging, production.
+# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
+
+###> symfony/framework-bundle ###
+APP_ENV=dev
+APP_DEBUG=1
+APP_SECRET=EDITME
+###< symfony/framework-bundle ###
+
+###> doctrine/doctrine-bundle ###
+# Format described at http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/configuration.html#connecting-using-a-url
+# For a sqlite database, use: "sqlite:///%kernel.project_dir%/var/data.db"
+# Set "serverVersion" to your server version to avoid edge-case exceptions and extra database calls
+DATABASE_URL=mysql://root@127.0.0.1/sylius_%kernel.environment%?serverVersion=5.5
+###< doctrine/doctrine-bundle ###
+
+###> symfony/swiftmailer-bundle ###
+# For Gmail as a transport, use: "gmail://username:password@localhost"
+# For a generic SMTP server, use: "smtp://localhost:25?encryption=&auth_mode="
+# Delivery is disabled by default via "null://localhost"
+MAILER_URL=smtp://localhost
+###< symfony/swiftmailer-bundle ###
diff --git a/tests/Application/.env.test b/tests/Application/.env.test
new file mode 100644
index 0000000..bed9c72
--- /dev/null
+++ b/tests/Application/.env.test
@@ -0,0 +1,3 @@
+APP_SECRET='ch4mb3r0f5ecr3ts'
+
+KERNEL_CLASS='Tests\MonsieurBiz\SyliusSalesReportsPlugin\Application\Kernel'
diff --git a/tests/Application/.eslintrc.js b/tests/Application/.eslintrc.js
new file mode 100644
index 0000000..92c4cee
--- /dev/null
+++ b/tests/Application/.eslintrc.js
@@ -0,0 +1,20 @@
+module.exports = {
+ extends: 'airbnb-base',
+ env: {
+ node: true,
+ },
+ rules: {
+ 'object-shorthand': ['error', 'always', {
+ avoidQuotes: true,
+ avoidExplicitReturnArrows: true,
+ }],
+ 'function-paren-newline': ['error', 'consistent'],
+ 'max-len': ['warn', 120, 2, {
+ ignoreUrls: true,
+ ignoreComments: false,
+ ignoreRegExpLiterals: true,
+ ignoreStrings: true,
+ ignoreTemplateLiterals: true,
+ }],
+ },
+};
diff --git a/tests/Application/.gitignore b/tests/Application/.gitignore
new file mode 100644
index 0000000..8ad1225
--- /dev/null
+++ b/tests/Application/.gitignore
@@ -0,0 +1,22 @@
+/public/assets
+/public/css
+/public/js
+/public/media/*
+!/public/media/image/
+/public/media/image/*
+!/public/media/image/.gitignore
+
+/node_modules
+
+###> symfony/framework-bundle ###
+/.env.*.local
+/.env.local
+/.env.local.php
+/public/bundles
+/var/
+/vendor/
+###< symfony/framework-bundle ###
+
+###> symfony/web-server-bundle ###
+/.web-server-pid
+###< symfony/web-server-bundle ###
diff --git a/tests/Application/Kernel.php b/tests/Application/Kernel.php
index 0f8aa90..f01d962 100644
--- a/tests/Application/Kernel.php
+++ b/tests/Application/Kernel.php
@@ -2,7 +2,7 @@
declare(strict_types=1);
-namespace Tests\Monsieurbiz\SyliusSalesReportsPlugin\Application;
+namespace Tests\MonsieurBiz\SyliusSalesReportsPlugin\Application;
use PSS\SymfonyMockerContainer\DependencyInjection\MockerContainer;
use Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait;
diff --git a/tests/Application/bin/console b/tests/Application/bin/console
new file mode 100755
index 0000000..cf171ba
--- /dev/null
+++ b/tests/Application/bin/console
@@ -0,0 +1,38 @@
+#!/usr/bin/env php
+getParameterOption(['--env', '-e'], null, true)) {
+ putenv('APP_ENV='.$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = $env);
+}
+
+if ($input->hasParameterOption('--no-debug', true)) {
+ putenv('APP_DEBUG='.$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = '0');
+}
+
+require dirname(__DIR__).'/config/bootstrap.php';
+
+if ($_SERVER['APP_DEBUG']) {
+ umask(0000);
+
+ if (class_exists(Debug::class)) {
+ Debug::enable();
+ }
+}
+
+$kernel = new Kernel($_SERVER['APP_ENV'], (bool) $_SERVER['APP_DEBUG']);
+$application = new Application($kernel);
+$application->run($input);
diff --git a/tests/Application/composer.json b/tests/Application/composer.json
new file mode 100644
index 0000000..326735f
--- /dev/null
+++ b/tests/Application/composer.json
@@ -0,0 +1,5 @@
+{
+ "name": "sylius/plugin-skeleton-test-application",
+ "description": "Sylius application for plugin testing purposes (composer.json needed for project dir resolving)",
+ "license": "MIT"
+}
diff --git a/tests/Application/config/bootstrap.php b/tests/Application/config/bootstrap.php
new file mode 100644
index 0000000..8ea2af2
--- /dev/null
+++ b/tests/Application/config/bootstrap.php
@@ -0,0 +1,21 @@
+=1.2)
+if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) {
+ $_SERVER += $env;
+ $_ENV += $env;
+} elseif (!class_exists(Dotenv::class)) {
+ throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
+} else {
+ // load all the .env files
+ (new Dotenv(true))->loadEnv(dirname(__DIR__).'/.env');
+}
+
+$_SERVER['APP_ENV'] = $_ENV['APP_ENV'] = ($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null) ?: 'dev';
+$_SERVER['APP_DEBUG'] = $_SERVER['APP_DEBUG'] ?? $_ENV['APP_DEBUG'] ?? 'prod' !== $_SERVER['APP_ENV'];
+$_SERVER['APP_DEBUG'] = $_ENV['APP_DEBUG'] = (int) $_SERVER['APP_DEBUG'] || filter_var($_SERVER['APP_DEBUG'], FILTER_VALIDATE_BOOLEAN) ? '1' : '0';
diff --git a/tests/Application/config/bundles.php b/tests/Application/config/bundles.php
new file mode 100644
index 0000000..739e282
--- /dev/null
+++ b/tests/Application/config/bundles.php
@@ -0,0 +1,60 @@
+ ['all' => true],
+ Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
+ Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
+ Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle::class => ['all' => true],
+ Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
+ Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
+ Doctrine\Bundle\DoctrineCacheBundle\DoctrineCacheBundle::class => ['all' => true],
+ Sylius\Bundle\OrderBundle\SyliusOrderBundle::class => ['all' => true],
+ Sylius\Bundle\MoneyBundle\SyliusMoneyBundle::class => ['all' => true],
+ Sylius\Bundle\CurrencyBundle\SyliusCurrencyBundle::class => ['all' => true],
+ Sylius\Bundle\LocaleBundle\SyliusLocaleBundle::class => ['all' => true],
+ Sylius\Bundle\ProductBundle\SyliusProductBundle::class => ['all' => true],
+ Sylius\Bundle\ChannelBundle\SyliusChannelBundle::class => ['all' => true],
+ Sylius\Bundle\AttributeBundle\SyliusAttributeBundle::class => ['all' => true],
+ Sylius\Bundle\TaxationBundle\SyliusTaxationBundle::class => ['all' => true],
+ Sylius\Bundle\ShippingBundle\SyliusShippingBundle::class => ['all' => true],
+ Sylius\Bundle\PaymentBundle\SyliusPaymentBundle::class => ['all' => true],
+ Sylius\Bundle\MailerBundle\SyliusMailerBundle::class => ['all' => true],
+ Sylius\Bundle\PromotionBundle\SyliusPromotionBundle::class => ['all' => true],
+ Sylius\Bundle\AddressingBundle\SyliusAddressingBundle::class => ['all' => true],
+ Sylius\Bundle\InventoryBundle\SyliusInventoryBundle::class => ['all' => true],
+ Sylius\Bundle\TaxonomyBundle\SyliusTaxonomyBundle::class => ['all' => true],
+ Sylius\Bundle\UserBundle\SyliusUserBundle::class => ['all' => true],
+ Sylius\Bundle\CustomerBundle\SyliusCustomerBundle::class => ['all' => true],
+ Sylius\Bundle\UiBundle\SyliusUiBundle::class => ['all' => true],
+ Sylius\Bundle\ReviewBundle\SyliusReviewBundle::class => ['all' => true],
+ Sylius\Bundle\CoreBundle\SyliusCoreBundle::class => ['all' => true],
+ Sylius\Bundle\ResourceBundle\SyliusResourceBundle::class => ['all' => true],
+ Sylius\Bundle\GridBundle\SyliusGridBundle::class => ['all' => true],
+ winzou\Bundle\StateMachineBundle\winzouStateMachineBundle::class => ['all' => true],
+ Sonata\CoreBundle\SonataCoreBundle::class => ['all' => true],
+ Sonata\BlockBundle\SonataBlockBundle::class => ['all' => true],
+ Sonata\IntlBundle\SonataIntlBundle::class => ['all' => true],
+ Bazinga\Bundle\HateoasBundle\BazingaHateoasBundle::class => ['all' => true],
+ JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true],
+ FOS\RestBundle\FOSRestBundle::class => ['all' => true],
+ Knp\Bundle\GaufretteBundle\KnpGaufretteBundle::class => ['all' => true],
+ Knp\Bundle\MenuBundle\KnpMenuBundle::class => ['all' => true],
+ Liip\ImagineBundle\LiipImagineBundle::class => ['all' => true],
+ Payum\Bundle\PayumBundle\PayumBundle::class => ['all' => true],
+ Stof\DoctrineExtensionsBundle\StofDoctrineExtensionsBundle::class => ['all' => true],
+ WhiteOctober\PagerfantaBundle\WhiteOctoberPagerfantaBundle::class => ['all' => true],
+ Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
+ Doctrine\Bundle\FixturesBundle\DoctrineFixturesBundle::class => ['all' => true],
+ Sylius\Bundle\FixturesBundle\SyliusFixturesBundle::class => ['all' => true],
+ Sylius\Bundle\PayumBundle\SyliusPayumBundle::class => ['all' => true],
+ Sylius\Bundle\ThemeBundle\SyliusThemeBundle::class => ['all' => true],
+ Symfony\Bundle\WebServerBundle\WebServerBundle::class => ['all' => true],
+ Sylius\Bundle\AdminBundle\SyliusAdminBundle::class => ['all' => true],
+ Sylius\Bundle\ShopBundle\SyliusShopBundle::class => ['all' => true],
+ FOS\OAuthServerBundle\FOSOAuthServerBundle::class => ['all' => true],
+ Sylius\Bundle\AdminApiBundle\SyliusAdminApiBundle::class => ['all' => true],
+ MonsieurBiz\SyliusSalesReportsPlugin\MonsieurBizSyliusSalesReportsPlugin::class => ['all' => true],
+ Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
+ Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true, 'test_cached' => true],
+ FriendsOfBehat\SymfonyExtension\Bundle\FriendsOfBehatSymfonyExtensionBundle::class => ['test' => true, 'test_cached' => true],
+];
diff --git a/tests/Application/config/packages/_sylius.yaml b/tests/Application/config/packages/_sylius.yaml
new file mode 100644
index 0000000..89674ac
--- /dev/null
+++ b/tests/Application/config/packages/_sylius.yaml
@@ -0,0 +1,14 @@
+imports:
+ - { resource: "@SyliusCoreBundle/Resources/config/app/config.yml" }
+
+ - { resource: "@SyliusAdminBundle/Resources/config/app/config.yml" }
+ - { resource: "@SyliusAdminApiBundle/Resources/config/app/config.yml" }
+
+ - { resource: "@SyliusShopBundle/Resources/config/app/config.yml" }
+
+parameters:
+ sylius_core.public_dir: '%kernel.project_dir%/public'
+
+sylius_shop:
+ product_grid:
+ include_all_descendants: true
diff --git a/tests/Application/config/packages/dev/framework.yaml b/tests/Application/config/packages/dev/framework.yaml
new file mode 100644
index 0000000..5dd13a0
--- /dev/null
+++ b/tests/Application/config/packages/dev/framework.yaml
@@ -0,0 +1,3 @@
+framework:
+ profiler: { only_exceptions: false }
+ ide: phpstorm
diff --git a/tests/Application/config/packages/dev/jms_serializer.yaml b/tests/Application/config/packages/dev/jms_serializer.yaml
new file mode 100644
index 0000000..353e460
--- /dev/null
+++ b/tests/Application/config/packages/dev/jms_serializer.yaml
@@ -0,0 +1,7 @@
+jms_serializer:
+ visitors:
+ json:
+ options:
+ - JSON_PRETTY_PRINT
+ - JSON_UNESCAPED_SLASHES
+ - JSON_PRESERVE_ZERO_FRACTION
diff --git a/tests/Application/config/packages/dev/monolog.yaml b/tests/Application/config/packages/dev/monolog.yaml
new file mode 100644
index 0000000..da2b092
--- /dev/null
+++ b/tests/Application/config/packages/dev/monolog.yaml
@@ -0,0 +1,9 @@
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
+ firephp:
+ type: firephp
+ level: info
diff --git a/tests/Application/config/packages/dev/routing.yaml b/tests/Application/config/packages/dev/routing.yaml
new file mode 100644
index 0000000..4116679
--- /dev/null
+++ b/tests/Application/config/packages/dev/routing.yaml
@@ -0,0 +1,3 @@
+framework:
+ router:
+ strict_requirements: true
diff --git a/tests/Application/config/packages/dev/swiftmailer.yaml b/tests/Application/config/packages/dev/swiftmailer.yaml
new file mode 100644
index 0000000..f438078
--- /dev/null
+++ b/tests/Application/config/packages/dev/swiftmailer.yaml
@@ -0,0 +1,2 @@
+swiftmailer:
+ disable_delivery: true
diff --git a/tests/Application/config/packages/dev/web_profiler.yaml b/tests/Application/config/packages/dev/web_profiler.yaml
new file mode 100644
index 0000000..1f1cb2b
--- /dev/null
+++ b/tests/Application/config/packages/dev/web_profiler.yaml
@@ -0,0 +1,3 @@
+web_profiler:
+ toolbar: true
+ intercept_redirects: false
diff --git a/tests/Application/config/packages/doctrine.yaml b/tests/Application/config/packages/doctrine.yaml
new file mode 100644
index 0000000..f51ba5a
--- /dev/null
+++ b/tests/Application/config/packages/doctrine.yaml
@@ -0,0 +1,14 @@
+parameters:
+ # Adds a fallback DATABASE_URL if the env var is not set.
+ # This allows you to run cache:warmup even if your
+ # environment variables are not available yet.
+ # You should not need to change this value.
+ env(DATABASE_URL): ''
+
+doctrine:
+ dbal:
+ driver: 'pdo_mysql'
+ server_version: '5.7'
+ charset: UTF8
+
+ url: '%env(resolve:DATABASE_URL)%'
diff --git a/tests/Application/config/packages/doctrine_migrations.yaml b/tests/Application/config/packages/doctrine_migrations.yaml
new file mode 100644
index 0000000..c0a1202
--- /dev/null
+++ b/tests/Application/config/packages/doctrine_migrations.yaml
@@ -0,0 +1,5 @@
+doctrine_migrations:
+ dir_name: "%kernel.project_dir%/src/Migrations"
+
+ # Namespace is arbitrary but should be different from App\Migrations as migrations classes should NOT be autoloaded
+ namespace: DoctrineMigrations
diff --git a/tests/Application/config/packages/fos_rest.yaml b/tests/Application/config/packages/fos_rest.yaml
new file mode 100644
index 0000000..a72eef7
--- /dev/null
+++ b/tests/Application/config/packages/fos_rest.yaml
@@ -0,0 +1,11 @@
+fos_rest:
+ exception: true
+ view:
+ formats:
+ json: true
+ xml: true
+ empty_content: 204
+ format_listener:
+ rules:
+ - { path: '^/api/.*', priorities: ['json', 'xml'], fallback_format: json, prefer_extension: true }
+ - { path: '^/', stop: true }
diff --git a/tests/Application/config/packages/framework.yaml b/tests/Application/config/packages/framework.yaml
new file mode 100644
index 0000000..e74ed81
--- /dev/null
+++ b/tests/Application/config/packages/framework.yaml
@@ -0,0 +1,7 @@
+framework:
+ secret: '%env(APP_SECRET)%'
+ form: true
+ csrf_protection: true
+ templating: { engines: ["twig"] }
+ session:
+ handler_id: ~
diff --git a/tests/Application/config/packages/jms_serializer.yaml b/tests/Application/config/packages/jms_serializer.yaml
new file mode 100644
index 0000000..64dd8d1
--- /dev/null
+++ b/tests/Application/config/packages/jms_serializer.yaml
@@ -0,0 +1,4 @@
+jms_serializer:
+ visitors:
+ xml:
+ format_output: '%kernel.debug%'
diff --git a/tests/Application/config/packages/liip_imagine.yaml b/tests/Application/config/packages/liip_imagine.yaml
new file mode 100644
index 0000000..bb2e7ce
--- /dev/null
+++ b/tests/Application/config/packages/liip_imagine.yaml
@@ -0,0 +1,6 @@
+liip_imagine:
+ resolvers:
+ default:
+ web_path:
+ web_root: "%kernel.project_dir%/public"
+ cache_prefix: "media/cache"
diff --git a/tests/Application/config/packages/prod/doctrine.yaml b/tests/Application/config/packages/prod/doctrine.yaml
new file mode 100644
index 0000000..2f16f0f
--- /dev/null
+++ b/tests/Application/config/packages/prod/doctrine.yaml
@@ -0,0 +1,31 @@
+doctrine:
+ orm:
+ metadata_cache_driver:
+ type: service
+ id: doctrine.system_cache_provider
+ query_cache_driver:
+ type: service
+ id: doctrine.system_cache_provider
+ result_cache_driver:
+ type: service
+ id: doctrine.result_cache_provider
+
+services:
+ doctrine.result_cache_provider:
+ class: Symfony\Component\Cache\DoctrineProvider
+ public: false
+ arguments:
+ - '@doctrine.result_cache_pool'
+ doctrine.system_cache_provider:
+ class: Symfony\Component\Cache\DoctrineProvider
+ public: false
+ arguments:
+ - '@doctrine.system_cache_pool'
+
+framework:
+ cache:
+ pools:
+ doctrine.result_cache_pool:
+ adapter: cache.app
+ doctrine.system_cache_pool:
+ adapter: cache.system
diff --git a/tests/Application/config/packages/prod/jms_serializer.yaml b/tests/Application/config/packages/prod/jms_serializer.yaml
new file mode 100644
index 0000000..bc97faf
--- /dev/null
+++ b/tests/Application/config/packages/prod/jms_serializer.yaml
@@ -0,0 +1,6 @@
+jms_serializer:
+ visitors:
+ json:
+ options:
+ - JSON_UNESCAPED_SLASHES
+ - JSON_PRESERVE_ZERO_FRACTION
diff --git a/tests/Application/config/packages/prod/monolog.yaml b/tests/Application/config/packages/prod/monolog.yaml
new file mode 100644
index 0000000..6461211
--- /dev/null
+++ b/tests/Application/config/packages/prod/monolog.yaml
@@ -0,0 +1,10 @@
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ nested:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
diff --git a/tests/Application/config/packages/routing.yaml b/tests/Application/config/packages/routing.yaml
new file mode 100644
index 0000000..368bc7f
--- /dev/null
+++ b/tests/Application/config/packages/routing.yaml
@@ -0,0 +1,3 @@
+framework:
+ router:
+ strict_requirements: ~
diff --git a/tests/Application/config/packages/security.yaml b/tests/Application/config/packages/security.yaml
new file mode 100644
index 0000000..830b03d
--- /dev/null
+++ b/tests/Application/config/packages/security.yaml
@@ -0,0 +1,102 @@
+parameters:
+ sylius.security.admin_regex: "^/admin"
+ sylius.security.api_regex: "^/api"
+ sylius.security.shop_regex: "^/(?!admin|api/.*|api$|media/.*)[^/]++"
+
+security:
+ providers:
+ sylius_admin_user_provider:
+ id: sylius.admin_user_provider.email_or_name_based
+ sylius_shop_user_provider:
+ id: sylius.shop_user_provider.email_or_name_based
+ encoders:
+ Sylius\Component\User\Model\UserInterface: sha512
+ firewalls:
+ admin:
+ switch_user: true
+ context: admin
+ pattern: "%sylius.security.admin_regex%"
+ provider: sylius_admin_user_provider
+ form_login:
+ provider: sylius_admin_user_provider
+ login_path: sylius_admin_login
+ check_path: sylius_admin_login_check
+ failure_path: sylius_admin_login
+ default_target_path: sylius_admin_dashboard
+ use_forward: false
+ use_referer: true
+ csrf_token_generator: security.csrf.token_manager
+ csrf_parameter: _csrf_admin_security_token
+ csrf_token_id: admin_authenticate
+ remember_me:
+ secret: "%env(APP_SECRET)%"
+ path: /admin
+ name: APP_ADMIN_REMEMBER_ME
+ lifetime: 31536000
+ remember_me_parameter: _remember_me
+ logout:
+ path: sylius_admin_logout
+ target: sylius_admin_login
+ anonymous: true
+
+ oauth_token:
+ pattern: "%sylius.security.api_regex%/oauth/v2/token"
+ security: false
+
+ api:
+ pattern: "%sylius.security.api_regex%/.*"
+ provider: sylius_admin_user_provider
+ fos_oauth: true
+ stateless: true
+ anonymous: true
+
+ shop:
+ switch_user: { role: ROLE_ALLOWED_TO_SWITCH }
+ context: shop
+ pattern: "%sylius.security.shop_regex%"
+ provider: sylius_shop_user_provider
+ form_login:
+ success_handler: sylius.authentication.success_handler
+ failure_handler: sylius.authentication.failure_handler
+ provider: sylius_shop_user_provider
+ login_path: sylius_shop_login
+ check_path: sylius_shop_login_check
+ failure_path: sylius_shop_login
+ default_target_path: sylius_shop_homepage
+ use_forward: false
+ use_referer: true
+ csrf_token_generator: security.csrf.token_manager
+ csrf_parameter: _csrf_shop_security_token
+ csrf_token_id: shop_authenticate
+ remember_me:
+ secret: "%env(APP_SECRET)%"
+ name: APP_SHOP_REMEMBER_ME
+ lifetime: 31536000
+ remember_me_parameter: _remember_me
+ logout:
+ path: sylius_shop_logout
+ target: sylius_shop_login
+ invalidate_session: false
+ success_handler: sylius.handler.shop_user_logout
+ anonymous: true
+
+ dev:
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
+
+ access_control:
+ - { path: "%sylius.security.admin_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.admin_regex%/_partial", role: ROLE_NO_ACCESS }
+ - { path: "%sylius.security.shop_regex%/_partial", role: IS_AUTHENTICATED_ANONYMOUSLY, ips: [127.0.0.1, ::1] }
+ - { path: "%sylius.security.shop_regex%/_partial", role: ROLE_NO_ACCESS }
+
+ - { path: "%sylius.security.admin_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: "%sylius.security.api_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: "%sylius.security.shop_regex%/login", role: IS_AUTHENTICATED_ANONYMOUSLY }
+
+ - { path: "%sylius.security.shop_regex%/register", role: IS_AUTHENTICATED_ANONYMOUSLY }
+ - { path: "%sylius.security.shop_regex%/verify", role: IS_AUTHENTICATED_ANONYMOUSLY }
+
+ - { path: "%sylius.security.admin_regex%", role: ROLE_ADMINISTRATION_ACCESS }
+ - { path: "%sylius.security.api_regex%/.*", role: ROLE_API_ACCESS }
+ - { path: "%sylius.security.shop_regex%/account", role: ROLE_USER }
diff --git a/tests/Application/config/packages/security_checker.yaml b/tests/Application/config/packages/security_checker.yaml
new file mode 100644
index 0000000..0f9cf00
--- /dev/null
+++ b/tests/Application/config/packages/security_checker.yaml
@@ -0,0 +1,9 @@
+services:
+ SensioLabs\Security\SecurityChecker:
+ public: false
+
+ SensioLabs\Security\Command\SecurityCheckerCommand:
+ arguments: ['@SensioLabs\Security\SecurityChecker']
+ public: false
+ tags:
+ - { name: console.command, command: 'security:check' }
diff --git a/tests/Application/config/packages/sonata_core.yaml b/tests/Application/config/packages/sonata_core.yaml
new file mode 100644
index 0000000..e9a6e89
--- /dev/null
+++ b/tests/Application/config/packages/sonata_core.yaml
@@ -0,0 +1,4 @@
+sonata_core:
+ form:
+ mapping:
+ enabled: false
diff --git a/tests/Application/config/packages/staging/monolog.yaml b/tests/Application/config/packages/staging/monolog.yaml
new file mode 100644
index 0000000..6461211
--- /dev/null
+++ b/tests/Application/config/packages/staging/monolog.yaml
@@ -0,0 +1,10 @@
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ nested:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: debug
diff --git a/tests/Application/config/packages/staging/swiftmailer.yaml b/tests/Application/config/packages/staging/swiftmailer.yaml
new file mode 100644
index 0000000..f438078
--- /dev/null
+++ b/tests/Application/config/packages/staging/swiftmailer.yaml
@@ -0,0 +1,2 @@
+swiftmailer:
+ disable_delivery: true
diff --git a/tests/Application/config/packages/stof_doctrine_extensions.yaml b/tests/Application/config/packages/stof_doctrine_extensions.yaml
new file mode 100644
index 0000000..7770f74
--- /dev/null
+++ b/tests/Application/config/packages/stof_doctrine_extensions.yaml
@@ -0,0 +1,4 @@
+# Read the documentation: https://symfony.com/doc/current/bundles/StofDoctrineExtensionsBundle/index.html
+# See the official DoctrineExtensions documentation for more details: https://github.com/Atlantic18/DoctrineExtensions/tree/master/doc/
+stof_doctrine_extensions:
+ default_locale: '%locale%'
diff --git a/tests/Application/config/packages/swiftmailer.yaml b/tests/Application/config/packages/swiftmailer.yaml
new file mode 100644
index 0000000..3bab0d3
--- /dev/null
+++ b/tests/Application/config/packages/swiftmailer.yaml
@@ -0,0 +1,2 @@
+swiftmailer:
+ url: '%env(MAILER_URL)%'
diff --git a/tests/Application/config/packages/test/framework.yaml b/tests/Application/config/packages/test/framework.yaml
new file mode 100644
index 0000000..76d7e5e
--- /dev/null
+++ b/tests/Application/config/packages/test/framework.yaml
@@ -0,0 +1,4 @@
+framework:
+ test: ~
+ session:
+ storage_id: session.storage.mock_file
diff --git a/tests/Application/config/packages/test/monolog.yaml b/tests/Application/config/packages/test/monolog.yaml
new file mode 100644
index 0000000..7e2b9e3
--- /dev/null
+++ b/tests/Application/config/packages/test/monolog.yaml
@@ -0,0 +1,6 @@
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: error
diff --git a/tests/Application/config/packages/test/swiftmailer.yaml b/tests/Application/config/packages/test/swiftmailer.yaml
new file mode 100644
index 0000000..c438f4b
--- /dev/null
+++ b/tests/Application/config/packages/test/swiftmailer.yaml
@@ -0,0 +1,6 @@
+swiftmailer:
+ disable_delivery: true
+ logging: true
+ spool:
+ type: file
+ path: "%kernel.cache_dir%/spool"
diff --git a/tests/Application/config/packages/test/sylius_theme.yaml b/tests/Application/config/packages/test/sylius_theme.yaml
new file mode 100644
index 0000000..4d34199
--- /dev/null
+++ b/tests/Application/config/packages/test/sylius_theme.yaml
@@ -0,0 +1,3 @@
+sylius_theme:
+ sources:
+ test: ~
diff --git a/tests/Application/config/packages/test/web_profiler.yaml b/tests/Application/config/packages/test/web_profiler.yaml
new file mode 100644
index 0000000..03752de
--- /dev/null
+++ b/tests/Application/config/packages/test/web_profiler.yaml
@@ -0,0 +1,6 @@
+web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+framework:
+ profiler: { collect: false }
diff --git a/tests/Application/config/packages/test_cached/doctrine.yaml b/tests/Application/config/packages/test_cached/doctrine.yaml
new file mode 100644
index 0000000..4952860
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/doctrine.yaml
@@ -0,0 +1,16 @@
+doctrine:
+ orm:
+ entity_managers:
+ default:
+ result_cache_driver:
+ type: memcached
+ host: localhost
+ port: 11211
+ query_cache_driver:
+ type: memcached
+ host: localhost
+ port: 11211
+ metadata_cache_driver:
+ type: memcached
+ host: localhost
+ port: 11211
diff --git a/tests/Application/config/packages/test_cached/fos_rest.yaml b/tests/Application/config/packages/test_cached/fos_rest.yaml
new file mode 100644
index 0000000..2b4189d
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/fos_rest.yaml
@@ -0,0 +1,3 @@
+fos_rest:
+ exception:
+ debug: true
diff --git a/tests/Application/config/packages/test_cached/framework.yaml b/tests/Application/config/packages/test_cached/framework.yaml
new file mode 100644
index 0000000..76d7e5e
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/framework.yaml
@@ -0,0 +1,4 @@
+framework:
+ test: ~
+ session:
+ storage_id: session.storage.mock_file
diff --git a/tests/Application/config/packages/test_cached/monolog.yaml b/tests/Application/config/packages/test_cached/monolog.yaml
new file mode 100644
index 0000000..7e2b9e3
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/monolog.yaml
@@ -0,0 +1,6 @@
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: "%kernel.logs_dir%/%kernel.environment%.log"
+ level: error
diff --git a/tests/Application/config/packages/test_cached/swiftmailer.yaml b/tests/Application/config/packages/test_cached/swiftmailer.yaml
new file mode 100644
index 0000000..c438f4b
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/swiftmailer.yaml
@@ -0,0 +1,6 @@
+swiftmailer:
+ disable_delivery: true
+ logging: true
+ spool:
+ type: file
+ path: "%kernel.cache_dir%/spool"
diff --git a/tests/Application/config/packages/test_cached/sylius_channel.yaml b/tests/Application/config/packages/test_cached/sylius_channel.yaml
new file mode 100644
index 0000000..bab83ef
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/sylius_channel.yaml
@@ -0,0 +1,2 @@
+sylius_channel:
+ debug: true
diff --git a/tests/Application/config/packages/test_cached/sylius_theme.yaml b/tests/Application/config/packages/test_cached/sylius_theme.yaml
new file mode 100644
index 0000000..4d34199
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/sylius_theme.yaml
@@ -0,0 +1,3 @@
+sylius_theme:
+ sources:
+ test: ~
diff --git a/tests/Application/config/packages/test_cached/twig.yaml b/tests/Application/config/packages/test_cached/twig.yaml
new file mode 100644
index 0000000..8c6e0b4
--- /dev/null
+++ b/tests/Application/config/packages/test_cached/twig.yaml
@@ -0,0 +1,2 @@
+twig:
+ strict_variables: true
diff --git a/tests/Application/config/packages/translation.yaml b/tests/Application/config/packages/translation.yaml
new file mode 100644
index 0000000..1f4f966
--- /dev/null
+++ b/tests/Application/config/packages/translation.yaml
@@ -0,0 +1,8 @@
+framework:
+ default_locale: '%locale%'
+ translator:
+ paths:
+ - '%kernel.project_dir%/translations'
+ fallbacks:
+ - '%locale%'
+ - 'en'
diff --git a/tests/Application/config/packages/twig.yaml b/tests/Application/config/packages/twig.yaml
new file mode 100644
index 0000000..3b315dc
--- /dev/null
+++ b/tests/Application/config/packages/twig.yaml
@@ -0,0 +1,4 @@
+twig:
+ paths: ['%kernel.project_dir%/templates']
+ debug: '%kernel.debug%'
+ strict_variables: '%kernel.debug%'
diff --git a/tests/Application/config/packages/twig_extensions.yaml b/tests/Application/config/packages/twig_extensions.yaml
new file mode 100644
index 0000000..0881cc9
--- /dev/null
+++ b/tests/Application/config/packages/twig_extensions.yaml
@@ -0,0 +1,11 @@
+services:
+ _defaults:
+ public: false
+ autowire: true
+ autoconfigure: true
+
+ # Uncomment any lines below to activate that Twig extension
+ #Twig\Extensions\ArrayExtension: ~
+ #Twig\Extensions\DateExtension: ~
+ #Twig\Extensions\IntlExtension: ~
+ #Twig\Extensions\TextExtension: ~
diff --git a/tests/Application/config/packages/validator.yaml b/tests/Application/config/packages/validator.yaml
new file mode 100644
index 0000000..61807db
--- /dev/null
+++ b/tests/Application/config/packages/validator.yaml
@@ -0,0 +1,3 @@
+framework:
+ validation:
+ enable_annotations: true
diff --git a/etc/build/.gitignore b/tests/Application/config/routes.yaml
similarity index 100%
rename from etc/build/.gitignore
rename to tests/Application/config/routes.yaml
diff --git a/tests/Application/config/routes/dev/twig.yaml b/tests/Application/config/routes/dev/twig.yaml
new file mode 100644
index 0000000..f4ee839
--- /dev/null
+++ b/tests/Application/config/routes/dev/twig.yaml
@@ -0,0 +1,3 @@
+_errors:
+ resource: '@TwigBundle/Resources/config/routing/errors.xml'
+ prefix: /_error
diff --git a/tests/Application/config/routes/dev/web_profiler.yaml b/tests/Application/config/routes/dev/web_profiler.yaml
new file mode 100644
index 0000000..3e79dc2
--- /dev/null
+++ b/tests/Application/config/routes/dev/web_profiler.yaml
@@ -0,0 +1,7 @@
+_wdt:
+ resource: "@WebProfilerBundle/Resources/config/routing/wdt.xml"
+ prefix: /_wdt
+
+_profiler:
+ resource: "@WebProfilerBundle/Resources/config/routing/profiler.xml"
+ prefix: /_profiler
diff --git a/tests/Application/config/routes/liip_imagine.yaml b/tests/Application/config/routes/liip_imagine.yaml
new file mode 100644
index 0000000..201cbd5
--- /dev/null
+++ b/tests/Application/config/routes/liip_imagine.yaml
@@ -0,0 +1,2 @@
+_liip_imagine:
+ resource: "@LiipImagineBundle/Resources/config/routing.yaml"
diff --git a/tests/Application/config/routes/sylius_admin.yaml b/tests/Application/config/routes/sylius_admin.yaml
new file mode 100644
index 0000000..1ba48d6
--- /dev/null
+++ b/tests/Application/config/routes/sylius_admin.yaml
@@ -0,0 +1,3 @@
+sylius_admin:
+ resource: "@SyliusAdminBundle/Resources/config/routing.yml"
+ prefix: /admin
diff --git a/tests/Application/config/routes/sylius_admin_api.yaml b/tests/Application/config/routes/sylius_admin_api.yaml
new file mode 100644
index 0000000..80aed45
--- /dev/null
+++ b/tests/Application/config/routes/sylius_admin_api.yaml
@@ -0,0 +1,3 @@
+sylius_admin_api:
+ resource: "@SyliusAdminApiBundle/Resources/config/routing.yml"
+ prefix: /api
diff --git a/tests/Application/config/routes/sylius_shop.yaml b/tests/Application/config/routes/sylius_shop.yaml
new file mode 100644
index 0000000..8818568
--- /dev/null
+++ b/tests/Application/config/routes/sylius_shop.yaml
@@ -0,0 +1,14 @@
+sylius_shop:
+ resource: "@SyliusShopBundle/Resources/config/routing.yml"
+ prefix: /{_locale}
+ requirements:
+ _locale: ^[a-z]{2}(?:_[A-Z]{2})?$
+
+sylius_shop_payum:
+ resource: "@SyliusShopBundle/Resources/config/routing/payum.yml"
+
+sylius_shop_default_locale:
+ path: /
+ methods: [GET]
+ defaults:
+ _controller: sylius.controller.shop.locale_switch:switchAction
diff --git a/tests/Application/config/services.yaml b/tests/Application/config/services.yaml
new file mode 100644
index 0000000..615506e
--- /dev/null
+++ b/tests/Application/config/services.yaml
@@ -0,0 +1,4 @@
+# Put parameters here that don't need to change on each machine where the app is deployed
+# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
+parameters:
+ locale: en_US
diff --git a/tests/Application/config/services_test.yaml b/tests/Application/config/services_test.yaml
new file mode 100644
index 0000000..b0c2d6a
--- /dev/null
+++ b/tests/Application/config/services_test.yaml
@@ -0,0 +1,3 @@
+imports:
+# - { resource: "../../Behat/Resources/services.xml" }
+# - { resource: "../../../vendor/sylius/sylius/src/Sylius/Behat/Resources/config/services.xml" }
diff --git a/tests/Application/gulpfile.babel.js b/tests/Application/gulpfile.babel.js
new file mode 100644
index 0000000..5920316
--- /dev/null
+++ b/tests/Application/gulpfile.babel.js
@@ -0,0 +1,60 @@
+import chug from 'gulp-chug';
+import gulp from 'gulp';
+import yargs from 'yargs';
+
+const { argv } = yargs
+ .options({
+ rootPath: {
+ description: ' path to public assets directory',
+ type: 'string',
+ requiresArg: true,
+ required: false,
+ },
+ nodeModulesPath: {
+ description: ' path to node_modules directory',
+ type: 'string',
+ requiresArg: true,
+ required: false,
+ },
+ });
+
+const config = [
+ '--rootPath',
+ argv.rootPath || '../../../../../../../tests/Application/public/assets',
+ '--nodeModulesPath',
+ argv.nodeModulesPath || '../../../../../../../tests/Application/node_modules',
+];
+
+export const buildAdmin = function buildAdmin() {
+ return gulp.src('../../vendor/sylius/sylius/src/Sylius/Bundle/AdminBundle/gulpfile.babel.js', { read: false })
+ .pipe(chug({ args: config, tasks: 'build' }));
+};
+buildAdmin.description = 'Build admin assets.';
+
+export const watchAdmin = function watchAdmin() {
+ return gulp.src('../../vendor/sylius/sylius/src/Sylius/Bundle/AdminBundle/gulpfile.babel.js', { read: false })
+ .pipe(chug({ args: config, tasks: 'watch' }));
+};
+watchAdmin.description = 'Watch admin asset sources and rebuild on changes.';
+
+export const buildShop = function buildShop() {
+ return gulp.src('../../vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/gulpfile.babel.js', { read: false })
+ .pipe(chug({ args: config, tasks: 'build' }));
+};
+buildShop.description = 'Build shop assets.';
+
+export const watchShop = function watchShop() {
+ return gulp.src('../../vendor/sylius/sylius/src/Sylius/Bundle/ShopBundle/gulpfile.babel.js', { read: false })
+ .pipe(chug({ args: config, tasks: 'watch' }));
+};
+watchShop.description = 'Watch shop asset sources and rebuild on changes.';
+
+export const build = gulp.parallel(buildAdmin, buildShop);
+build.description = 'Build assets.';
+
+gulp.task('admin', buildAdmin);
+gulp.task('admin-watch', watchAdmin);
+gulp.task('shop', buildShop);
+gulp.task('shop-watch', watchShop);
+
+export default build;
diff --git a/tests/Application/package.json b/tests/Application/package.json
new file mode 100644
index 0000000..0f3d7c7
--- /dev/null
+++ b/tests/Application/package.json
@@ -0,0 +1,54 @@
+{
+ "dependencies": {
+ "babel-polyfill": "^6.26.0",
+ "jquery": "^3.2.0",
+ "jquery.dirtyforms": "^2.0.0",
+ "lightbox2": "^2.9.0",
+ "semantic-ui-css": "^2.2.0"
+ },
+ "devDependencies": {
+ "babel-core": "^6.26.3",
+ "babel-plugin-external-helpers": "^6.22.0",
+ "babel-plugin-module-resolver": "^3.1.1",
+ "babel-plugin-transform-object-rest-spread": "^6.26.0",
+ "babel-preset-env": "^1.7.0",
+ "babel-register": "^6.26.0",
+ "dedent": "^0.7.0",
+ "eslint": "^4.19.1",
+ "eslint-config-airbnb-base": "^12.1.0",
+ "eslint-import-resolver-babel-module": "^4.0.0",
+ "eslint-plugin-import": "^2.12.0",
+ "fast-async": "^6.3.7",
+ "gulp": "^4.0.0",
+ "gulp-chug": "^0.5",
+ "gulp-concat": "^2.6.0",
+ "gulp-debug": "^2.1.2",
+ "gulp-if": "^2.0.0",
+ "gulp-livereload": "^3.8.1",
+ "gulp-order": "^1.1.1",
+ "gulp-sass": "^4.0.1",
+ "gulp-sourcemaps": "^1.6.0",
+ "gulp-uglifycss": "^1.0.5",
+ "merge-stream": "^1.0.0",
+ "rollup": "^0.60.7",
+ "rollup-plugin-babel": "^3.0.4",
+ "rollup-plugin-commonjs": "^9.1.3",
+ "rollup-plugin-inject": "^2.0.0",
+ "rollup-plugin-node-resolve": "^3.3.0",
+ "rollup-plugin-uglify": "^4.0.0",
+ "upath": "^1.1.0",
+ "yargs": "^6.4.0"
+ },
+ "scripts": {
+ "build": "gulp build",
+ "gulp": "gulp build",
+ "lint": "yarn lint:js",
+ "lint:js": "eslint gulpfile.babel.js"
+ },
+ "repository": {
+ "type": "git",
+ "url": "git+https://github.com/Sylius/Sylius.git"
+ },
+ "author": "Paweł Jędrzejewski",
+ "license": "MIT"
+}
diff --git a/tests/Application/public/.htaccess b/tests/Application/public/.htaccess
new file mode 100644
index 0000000..99ed00d
--- /dev/null
+++ b/tests/Application/public/.htaccess
@@ -0,0 +1,25 @@
+DirectoryIndex app.php
+
+
+ RewriteEngine On
+
+ RewriteCond %{HTTP:Authorization} ^(.*)
+ RewriteRule .* - [e=HTTP_AUTHORIZATION:%1]
+
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^index\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
+
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule .? - [L]
+
+ RewriteRule .? %{ENV:BASE}/index.php [L]
+
+
+
+
+ RedirectMatch 302 ^/$ /index.php/
+
+
diff --git a/tests/Application/public/favicon.ico b/tests/Application/public/favicon.ico
new file mode 100644
index 0000000..592f7a8
Binary files /dev/null and b/tests/Application/public/favicon.ico differ
diff --git a/tests/Application/public/index.php b/tests/Application/public/index.php
new file mode 100644
index 0000000..0daab38
--- /dev/null
+++ b/tests/Application/public/index.php
@@ -0,0 +1,27 @@
+handle($request);
+$response->send();
+$kernel->terminate($request, $response);
diff --git a/features/.gitkeep b/tests/Application/public/media/image/.gitignore
similarity index 100%
rename from features/.gitkeep
rename to tests/Application/public/media/image/.gitignore
diff --git a/tests/Application/public/robots.txt b/tests/Application/public/robots.txt
new file mode 100644
index 0000000..214e411
--- /dev/null
+++ b/tests/Application/public/robots.txt
@@ -0,0 +1,4 @@
+# www.robotstxt.org/
+# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
+
+User-agent: *
diff --git a/tests/Application/templates/.gitignore b/tests/Application/templates/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/tests/Application/templates/bundles/SyliusUiBundle/Security/_login.html.twig b/tests/Application/templates/bundles/SyliusUiBundle/Security/_login.html.twig
new file mode 100644
index 0000000..a3be91c
--- /dev/null
+++ b/tests/Application/templates/bundles/SyliusUiBundle/Security/_login.html.twig
@@ -0,0 +1,35 @@
+{% form_theme form '@SyliusUi/Form/theme.html.twig' %}
+
+{% import '@SyliusUi/Macro/messages.html.twig' as messages %}
+
+
+
+ {{ sonata_block_render_event('sylius.admin.login.before_form', {'form': form}) }}
+
+ {% if last_error %}
+
+ {{ messages.error(last_error.messageKey) }}
+
+ {% endif %}
+
+ {{ form_start(form, {'action': action|default('/'), 'attr': {'class': 'ui large loadable form', 'novalidate': 'novalidate'}}) }}
+
+
+ {% if paths.logo is defined %}
+
+
 }})
+
+ {% endif %}
+
+ {{ form_row(form._username, {'value': last_username|default('')}) }}
+ {{ form_row(form._password) }}
+ {{ form_row(form._remember_me) }}
+
+
+
+
+ {{ sonata_block_render_event('sylius.admin.login.form', {'form': form}) }}
+
+ {{ form_end(form, {'render_rest': false}) }}
+
+
diff --git a/tests/Application/translations/.gitignore b/tests/Application/translations/.gitignore
new file mode 100644
index 0000000..e69de29
diff --git a/tests/Behat/Resources/services.xml b/tests/Behat/Resources/services.xml
deleted file mode 100644
index 8996f62..0000000
--- a/tests/Behat/Resources/services.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
diff --git a/tests/Behat/Resources/suites.yml b/tests/Behat/Resources/suites.yml
deleted file mode 100644
index c88421b..0000000
--- a/tests/Behat/Resources/suites.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-# Put your Behat suites definitions here
-
-default:
- suites:
-