diff --git a/.travis.yml b/.travis.yml index 8c4f483..3558479 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,40 +1,48 @@ -language: php +version: ~> 1.0 -dist: trusty +# Use a manual matrix as composer.json requires "silverstripe/cms": "^4.6", +# This should be changed to "standard-jobs-range-npm" as soon as the lowest recipe +# version in the travis shared jobs matrix is 4.6 +import: + - silverstripe/silverstripe-travis-shared:config/provision/standard.yml -cache: - directories: - - $HOME/.composer/cache/files - -env: - global: - - COMPOSER_ROOT_VERSION=4.0.x-dev - -matrix: +jobs: include: - - php: 5.6 - env: DB=MYSQL INSTALLER_VERSION=4.0.x-dev PHPCS_TEST=1 PHPUNIT_TEST=1 - - php: 7.0 - env: DB=PGSQL INSTALLER_VERSION=4.1.x-dev PHPUNIT_TEST=1 + - php: 7.4 + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.6.x-dev" + - NPM_TEST=1 - php: 7.1 - env: DB=MYSQL INSTALLER_VERSION=4.2.x-dev PHPUNIT_COVERAGE_TEST=1 + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.6.x-dev" + - PHPUNIT_TEST=1 - php: 7.2 - env: DB=MYSQL INSTALLER_VERSION=4.x-dev PHPUNIT_TEST=1 - -before_script: - # Init PHP - - phpenv rehash - - phpenv config-rm xdebug.ini - - # Install composer dependencies - - composer validate - - echo $INSTALLER_VERSION - - composer require --prefer-source --no-update silverstripe/recipe-cms:1.1.x-dev - - if [[ $DB == PGSQL ]]; then composer require --no-update silverstripe/postgresql:2.0.x-dev; fi - - composer install --prefer-source --no-interaction --no-progress --no-suggest --optimize-autoloader --verbose --profile - -script: - - if [[ $PHPUNIT_COVERAGE_TEST ]]; then phpdbg -qrr vendor/bin/phpunit --coverage-clover=coverage.xml tests/; fi - -after_success: - - if [[ $PHPUNIT_COVERAGE_TEST ]]; then bash <(curl -s https://codecov.io/bash) -f coverage.xml; fi + env: + - DB=PGSQL + - REQUIRE_INSTALLER="4.6.x-dev" + - PHPUNIT_TEST=1 + - php: 7.3 + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.7.x-dev" + - PHPUNIT_TEST=1 + - PHPCS_TEST=1 + - php: 7.3 + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.7.x-dev" + - BEHAT_TEST=1 + - BEHAT_SUITE="userforms" + - php: 7.4 + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.x-dev" + - PHPUNIT_COVERAGE_TEST=1 + - php: nightly + env: + - DB=MYSQL + - REQUIRE_INSTALLER="4.x-dev" + - PHPUNIT_TEST=1 + - COMPOSER_INSTALL_ARG=--ignore-platform-reqs diff --git a/composer.json b/composer.json index 46c1b7c..87f8321 100644 --- a/composer.json +++ b/composer.json @@ -19,7 +19,7 @@ }, "autoload": { "psr-4": { - "SilverStripe\\MathSpamProtection\\": "code/" + "SilverStripe\\MathSpamProtection\\": "src/" } }, "extra": { diff --git a/code/MathSpamProtector.php b/src/MathSpamProtector.php similarity index 100% rename from code/MathSpamProtector.php rename to src/MathSpamProtector.php diff --git a/code/MathSpamProtectorField.php b/src/MathSpamProtectorField.php similarity index 96% rename from code/MathSpamProtectorField.php rename to src/MathSpamProtectorField.php index e124c43..63ebb6a 100644 --- a/code/MathSpamProtectorField.php +++ b/src/MathSpamProtectorField.php @@ -1,4 +1,5 @@ isCorrectAnswer($this->Value())) { + $value = Controller::curr()->getRequest()->postVar($this->getName()); + + if (!$value) { + $value = $this->Value(); + } + + if (!$this->isCorrectAnswer($value)) { $validator->validationError( $this->name, _t( @@ -140,7 +147,6 @@ class MathSpamProtectorField extends TextField */ public function isCorrectAnswer($answer) { - $session = Controller::curr()->getRequest()->getSession(); $v1 = $session->get("mathQuestionV1");