diff options
Diffstat (limited to 'php-behat-mink.spec')
-rw-r--r-- | php-behat-mink.spec | 201 |
1 files changed, 97 insertions, 104 deletions
diff --git a/php-behat-mink.spec b/php-behat-mink.spec index 5e6bc7f..d45c2e3 100644 --- a/php-behat-mink.spec +++ b/php-behat-mink.spec @@ -1,8 +1,8 @@ -# remirepo spec for php-guzzlehttp-ringphp, from Fedora: +# remirepo spec for php-behat-mink, from Fedora: # # Fedora spec file for php-behat-mink # -# Copyright (c) 2015-2017 Shawn Iwinski <shawn@iwin.ski> +# Copyright (c) 2015-2020 Shawn Iwinski <shawn@iwin.ski> # # License: MIT # http://opensource.org/licenses/MIT @@ -12,72 +12,105 @@ %global github_owner minkphp %global github_name Mink -%global github_version 1.7.1 -%global github_commit e6930b9c74693dff7f4e58577e1b1743399f3ff9 +%global github_version 1.8.1 +%global github_commit 07c6a9fe3fa98c2de074b25d9ed26c22904e3887 %global composer_vendor behat %global composer_project mink +%global testsuite_github_owner minkphp +%global testsuite_github_name driver-testsuite +%global testsuite_github_commit 9ce01154e5331640d2a4f2b9791baf19bb0f4a5d + +%if 0%{?fedora} >= 32 || 0%{?rhel} >= 8 +%global with_symfony2 0 +%else +%global with_symfony2 1 +%endif + # "php": ">=5.3.1" %global php_min_ver 5.3.1 -# "symfony/css-selector": "~2.1|~3.0" -# NOTE: Min version not 2.1 because autoloader required -%global symfony_min_ver %{?el6:2.3.31}%{!?el6:2.7.1} -%global symfony_max_ver 4.0 +# "symfony/css-selector": "^2.7|^3.0|^4.0|^5.0" +%if %{with_symfony2} +# NOTE: Min version not 2.7 because autoloader required +%global symfony_min_ver 2.7.1 +%else +%global symfony_min_ver 3.0 +%endif +%global symfony_max_ver 6.0 + +# PHPUnit +%if 0%{?fedora} >= 28 || 0%{?rhel} >= 8 +%global phpunit_require phpunit7 +%global phpunit_exec phpunit7 +%else +%global phpunit_require php-composer(phpunit/phpunit) +%global phpunit_exec phpunit +%endif # Build using "--without tests" to disable tests %global with_tests 0%{!?_without_tests:1} -%global phpdir %{_datadir}/php -%global testsdir %{_datadir}/tests +# Range dependencies supported? +%if 0%{?fedora} >= 27 || 0%{?rhel} >= 8 +%global with_range_dependencies 1 +%else +%global with_range_dependencies 0 +%endif + +%{!?phpdir: %global phpdir %{_datadir}/php} Name: php-%{composer_vendor}-%{composer_project} Version: %{github_version} -Release: 5%{?dist} +Release: 1%{?dist} Summary: Browser controller/emulator abstraction for PHP -Group: Development/Libraries License: MIT URL: http://mink.behat.org/ -# GitHub export does not include tests. -# Run php-behat-mink-get-source.sh to create full source. +# GitHub export does not include tests +# Run php-behat-mink-get-source.sh to create full source Source0: %{name}-%{github_version}-%{github_commit}.tar.gz Source1: %{name}-get-source.sh - -# Modify driver testsuite bootstrap -Patch0: %{name}-driver-testsuite-bootstrap.patch -# [Selector/NamedSelector] Fix PHP 7.2 count() errors -# https://github.com/minkphp/Mink/pull/736 -# https://github.com/minkphp/Mink/pull/736.patch -Patch1: %{name}-pull-736.patch +# Test suite +Source2: https://github.com/%{testsuite_github_owner}/%{testsuite_github_name}/archive/%{testsuite_github_commit}/%{name}-testsuite-%{testsuite_github_commit}.tar.gz BuildArch: noarch # Tests %if %{with_tests} ## composer.json BuildRequires: php(language) >= %{php_min_ver} -BuildRequires: php-composer(phpunit/phpunit) +BuildRequires: %{phpunit_require} +%if %{with_range_dependencies} +BuildRequires: (php-composer(symfony/css-selector) >= %{symfony_min_ver} with php-composer(symfony/css-selector) < %{symfony_max_ver}) +%else BuildRequires: php-composer(symfony/css-selector) < %{symfony_max_ver} BuildRequires: php-composer(symfony/css-selector) >= %{symfony_min_ver} -## phpcompatinfo (computed from version 1.7.1) +%endif +## phpcompatinfo (computed from version 1.8.1) BuildRequires: php-dom -BuildRequires: php-gd -BuildRequires: php-json BuildRequires: php-mbstring BuildRequires: php-pcre BuildRequires: php-reflection -BuildRequires: php-session BuildRequires: php-spl +### Test suite (computed from commit 9ce01154e5331640d2a4f2b9791baf19bb0f4a5d) +BuildRequires: php-date +BuildRequires: php-gd +BuildRequires: php-json +BuildRequires: php-session ## Autoloader BuildRequires: php-composer(fedora/autoloader) %endif # composer.json Requires: php(language) >= %{php_min_ver} +%if %{with_range_dependencies} +Requires: (php-composer(symfony/css-selector) >= %{symfony_min_ver} with php-composer(symfony/css-selector) < %{symfony_max_ver}) +%else Requires: php-composer(symfony/css-selector) >= %{symfony_min_ver} Requires: php-composer(symfony/css-selector) < %{symfony_max_ver} -# phpcompatinfo (computed from version 1.7.1) +%endif +# phpcompatinfo (computed from version 1.8.1) Requires: php-mbstring Requires: php-pcre Requires: php-spl @@ -87,6 +120,9 @@ Requires: php-composer(fedora/autoloader) # Composer Provides: php-composer(%{composer_vendor}/%{composer_project}) = %{version} +# Obsolete test suite sub-package +Obsoletes: %{name}-driver-testsuite < %{version}-%{release} + %description One of the most important parts in the web is a browser. Browser is the window through which web users interact with web applications and other users. Users @@ -105,44 +141,9 @@ Autoloader: %{phpdir}/Behat/Mink/autoload.php [1] http://mink.behat.org/en/latest/at-a-glance.html -# ------------------------------------------------------------------------------ - -%package driver-testsuite - -Summary: Mink driver testsuite -Group: Development/Libraries - -Requires: %{name} = %{version}-%{release} -# phpcompatinfo (computed from version 1.7.0) -Requires: php-gd -Requires: php-json -Requires: php-pcre -Requires: php-reflection -Requires: php-session -Requires: php-spl - -# Bundled -## driver-testsuite/web-fixtures/js/jquery-1.6.2-min.js -Provides: bundled(js-jquery1) = 1.6.2 -## driver-testsuite/web-fixtures/js/jquery-ui-1.8.14.custom.min.js -Provides: bundled(js-jquery-ui) = 1.8.14 - -%description driver-testsuite -%{summary}. - -Autoloader: %{testsdir}/%{name}-driver-testsuite/autoload.php -Bootstrap: %{testsdir}/%{name}-driver-testsuite/boostrap.php - -# ------------------------------------------------------------------------------ %prep -%setup -qn %{github_name}-%{github_commit} - -: Patch driver testsuite bootstrap -%patch0 -p1 - -: [Selector/NamedSelector] Fix PHP 7.2 count function errors -%patch1 -p1 +%setup -qn %{github_name}-%{github_commit} -a 2 %build @@ -159,64 +160,52 @@ require_once '%{phpdir}/Fedora/Autoloader/autoload.php'; \Fedora\Autoloader\Dependencies::required(array( array( + '%{phpdir}/Symfony5/Component/CssSelector/autoload.php', + '%{phpdir}/Symfony4/Component/CssSelector/autoload.php', '%{phpdir}/Symfony3/Component/CssSelector/autoload.php', +%if %{with_symfony2} '%{phpdir}/Symfony/Component/CssSelector/autoload.php', +%endif ), )); AUTOLOAD -: Create driver testsuite autoloader -cat <<'AUTOLOAD' | tee driver-testsuite/autoload.php -<?php -/** - * Autoloader for %{name} and its' dependencies - * (created by %{name}-%{version}-%{release}). - */ -require_once '%{phpdir}/Fedora/Autoloader/autoload.php'; - -\Fedora\Autoloader\Autoload::addPsr4('Behat\\Mink\\Tests\\Driver\\', __DIR__.'/tests'); - -\Fedora\Autoloader\Dependencies::required(array( - '%{phpdir}/Behat/Mink/autoload.php', -)); -AUTOLOAD - %install : Library -mkdir -p %{buildroot}%{phpdir}/Behat/Mink -cp -pr src/* %{buildroot}%{phpdir}/Behat/Mink/ - -: Driver testsuite -mkdir -p %{buildroot}%{testsdir} -cp -pr driver-testsuite %{buildroot}%{testsdir}/%{name}-driver-testsuite +mkdir -p %{buildroot}%{phpdir}/Behat +cp -pr src %{buildroot}%{phpdir}/Behat/Mink %check %if %{with_tests} -: Create tests autoloader -cat <<'AUTOLOAD' | tee bootstrap.php +: Setup driver testsuite +mkdir -p vendor/mink +ln -s ../../driver-testsuite-%{testsuite_github_commit} vendor/mink/driver-testsuite + +: Create mock Composer autoloader +cat <<'AUTOLOAD' | tee vendor/autoload.php <?php require_once '%{buildroot}%{phpdir}/Behat/Mink/autoload.php'; -\Fedora\Autoloader\Autoload::addPsr4('Behat\\Mink\\Tests\\', __DIR__.'/tests'); + +\Fedora\Autoloader\Autoload::addPsr4('Behat\\Mink\\Tests\\', dirname(__DIR__).'/tests'); + +\Fedora\Autoloader\Autoload::addPsr4('Behat\\Mink\\Tests\\Driver\\Util\\', __DIR__.'/mink/driver-testsuite/src'); +\Fedora\Autoloader\Autoload::addPsr4('Behat\\Mink\\Tests\\Driver\\', __DIR__.'/mink/driver-testsuite/tests'); AUTOLOAD -%if 0%{?el6} -: Skip tests requiring PHPUnit with the "willReturn" function -sed 's/function testCreateNodeElements/function SKIP_testCreateNodeElements/' \ - -i tests/Driver/CoreDriverTest.php -sed 's/function testGetResponseHeader/function SKIP_testGetResponseHeader/' \ - -i tests/SessionTest.php -sed 's/function testAddressEqualsEmptyPath/function SKIP_testAddressEqualsEmptyPath/' \ - -i tests/WebAssertTest.php -%endif +: Remove SymfonyTestsListener +sed \ + -e '/SymfonyTestsListener/d' \ + -e '/listeners>/d' \ + phpunit.xml.dist > phpunit.xml : Upstream tests RETURN_CODE=0 -PHPUNIT=$(which phpunit) -for PHP_EXEC in "" %{?rhel:php54 php55} php56 php70 php71 php72; do +PHPUNIT=$(which %{phpunit_exec}) +for PHP_EXEC in "" %{?rhel:php54 php55 php56 php70} php71 php72 php73 php74; do if [ -z "$PHP_EXEC" ] || which $PHP_EXEC; then - $PHP_EXEC $PHPUNIT --verbose --bootstrap bootstrap.php || RETURN_CODE=1 + $PHP_EXEC $PHPUNIT --verbose || RETURN_CODE=1 fi done exit $RETURN_CODE @@ -233,12 +222,16 @@ exit $RETURN_CODE %dir %{phpdir}/Behat %{phpdir}/Behat/Mink -%files driver-testsuite -%dir %{testsdir} - %{testsdir}/%{name}-driver-testsuite - %changelog +* Tue Mar 17 2020 Shawn Iwinski <shawn@iwin.ski> - 1.8.1-1 +- Update to 1.8.1 (RHBZ #1812690) +- Obsolete test suite sub-package +- Testsuite as source to ensure proper version/commit +- Conditionally use range dependencies +- Conditionally drop Symfony 2 interoperability +- Conditionally use PHPUnit 7 + * Fri Sep 22 2017 Shawn Iwinski <shawn@iwin.ski> - 1.7.1-5 - Fix autoloader for Symfony 3 |