Index: composer.json =================================================================== --- /dev/null +++ composer.json @@ -0,0 +1,11 @@ +{ + "require-dev": { + "aik099/phpunit-mink": "~2.0", + "qa-tools/qa-tools": "~1.0", + "aik099/coding-standard": "dev-in-portal", + "mockery/mockery": "~0.9", + + "behat/mink-selenium2-driver": "~1.2", + "mindplay/annotations": "~1.2@dev" + } +} Index: composer.lock =================================================================== --- /dev/null +++ composer.lock @@ -0,0 +1,1377 @@ +{ + "_readme": [ + "This file locks the dependencies of your project to a known state", + "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "This file is @generated automatically" + ], + "hash": "5d82992cf53c3b16d1fb33e3d7b47124", + "packages": [], + "packages-dev": [ + { + "name": "aik099/coding-standard", + "version": "dev-in-portal", + "source": { + "type": "git", + "url": "https://github.com/aik099/CodingStandard.git", + "reference": "c627526ce12d8541f2389b959b62fb963286d3a3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aik099/CodingStandard/zipball/c627526ce12d8541f2389b959b62fb963286d3a3", + "reference": "c627526ce12d8541f2389b959b62fb963286d3a3", + "shasum": "" + }, + "require-dev": { + "squizlabs/php_codesniffer": "~1.5" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Obuhovich", + "email": "aik.bold@gmail.com" + } + ], + "description": "The PHP_CodeSniffer coding standard I'm using on all of my projects.", + "keywords": [ + "PHP_CodeSniffer", + "codesniffer" + ], + "time": "2014-10-22 13:55:02" + }, + { + "name": "aik099/phpunit-mink", + "version": "v2.0.0", + "source": { + "type": "git", + "url": "https://github.com/aik099/phpunit-mink.git", + "reference": "2ef91f638cb7d9a30fdc505f6ff0870a450a1eb5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/aik099/phpunit-mink/zipball/2ef91f638cb7d9a30fdc505f6ff0870a450a1eb5", + "reference": "2ef91f638cb7d9a30fdc505f6ff0870a450a1eb5", + "shasum": "" + }, + "require": { + "behat/mink": "~1.5@dev", + "behat/mink-selenium2-driver": "~1.1@dev", + "php": ">=5.3.2", + "phpunit/phpunit": ">=3.7.8", + "pimple/pimple": "~2.0", + "symfony/event-dispatcher": "~2.4" + }, + "require-dev": { + "aik099/coding-standard": "dev-master", + "mockery/mockery": "~0.9" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "aik099\\": "./library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Obuhovich", + "email": "aik.bold@gmail.com" + } + ], + "description": "Library for using Mink in PHPUnit tests. Supports session sharing between tests in a test case.", + "homepage": "http://github.com/aik099/phpunit-mink", + "keywords": [ + "BrowserStack", + "Mink", + "Sauce", + "SauceLabs", + "phpunit", + "selenium", + "tests" + ], + "time": "2014-08-09 12:13:08" + }, + { + "name": "behat/mink", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Mink.git", + "reference": "090900a0049c441f1e072bbd837db4079b2250c5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Mink/zipball/090900a0049c441f1e072bbd837db4079b2250c5", + "reference": "090900a0049c441f1e072bbd837db4079b2250c5", + "shasum": "" + }, + "require": { + "php": ">=5.3.1", + "symfony/css-selector": "~2.0" + }, + "suggest": { + "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", + "behat/mink-goutte-driver": "fast headless driver for any app without JS emulation", + "behat/mink-selenium2-driver": "slow, but JS-enabled driver for any app (requires Selenium2)", + "behat/mink-zombie-driver": "fast and JS-enabled headless driver for any app (requires node.js)" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Mink": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + } + ], + "description": "Web acceptance testing framework for PHP 5.3", + "homepage": "http://mink.behat.org/", + "keywords": [ + "browser", + "testing", + "web" + ], + "time": "2014-09-26 09:25:05" + }, + { + "name": "behat/mink-selenium2-driver", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/MinkSelenium2Driver.git", + "reference": "8018fee80bf6573f909ece3e0dfc07d0eb352210" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/MinkSelenium2Driver/zipball/8018fee80bf6573f909ece3e0dfc07d0eb352210", + "reference": "8018fee80bf6573f909ece3e0dfc07d0eb352210", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6@dev", + "instaclick/php-webdriver": "~1.1", + "php": ">=5.3.1" + }, + "type": "mink-driver", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Mink\\Driver": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Konstantin Kudryashov", + "email": "ever.zet@gmail.com", + "homepage": "http://everzet.com" + }, + { + "name": "Pete Otaqui", + "email": "pete@otaqui.com", + "homepage": "https://github.com/pete-otaqui" + } + ], + "description": "Selenium2 (WebDriver) driver for Mink framework", + "homepage": "http://mink.behat.org/", + "keywords": [ + "ajax", + "browser", + "javascript", + "selenium", + "testing", + "webdriver" + ], + "time": "2014-09-29 13:12:12" + }, + { + "name": "doctrine/instantiator", + "version": "1.0.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/instantiator.git", + "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", + "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", + "shasum": "" + }, + "require": { + "php": ">=5.3,<8.0-DEV" + }, + "require-dev": { + "athletic/athletic": "~0.1.8", + "ext-pdo": "*", + "ext-phar": "*", + "phpunit/phpunit": "~4.0", + "squizlabs/php_codesniffer": "2.0.*@ALPHA" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "Doctrine\\Instantiator\\": "src" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Marco Pivetta", + "email": "ocramius@gmail.com", + "homepage": "http://ocramius.github.com/" + } + ], + "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", + "homepage": "https://github.com/doctrine/instantiator", + "keywords": [ + "constructor", + "instantiate" + ], + "time": "2014-10-13 12:58:55" + }, + { + "name": "instaclick/php-webdriver", + "version": "1.4.1", + "source": { + "type": "git", + "url": "https://github.com/instaclick/php-webdriver.git", + "reference": "a57b2bcd9467e217134a2248b261b8b3a90ccea0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/a57b2bcd9467e217134a2248b261b8b3a90ccea0", + "reference": "a57b2bcd9467e217134a2248b261b8b3a90ccea0", + "shasum": "" + }, + "require": { + "ext-curl": "*", + "php": ">=5.3.2" + }, + "require-dev": { + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "WebDriver": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Apache-2.0" + ], + "authors": [ + { + "name": "Justin Bishop", + "email": "jubishop@gmail.com", + "role": "Developer" + }, + { + "name": "Anthon Pang", + "email": "apang@softwaredevelopment.ca", + "role": "Fork Maintainer" + } + ], + "description": "PHP WebDriver for Selenium 2", + "homepage": "http://instaclick.com/", + "keywords": [ + "browser", + "selenium", + "webdriver", + "webtest" + ], + "time": "2014-05-12 21:03:05" + }, + { + "name": "mindplay/annotations", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/php-annotations/php-annotations.git", + "reference": "404b63f180b9c1fa578c9da5ea39846ee0c430e1" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-annotations/php-annotations/zipball/404b63f180b9c1fa578c9da5ea39846ee0c430e1", + "reference": "404b63f180b9c1fa578c9da5ea39846ee0c430e1", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/php-code-coverage": "~1.2.1", + "phpunit/php-file-iterator": ">=1.3.0@stable" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "mindplay\\annotations\\": "src\\annotations" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-3.0+" + ], + "authors": [ + { + "name": "Rasmus Schultz", + "email": "rasmus@mindplay.dk" + } + ], + "description": "Source-code annotations for PHP", + "homepage": "http://blog.mindplay.dk/", + "keywords": [ + "annotations", + "framework" + ], + "time": "2014-09-07 08:45:38" + }, + { + "name": "mockery/mockery", + "version": "0.9.2", + "source": { + "type": "git", + "url": "https://github.com/padraic/mockery.git", + "reference": "95a4855380dc70176c51807c678fb3bd6198529a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/padraic/mockery/zipball/95a4855380dc70176c51807c678fb3bd6198529a", + "reference": "95a4855380dc70176c51807c678fb3bd6198529a", + "shasum": "" + }, + "require": { + "lib-pcre": ">=7.0", + "php": ">=5.3.2" + }, + "require-dev": { + "hamcrest/hamcrest-php": "~1.1", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "~0.7@dev" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "0.9.x-dev" + } + }, + "autoload": { + "psr-0": { + "Mockery": "library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Pádraic Brady", + "email": "padraic.brady@gmail.com", + "homepage": "http://blog.astrumfutura.com" + }, + { + "name": "Dave Marshall", + "email": "dave.marshall@atstsolutions.co.uk", + "homepage": "http://davedevelopment.co.uk" + } + ], + "description": "Mockery is a simple yet flexible PHP mock object framework for use in unit testing with PHPUnit, PHPSpec or any other testing framework. Its core goal is to offer a test double framework with a succint API capable of clearly defining all possible object operations and interactions using a human readable Domain Specific Language (DSL). Designed as a drop in alternative to PHPUnit's phpunit-mock-objects library, Mockery is easy to integrate with PHPUnit and can operate alongside phpunit-mock-objects without the World ending.", + "homepage": "http://github.com/padraic/mockery", + "keywords": [ + "BDD", + "TDD", + "library", + "mock", + "mock objects", + "mockery", + "stub", + "test", + "test double", + "testing" + ], + "time": "2014-09-03 10:11:10" + }, + { + "name": "phpunit/php-code-coverage", + "version": "2.0.11", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-code-coverage.git", + "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/53603b3c995f5aab6b59c8e08c3a663d2cc810b7", + "reference": "53603b3c995f5aab6b59c8e08c3a663d2cc810b7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "phpunit/php-file-iterator": "~1.3", + "phpunit/php-text-template": "~1.2", + "phpunit/php-token-stream": "~1.3", + "sebastian/environment": "~1.0", + "sebastian/version": "~1.0" + }, + "require-dev": { + "ext-xdebug": ">=2.1.4", + "phpunit/phpunit": "~4.1" + }, + "suggest": { + "ext-dom": "*", + "ext-xdebug": ">=2.2.1", + "ext-xmlwriter": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", + "homepage": "https://github.com/sebastianbergmann/php-code-coverage", + "keywords": [ + "coverage", + "testing", + "xunit" + ], + "time": "2014-08-31 06:33:04" + }, + { + "name": "phpunit/php-file-iterator", + "version": "1.3.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-file-iterator.git", + "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", + "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "File/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "FilterIterator implementation that filters files based on a list of suffixes.", + "homepage": "https://github.com/sebastianbergmann/php-file-iterator/", + "keywords": [ + "filesystem", + "iterator" + ], + "time": "2013-10-10 15:34:57" + }, + { + "name": "phpunit/php-text-template", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-text-template.git", + "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "Text/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Simple template engine.", + "homepage": "https://github.com/sebastianbergmann/php-text-template/", + "keywords": [ + "template" + ], + "time": "2014-01-30 17:20:04" + }, + { + "name": "phpunit/php-timer", + "version": "1.0.5", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-timer.git", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "autoload": { + "classmap": [ + "PHP/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Utility class for timing", + "homepage": "https://github.com/sebastianbergmann/php-timer/", + "keywords": [ + "timer" + ], + "time": "2013-08-02 07:42:54" + }, + { + "name": "phpunit/php-token-stream", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/php-token-stream.git", + "reference": "f8d5d08c56de5cfd592b3340424a81733259a876" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/f8d5d08c56de5cfd592b3340424a81733259a876", + "reference": "f8d5d08c56de5cfd592b3340424a81733259a876", + "shasum": "" + }, + "require": { + "ext-tokenizer": "*", + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.3-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Wrapper around PHP's tokenizer extension.", + "homepage": "https://github.com/sebastianbergmann/php-token-stream/", + "keywords": [ + "tokenizer" + ], + "time": "2014-08-31 06:12:13" + }, + { + "name": "phpunit/phpunit", + "version": "4.3.4", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit.git", + "reference": "23e4e0310f037aae873cc81b8658dbbb82878f71" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/23e4e0310f037aae873cc81b8658dbbb82878f71", + "reference": "23e4e0310f037aae873cc81b8658dbbb82878f71", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-json": "*", + "ext-pcre": "*", + "ext-reflection": "*", + "ext-spl": "*", + "php": ">=5.3.3", + "phpunit/php-code-coverage": "~2.0", + "phpunit/php-file-iterator": "~1.3.2", + "phpunit/php-text-template": "~1.2", + "phpunit/php-timer": "~1.0.2", + "phpunit/phpunit-mock-objects": "~2.3", + "sebastian/comparator": "~1.0", + "sebastian/diff": "~1.1", + "sebastian/environment": "~1.0", + "sebastian/exporter": "~1.0", + "sebastian/version": "~1.0", + "symfony/yaml": "~2.0" + }, + "suggest": { + "phpunit/php-invoker": "~1.1" + }, + "bin": [ + "phpunit" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "include-path": [ + "", + "../../symfony/yaml/" + ], + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "The PHP Unit Testing framework.", + "homepage": "http://www.phpunit.de/", + "keywords": [ + "phpunit", + "testing", + "xunit" + ], + "time": "2014-10-22 11:43:12" + }, + { + "name": "phpunit/phpunit-mock-objects", + "version": "2.3.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", + "reference": "c63d2367247365f688544f0d500af90a11a44c65" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65", + "reference": "c63d2367247365f688544f0d500af90a11a44c65", + "shasum": "" + }, + "require": { + "doctrine/instantiator": "~1.0,>=1.0.1", + "php": ">=5.3.3", + "phpunit/php-text-template": "~1.2" + }, + "require-dev": { + "phpunit/phpunit": "~4.3" + }, + "suggest": { + "ext-soap": "*" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.3.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sb@sebastian-bergmann.de", + "role": "lead" + } + ], + "description": "Mock Object library for PHPUnit", + "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", + "keywords": [ + "mock", + "xunit" + ], + "time": "2014-10-03 05:12:11" + }, + { + "name": "pimple/pimple", + "version": "v2.1.1", + "source": { + "type": "git", + "url": "https://github.com/fabpot/Pimple.git", + "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ea22fb2880faf7b7b0e17c9809c6fe25b071fd76", + "reference": "ea22fb2880faf7b7b0e17c9809c6fe25b071fd76", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, + "autoload": { + "psr-0": { + "Pimple": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Pimple is a simple Dependency Injection Container for PHP 5.3", + "homepage": "http://pimple.sensiolabs.org", + "keywords": [ + "container", + "dependency injection" + ], + "time": "2014-07-24 07:10:08" + }, + { + "name": "qa-tools/qa-tools", + "version": "v1.0.1", + "source": { + "type": "git", + "url": "https://github.com/qa-tools/qa-tools.git", + "reference": "5456f64af5b94c5655f21a592b8817690c2096c7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/qa-tools/qa-tools/zipball/5456f64af5b94c5655f21a592b8817690c2096c7", + "reference": "5456f64af5b94c5655f21a592b8817690c2096c7", + "shasum": "" + }, + "require": { + "behat/mink": "~1.6", + "mindplay/annotations": "~1.2@dev", + "php": ">=5.3.2" + }, + "replace": { + "aik099/qa-tools": "self.version" + }, + "require-dev": { + "aik099/coding-standard": "dev-master", + "behat/mink-selenium2-driver": "~1.2@dev", + "brianium/paratest": "~0.7", + "mockery/mockery": "~0.9" + }, + "suggest": { + "aik099/phpunit-mink": "Allows to use PageObject inside PHPUnit tests and remotely collect code coverage information" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-0": { + "QATools\\QATools\\": "./library/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Alexander Obuhovich", + "email": "aik.bold@gmail.com" + }, + { + "name": "Dmitry Kushnikov", + "email": "dkushnikov@gmail.com" + }, + { + "name": "Michael Geppert", + "email": "evangelion1204@aol.com" + } + ], + "description": "Library that provides easy-to-use way of interaction with web-page elements in functional tests using PageObject pattern.", + "keywords": [ + "BEM", + "HtmlElements", + "Mink", + "PageObject", + "acceptance", + "functional", + "phpunit", + "tests" + ], + "time": "2014-09-26 15:15:51" + }, + { + "name": "sebastian/comparator", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/comparator.git", + "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/e54a01c0da1b87db3c5a3c4c5277ddf331da4aef", + "reference": "e54a01c0da1b87db3c5a3c4c5277ddf331da4aef", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "sebastian/diff": "~1.1", + "sebastian/exporter": "~1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.1" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides the functionality to compare PHP values for equality", + "homepage": "http://www.github.com/sebastianbergmann/comparator", + "keywords": [ + "comparator", + "compare", + "equality" + ], + "time": "2014-05-11 23:00:21" + }, + { + "name": "sebastian/diff", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/diff.git", + "reference": "5843509fed39dee4b356a306401e9dd1a931fec7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7", + "reference": "5843509fed39dee4b356a306401e9dd1a931fec7", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.2" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Kore Nordmann", + "email": "mail@kore-nordmann.de" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Diff implementation", + "homepage": "http://www.github.com/sebastianbergmann/diff", + "keywords": [ + "diff" + ], + "time": "2014-08-15 10:29:00" + }, + { + "name": "sebastian/environment", + "version": "1.2.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/environment.git", + "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/0d9bf79554d2a999da194a60416c15cf461eb67d", + "reference": "0d9bf79554d2a999da194a60416c15cf461eb67d", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Provides functionality to handle HHVM/PHP environments", + "homepage": "http://www.github.com/sebastianbergmann/environment", + "keywords": [ + "Xdebug", + "environment", + "hhvm" + ], + "time": "2014-10-22 06:38:05" + }, + { + "name": "sebastian/exporter", + "version": "1.0.2", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/exporter.git", + "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/c7d59948d6e82818e1bdff7cadb6c34710eb7dc0", + "reference": "c7d59948d6e82818e1bdff7cadb6c34710eb7dc0", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Jeff Welch", + "email": "whatthejeff@gmail.com" + }, + { + "name": "Volker Dusch", + "email": "github@wallbash.com" + }, + { + "name": "Bernhard Schussek", + "email": "bschussek@2bepublished.at" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + }, + { + "name": "Adam Harvey", + "email": "aharvey@php.net" + } + ], + "description": "Provides the functionality to export PHP variables for visualization", + "homepage": "http://www.github.com/sebastianbergmann/exporter", + "keywords": [ + "export", + "exporter" + ], + "time": "2014-09-10 00:51:36" + }, + { + "name": "sebastian/version", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/version.git", + "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", + "reference": "b6e1f0cf6b9e1ec409a0d3e2f2a5fb0998e36b43", + "shasum": "" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "lead" + } + ], + "description": "Library that helps with managing the version number of Git-hosted PHP projects", + "homepage": "https://github.com/sebastianbergmann/version", + "time": "2014-03-07 15:35:33" + }, + { + "name": "symfony/css-selector", + "version": "v2.5.6", + "target-dir": "Symfony/Component/CssSelector", + "source": { + "type": "git", + "url": "https://github.com/symfony/CssSelector.git", + "reference": "7cdf543a3f31935aae58de4e6e607d4bdeb3f5dc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/CssSelector/zipball/7cdf543a3f31935aae58de4e6e607d4bdeb3f5dc", + "reference": "7cdf543a3f31935aae58de4e6e607d4bdeb3f5dc", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\CssSelector\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony CssSelector Component", + "homepage": "http://symfony.com", + "time": "2014-10-09 16:00:03" + }, + { + "name": "symfony/event-dispatcher", + "version": "v2.5.6", + "target-dir": "Symfony/Component/EventDispatcher", + "source": { + "type": "git", + "url": "https://github.com/symfony/EventDispatcher.git", + "reference": "804eb28dbbfba9ffdab21fe2066744906cea2212" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/804eb28dbbfba9ffdab21fe2066744906cea2212", + "reference": "804eb28dbbfba9ffdab21fe2066744906cea2212", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "psr/log": "~1.0", + "symfony/config": "~2.0", + "symfony/dependency-injection": "~2.0,<2.6.0", + "symfony/stopwatch": "~2.2" + }, + "suggest": { + "symfony/dependency-injection": "", + "symfony/http-kernel": "" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\EventDispatcher\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony EventDispatcher Component", + "homepage": "http://symfony.com", + "time": "2014-10-01 15:43:05" + }, + { + "name": "symfony/yaml", + "version": "v2.5.6", + "target-dir": "Symfony/Component/Yaml", + "source": { + "type": "git", + "url": "https://github.com/symfony/Yaml.git", + "reference": "2d9f527449cabfa8543dd7fa3a466d6ae83d6726" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/2d9f527449cabfa8543dd7fa3a466d6ae83d6726", + "reference": "2d9f527449cabfa8543dd7fa3a466d6ae83d6726", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev" + } + }, + "autoload": { + "psr-0": { + "Symfony\\Component\\Yaml\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Symfony Community", + "homepage": "http://symfony.com/contributors" + }, + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "Symfony Yaml Component", + "homepage": "http://symfony.com", + "time": "2014-10-01 05:50:18" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": { + "aik099/coding-standard": 20, + "mindplay/annotations": 20 + }, + "prefer-stable": false, + "platform": [], + "platform-dev": [] +} Index: core/kernel/startup.php =================================================================== --- core/kernel/startup.php +++ core/kernel/startup.php @@ -191,6 +191,10 @@ kUtil::includeOnce($a_file); } + if ( version_compare(PHP_VERSION, '5.3.2', '>=') && file_exists(FULL_PATH . '/vendor/autoload.php') ) { + kUtil::includeOnce(FULL_PATH . '/vendor/autoload.php'); + } + if (defined('DEBUG_MODE') && DEBUG_MODE && isset($debugger)) { $debugger->AttachToApplication(); } @@ -201,4 +205,6 @@ // system users define('USER_ROOT', -1); - define('USER_GUEST', -2); \ No newline at end of file + define('USER_GUEST', -2); + + $GLOBALS['PHPUNIT_COVERAGE_DATA_DIRECTORY'] = WRITEABLE . '/remote_code_coverage'; Index: tools/build/build.properties.dist =================================================================== --- /dev/null +++ tools/build/build.properties.dist @@ -0,0 +1,13 @@ +local.build=1 +base.dir=../.. +client.ip.address= +cli.key=b674006f3edb1d9cd4d838c150b0567d + +website.domain= +website.path= + +db.host=localhost +db.user= +db.password= +db.name= +db.tableprefix= Index: tools/build/build_all.xml =================================================================== --- /dev/null +++ tools/build/build_all.xml @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="In-Portal (full)" default="build"> + <property file="build.properties" /> + <resolvepath propertyName="base.dir" file="${base.dir}"/> + + <property name="scan.dir" value="${base.dir}"/> + <property name="phpmd.exclude" value="blog,build,core/editor,core/ckeditor,modules/mpdf,system,vendor"/> + <property name="phpcpd.exclude" value="--exclude blog --exclude build --exclude core/editor --exclude core/ckeditor --exclude modules/mpdf --exclude system --exclude vendor"/> + + <import file="targets/common.xml"/> + + <fileset dir="${base.dir}" id="php.files"> + <include name="**/*.php"/> + <exclude name="blog/**"/> + <exclude name="build/**"/> + <exclude name="core/editor/**"/> + <exclude name="core/ckeditor/**"/> + <exclude name="modules/mpdf/**"/> + <exclude name="system/**"/> + <exclude name="vendor/**"/> + </fileset> +</project> Index: tools/build/build_custom.xml =================================================================== --- /dev/null +++ tools/build/build_custom.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="In-Portal (custom module only)" default="build"> + <property file="build.properties" /> + <resolvepath propertyName="base.dir" file="${base.dir}"/> + + <property name="scan.dir" value="${base.dir}/modules/custom"/> + + <!--TODO: update tasks, that uses "phpmd.exclude" and "phpcpd.exclude" to handle empty exclusion list--> + <property name="phpmd.exclude" value="no-match"/> + <property name="phpcpd.exclude" value="--exclude no-match"/> + + <import file="targets/common.xml"/> + + <fileset dir="${base.dir}" id="php.files"> + <include name="modules/custom/**/*.php"/> + </fileset> +</project> Index: tools/build/inc/custom_phpunit.xml =================================================================== --- /dev/null +++ tools/build/inc/custom_phpunit.xml @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit backupGlobals="true" + backupStaticAttributes="false" + bootstrap="../../../core/kernel/tests/bootstrap.php" + colors="false" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + strict="true" + verbose="true"> + + <php> + <ini name="memory_limit" value="-1"/> + </php> + + <testsuites> + <testsuite name="all"> + <directory>../../../core/tests</directory> + <directory>../../../modules/custom/tests</directory> + <exclude>../../../core/tests/unit</exclude> + </testsuite> + </testsuites> + + <listeners> + <listener class="\Mockery\Adapter\Phpunit\TestListener"/> + </listeners> + + <logging> + <!--<log type="coverage-html" target="../../../build/coverage" title="BankAccount" + charset="UTF-8" yui="true" highlight="true" + lowUpperBound="35" highLowerBound="70"/> + <log type="coverage-clover" target="../../../build/logs/clover.xml"/>--> + <log type="junit" target="../../../build/logs/junit.xml" logIncompleteSkipped="false"/> + </logging> + + <filter> + <blacklist> + <directory suffix=".php">..</directory> + </blacklist> + <whitelist addUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">../../../modules/custom</directory> + <exclude> + <directory>../../../blog</directory> + <directory>../../../modules/mpdf</directory> + <directory>../../../core/editor</directory> + <directory>../../../core/ckeditor</directory> + <directory>../../../system</directory> + <directory>../../../vendor</directory> + + <directory>../../../core/tests</directory> + <directory>../../../modules/*/tests</directory> + + <file>../../../core/kernel/tests/bootstrap.php</file> + </exclude> + </whitelist> + </filter> +</phpunit> Index: tools/build/inc/phpmd.xml =================================================================== --- /dev/null +++ tools/build/inc/phpmd.xml @@ -0,0 +1,50 @@ +<?xml version="1.0"?> +<ruleset name="InPortal" + xmlns="http://pmd.sf.net/ruleset/1.0.0" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://pmd.sf.net/ruleset/1.0.0 http://pmd.sf.net/ruleset_xml_schema.xsd" + xsi:noNamespaceSchemaLocation="http://pmd.sf.net/ruleset_xml_schema.xsd"> + <description> + In-Portal standard. Version: 1.0.1 from 21-Mar-2014 + </description> + + <rule ref="rulesets/codesize.xml"> + <!-- event handlers are usually large; figure out how to exclude only for them --> + <exclude name="TooManyMethods"/> + <exclude name="ExcessiveClassComplexity"/> + <exclude name="ExcessiveClassLength"/> + + <!-- exclude because defined below --> + <exclude name="ExcessiveMethodLength"/> + </rule> + + <rule ref="rulesets/codesize.xml/ExcessiveMethodLength"> + <properties> + <property name="minimum" value="120" /> + </properties> + </rule> + + <rule ref="rulesets/design.xml"> + <!-- event handlers usually do much; figure out how to exclude only for them --> + <exclude name="CouplingBetweenObjects"/> + </rule> + <rule ref="rulesets/naming.xml"> + <!-- let PHP_CodeSniffer check for them --> + <exclude name="LongVariable"/> + <exclude name="ConstantNamingConventions"/> + + <!-- exclude because defined below --> + <exclude name="ShortVariable"/> + </rule> + + <rule ref="rulesets/naming.xml/ShortVariable"> + <properties> + <property name="minimum" value="2" /> + </properties> + </rule> + + <rule ref="rulesets/unusedcode.xml"> + <!-- let PhpStorm deal with this --> + <exclude name="UnusedFormalParameter"/> + </rule> +</ruleset> Index: tools/build/inc/phpunit.xml =================================================================== --- /dev/null +++ tools/build/inc/phpunit.xml @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<phpunit backupGlobals="true" + backupStaticAttributes="false" + bootstrap="../../../core/kernel/tests/bootstrap.php" + colors="false" + convertErrorsToExceptions="true" + convertNoticesToExceptions="true" + convertWarningsToExceptions="true" + processIsolation="false" + stopOnFailure="false" + strict="true" + verbose="true"> + + <php> + <ini name="memory_limit" value="-1"/> + </php> + + <testsuites> + <testsuite name="all"> + <directory>../../../core/tests</directory> + <directory>../../../modules/*/tests</directory> + <exclude>../../../core/tests/unit</exclude> + </testsuite> + <testsuite name="custom"> + <directory>../../../modules/custom/tests</directory> + </testsuite> + </testsuites> + + <listeners> + <listener class="\Mockery\Adapter\Phpunit\TestListener"/> + </listeners> + + <logging> + <!--<log type="coverage-html" target="../../../build/coverage" title="BankAccount" + charset="UTF-8" yui="true" highlight="true" + lowUpperBound="35" highLowerBound="70"/> + <log type="coverage-clover" target="../../../build/logs/clover.xml"/>--> + <log type="junit" target="../../../build/logs/junit.xml" logIncompleteSkipped="false"/> + </logging> + + <filter> + <blacklist> + <directory suffix=".php">..</directory> + </blacklist> + <whitelist addUncoveredFilesFromWhitelist="true"> + <directory suffix=".php">../../..</directory> + <exclude> + <directory>../../../blog</directory> + <directory>../../../modules/mpdf</directory> + <directory>../../../core/editor</directory> + <directory>../../../core/ckeditor</directory> + <directory>../../../system</directory> + <directory>../../../vendor</directory> + + <directory>../../../core/tests</directory> + <directory>../../../modules/*/tests</directory> + + <file>../../../core/kernel/tests/bootstrap.php</file> + </exclude> + </whitelist> + </filter> +</phpunit> Index: tools/build/targets/common.xml =================================================================== --- /dev/null +++ tools/build/targets/common.xml @@ -0,0 +1,216 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- +### Requirements + +Using the template requires a range of PEAR packages present. They can be +installed as follows: + + pear config-set auto_discover 1 + pear install pear.phpqatools.org/phpqatools + + pear channel-discover pear.phpdoc.org + pear install phpdoc/phpDocumentor-alpha + + pear channel-discover pear.phing.info + pear install -\-alldeps phing/phing + + pear channel-discover pear.phpunit.de + pear install phpunit/PHPUnit_Selenium +--> +<project name="inc_common" default="build"> + <import file="targets/db.xml"/> + <import file="targets/deploy.xml"/> + <import file="targets/folders.xml"/> + + <php function="ini_set"> + <param value="memory_limit"/> + <param value="-1"/> + </php> + + <target name="build" description="Builds a project" depends="init,verify,analyze"/> + + <target name="build-parallel" description="Builds a project (long targets executed in parallel)" depends="init,lint,tools-parallel,phpunit"/> + + <target name="tools-parallel" description="Run tools in parallel"> + <parallel threadCount="2"> + <sequential> + <phingcall target="pdepend"/> + <phingcall target="phpmd-ci"/> + </sequential> + + <phingcall target="phpcpd"/> + <phingcall target="phpcs-ci"/> + <phingcall target="phploc"/> + <phingcall target="phpdoc"/> + </parallel> + </target> + + <!-- ### Verify code consistency + + Make sure that our code is clean and functional. --> + <target name="verify" description="Verify code consistency" depends="init,lint"/> + <!--<target name="verify" description="Verify code consistency" depends="init,lint,phpunit"/>--> + + <!-- ### Analyze code + + Perform static analysis of the code to generate statistics, identify potential + problems and opportunities for refactorings and make sure that the code + complies with coding standards. --> + <target name="analyze" description="Analyze code" depends="init,phploc,phpmd-ci,phpcs-ci"/> + <!--<target name="analyze" description="Analyze code" depends="init,phploc,pdepend,phpmd-ci,phpcpd,phpcs-ci"/>--> + + <!-- ### Generate documentation + + Generate HTML documentation and code browser for the project. --> + <target name="docs" description="Generate documentation" depends="init,phpdoc" /> + + <!-- ### PHP linting + + Check files for syntax errors. --> + <target name="lint" description="Perform syntax check of sourcecode files" depends="init"> + <phplint haltonfailure="true" deprecatedAsError="true" cachefile="${build.cache.dir}/phplint.txt"> + <fileset refid="php.files"/> + </phplint> + </target> + + <!-- ### Generate code statistics + + Measures the size of the project using + [phploc](http://sebastianbergmann.github.com/phploc/) and generates + statistics. --> + <target name="phploc" description="Measure project size using PHPLOC" depends="init"> + <phploc reportType="csv" reportName="phploc" reportDirectory="${build.logs.dir}"> + <fileset refid="php.files"/> + </phploc> + </target> + + <target name="pdepend" description="Calculate software metrics using PHP_Depend" depends="init"> + <exec executable="pdepend" passthru="true"> + <arg value="--jdepend-xml=${build.logs.dir}/jdepend.xml"/> + <arg value="--jdepend-chart=${build.pdepend.dir}/dependencies.svg"/> + <arg value="--overview-pyramid=${build.pdepend.dir}/overview-pyramid.svg"/> + <arg value="--ignore=${phpmd.exclude}"/> + <arg path="${scan.dir}"/> + </exec> + </target> + + <!-- ### Detect code mess + + Uses [PHPMD](http://phpmd.org/) to detect code mess and look for potential + problems. --> + <target name="phpmd" description="Perform project mess detection using PHPMD (print human readable output)" depends="init"> + <exec executable="phpmd" passthru="true"> + <arg path="${scan.dir}"/> + <arg value="text"/> + <arg value="${build.config.dir}/inc/phpmd.xml"/> + <arg value="--suffixes"/> + <arg value="php"/> + <arg value="--exclude=${phpmd.exclude}"/> + </exec> + </target> + + <!-- ### Detect code mess + + Uses [PHPMD](http://phpmd.org/) to detect code mess and look for potential + problems. --> + <target name="phpmd-ci" description="Perform project mess detection using PHPMD (creates a log file for the CI server)" depends="init"> + <exec executable="phpmd" passthru="true"> + <arg path="${scan.dir}"/> + <arg value="xml"/> + <arg value="${build.config.dir}/inc/phpmd.xml"/> + <arg value="--reportfile"/> + <arg value="${build.logs.dir}/pmd.xml"/> + <arg value="--suffixes"/> + <arg value="php"/> + <arg value="--exclude=${phpmd.exclude}"/> + </exec> + </target> + + <target name="phpcs" description="Find coding standard violations using PHP_CodeSniffer (print human readable output)" depends="init"> + <!--<exec executable="${base.dir}/vendor/bin/phpcs" passthru="true">--> + <!--<exec executable="/home/alex/web/g/direct/PHP_CodeSniffer/scripts/phpcs" passthru="true">--> + <exec executable="phpcs" passthru="true"> + <arg value="--standard=${vendor.dir}/aik099/coding-standard/CodingStandard"/> + <arg value="-wvs"/> + <arg value="--encoding=UTF-8"/> + <arg value="--extensions=php"/> + <arg value="--report=diff"/> + <arg value="--sniffs=Generic.WhiteSpace.ScopeIndent"/> + <arg value="-d"/> + <arg value="memory_limit=-1"/> + <arg path="${base.dir}/modules/custom/units/widgets/widget_tp.php"/> + <!--<arg path="${scan.dir}"/>--> + </exec> + </target> + + <target name="phpcs-ci" description="Find coding standard violations using PHP_CodeSniffer (creates a log file for the CI server)" depends="init"> + <!--<exec executable="${base.dir}/vendor/bin/phpcs" passthru="true">--> + <!--<exec executable="/home/alex/web/g/direct/PHP_CodeSniffer/scripts/phpcs" passthru="true">--> + <exec executable="phpcs" passthru="true"> + <arg value="--report=checkstyle"/> + <arg value="--report-file=${build.logs.dir}/checkstyle.xml"/> + <arg value="--standard=${vendor.dir}/aik099/coding-standard/CodingStandard"/> + <arg value="-w"/> + <arg value="--encoding=UTF-8"/> + <arg value="--extensions=php"/> + <arg value="-p"/> + <arg value="-d"/> + <arg value="memory_limit=-1"/> + <arg path="${scan.dir}"/> + </exec> + </target> + + <!-- ### Detect potential copy/pasting + + Uses [phpcpd](https://github.com/sebastianbergmann/phpcpd) to detect duplicate + code. This indicates potential refactorings.--> + <target name="phpcpd" description="Find duplicate code using PHPCPD" depends="init"> + <exec executable="phpcpd" passthru="true"> + <arg value="--log-pmd=${build.logs.dir}/pmd-cpd.xml"/> + <arg line="${phpcpd.exclude}"/> + <arg path="${scan.dir}"/> + </exec> + </target> + + <!-- ### Generate documentation --> + <!-- #### Generate API Documentation + + Uses [phpDocumentor](http://www.phpdoc.org/) to generate documentation. --> + <target name="phpdoc" description="Generate API documentation using phpdoc" depends="init"> + <phpdoc2 title="API Documentation" destdir="${build.api.dir}" template="responsive" quiet="true"> + <fileset refid="php.files"/> + </phpdoc2> + </target> + + <target name="phpunit" description="Run tests with PHPUnit" depends="init"> + <exec executable="phpunit" logoutput="true" checkreturn="true"> + <arg value="--configuration"/> + <arg path="${build.config.dir}/phpunit.xml"/> + <arg value="--testsuite"/> + <arg value="custom"/> + </exec> + </target> + + <target name="init" depends="create-aliases,folders-create" description="Prepare for build"> + <if> + <isfalse value="${local.build}"/> + <then> + <phingcall target="deploy-ci"/> + </then> + </if> + </target> + + <target name="create-aliases" description="Creating directory aliases" hidden="true"> + <property name="pdo.dsn.without.db" value="mysql:host=${db.host}"/> + <property name="pdo.dsn" value="${pdo.dsn.without.db};dbname=${db.name}"/> + + <property name="build.config.dir" value="."/> + <property name="build.dir" value="${base.dir}/build"/> + <!--<property name="build.api.dir" value="${build.dir}/api"/>--> + <!--<property name="build.coverage.dir" value="${build.dir}/coverage"/>--> + <property name="build.logs.dir" value="${build.dir}/logs"/> + <property name="build.cache.dir" value="${build.dir}/cache"/> + <!--<property name="build.pdepend.dir" value="${build.dir}/pdepend"/>--> + <property name="vendor.dir" value="${base.dir}/vendor"/> + </target> +</project> Index: tools/build/targets/db.xml =================================================================== --- /dev/null +++ tools/build/targets/db.xml @@ -0,0 +1,111 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="inc_db" default="build"> + <target name="db-fill-ci" description="Inserts testing data into database" depends="create-aliases,db-clean-ci,config-create"> + <echo msg="Filling database '${db.name}' with demo data"/> + + <foreach param="filename" absparam="db.file" target="db-import-file"> + <filelist dir="${base.dir}/system" files="build-schema.sql,build-data.sql,build-patch.sql"/> + </foreach> + </target> + + <target name="db-clean-ci" description="Cleans the database"> + <echo msg="Deleting database '${db.name}'"/> + <phingcall target="db-inline-query"> + <property name="skip-db" value="true"/> + <property name="db.query" value="DROP DATABASE ${db.name};"/> + </phingcall> + + <echo msg="Creating database '${db.name}'"/> + <phingcall target="db-inline-query"> + <property name="skip-db" value="true"/> + <property name="db.query" value="CREATE DATABASE ${db.name};"/> + </phingcall> + </target> + + <target name="db-dump" description="Dumps database (to be used in CI)" depends="create-aliases"> + <echo msg="Truncating '${db.tableprefix}SystemCache' table in '${db.name}' database"/> + <phingcall target="db-inline-query"> + <property name="db.query" value="TRUNCATE TABLE ${db.tableprefix}SystemCache;"/> + </phingcall> + + <echo msg="Truncating '${db.tableprefix}SystemLog' table in '${db.name}' database"/> + <phingcall target="db-inline-query"> + <property name="db.query" value="TRUNCATE TABLE ${db.tableprefix}SystemLog;"/> + </phingcall> + + <echo msg="Dumping database '${db.name}' schema"/> + <exec executable="mysqldump" checkreturn="true"> + <arg value="--host=${db.host}"/> + <arg value="--user=${db.user}"/> + <arg value="--password=${db.password}"/> + <arg value="--compact"/> + <arg value="--no-data"/> + <arg value="${db.name}"/> + <arg value=">"/> + <arg path="${base.dir}/system/build-schema.sql"/> + </exec> + + <echo msg="Dumping database '${db.name}' data"/> + <exec executable="mysqldump" checkreturn="true"> + <arg value="--host=${db.host}"/> + <arg value="--user=${db.user}"/> + <arg value="--password=${db.password}"/> + <arg value="--compact"/> + <arg value="--no-create-info"/> + <arg value="${db.name}"/> + <arg value=">"/> + <arg path="${base.dir}/system/build-data.sql"/> + </exec> + + <echo msg="Creating empty '${db.name}' patch"/> + <touch file="${base.dir}/system/build-patch.sql" /> + </target> + + <!-- ## Helper targets + + These targets are used throughout the project and should normally not be + executed directly.--> + <target name="db-import-file" description="Import file into database" hidden="true"> + <echo msg="Importing '${db.file}' into '${db.name}' database"/> + + <!--<pdosqlexec url="${pdo.dsn}" userid="${db.user}" password="${db.password}" encoding="utf-8"> + <transaction src="${db.file}"/> + </pdosqlexec>--> + + <exec executable="mysql" checkreturn="true"> + <arg value="--host=${db.host}"/> + <arg value="--user=${db.user}"/> + <arg value="--password=${db.password}"/> + <arg value="${db.name}"/> + <arg value="<"/> + <arg path="${db.file}"/> + </exec> + </target> + + <target name="db-inline-query" description="Runs sql query in database" hidden="true"> + <property name="skip-db" value="false"/> + + <if> + <isfalse value="${skip-db}"/> + <then> + <exec executable="mysql" checkreturn="true"> + <arg value="--host=${db.host}"/> + <arg value="--user=${db.user}"/> + <arg value="--password=${db.password}"/> + <arg value="${db.name}"/> + <arg value="-BNe"/> + <arg value="${db.query}"/> + </exec> + </then> + <else> + <exec executable="mysql" checkreturn="true"> + <arg value="--host=${db.host}"/> + <arg value="--user=${db.user}"/> + <arg value="--password=${db.password}"/> + <arg value="-BNe"/> + <arg value="${db.query}"/> + </exec> + </else> + </if> + </target> +</project> Index: tools/build/targets/deploy.xml =================================================================== --- /dev/null +++ tools/build/targets/deploy.xml @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="inc_deploy" default="build"> + <target name="deploy-ci" description="Deployment tasks, that are required after SVN checkout" depends="create-aliases,db-fill-ci"> + <property name="tools.dir" value="${base.dir}/tools"/> + + <echo msg="Fixing shell scripts permissions under '/tools' folder"/> + <chmod mode="0755" verbose="true" failonerror="true"> + <fileset dir="${tools.dir}"> + <include name="*.sh"/> + </fileset> + </chmod> + + <echo msg="Fixing '/system' folder permissions"/> + <exec dir="${tools.dir}" command="./fix_perms.sh" logoutput="true"/> + + <echo msg="Removing compiled templates under '/system/cache' folder"/> + <exec dir="${tools.dir}" command="./clear_cache.sh" logoutput="true"/> + + <composer command="install" composer="/usr/local/bin/composer"> + <arg value="--working-dir"/> + <arg path="${base.dir}"/> + <arg value="--ansi"/> + </composer> + + <phingcall target="inportal-deploy"/> + </target> + + <target name="inportal-deploy" description="Runs In-Portal deployment script"> + <echo msg="Running In-Portal Deployment Script (part of 'do_update') ..."/> + + <exec executable="php" logoutput="true" checkreturn="true"> + <arg path="${base.dir}/tools/run_event.php"/> + <arg value="adm:OnDeploy"/> + <arg value="${cli.key}"/> + <arg value="${client.ip.address}"/> + </exec> + </target> +</project> Index: tools/build/targets/folders.xml =================================================================== --- /dev/null +++ tools/build/targets/folders.xml @@ -0,0 +1,70 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project name="inc_folders" default="build"> + <target name="folders-create" description="Creates folders, to store build artifacts" depends="create-aliases,folders-delete"> + <!--<mkdir dir="${build.api.dir}"/>--> + <!--<mkdir dir="${build.coverage.dir}"/>--> + <mkdir dir="${build.logs.dir}"/> + <!--<mkdir dir="${build.pdepend.dir}"/>--> + <mkdir dir="${build.cache.dir}"/> + <mkdir dir="${build.dir}/test_data"/> + <mkdir dir="${build.dir}/system/remote_code_coverage"/> + + <copy todir="${base.dir}/system" overwrite="true"> + <fileset dir="${build.dir}/test_data"> + <include name="**/*"/> + </fileset> + </copy> + + <if> + <isfalse value="${local.build}"/> + <then> + <echo message="Setting 'RewriteBase /' to solve problems with 'VirtualDocumentRoot' option"/> + <echo file="${base.dir}/.htaccess" append="true"> + RewriteBase / + </echo> + </then> + </if> + </target> + + <target name="folders-delete" description="Deletes folders, where build artifacts are stored" depends="create-aliases"> + <!--<delete dir="${build.api.dir}"/>--> + <!--<delete dir="${build.coverage.dir}"/>--> + <delete dir="${build.logs.dir}"/> + <!--<delete dir="${build.pdepend.dir}"/>--> + </target> + + <target name="config-create" description="Creates '/system/config.php' file" depends="create-aliases,config-delete"> + <touch file="${base.dir}/system/config.php" /> + + <echo file="${base.dir}/system/config.php"><?php + $_CONFIG['Misc']['WriteablePath'] = '/system'; + $_CONFIG['Misc']['RestrictedPath'] = '/system/.restricted'; + $_CONFIG['Misc']['WebsitePath'] = '${website.path}'; + $_CONFIG['Misc']['Domain'] = '${website.domain}'; + $_CONFIG['Misc']['AdminDirectory'] = '/admin'; + $_CONFIG['Misc']['AdminPresetsDirectory'] = '/admin'; + $_CONFIG['Misc']['ApplicationClass'] = 'kApplication'; + $_CONFIG['Misc']['ApplicationPath'] = '/core/kernel/application.php'; + $_CONFIG['Misc']['CacheHandler'] = 'Fake'; + $_CONFIG['Misc']['MemcacheServers'] = 'localhost:11211'; + $_CONFIG['Misc']['CompressionEngine'] = 'php'; + $_CONFIG['Misc']['WebsiteCharset'] = 'utf-8'; + $_CONFIG['Misc']['EnableSystemLog'] = '1'; + $_CONFIG['Misc']['SystemLogMaxLevel'] = '5'; + $_CONFIG['Misc']['TrustProxy'] = '0'; + + $_CONFIG['Database']['DBType'] = 'mysql'; + $_CONFIG['Database']['DBHost'] = '${db.host}'; + $_CONFIG['Database']['DBName'] = '${db.name}'; + $_CONFIG['Database']['DBUser'] = '${db.user}'; + $_CONFIG['Database']['DBUserPassword'] = '${db.password}'; + $_CONFIG['Database']['DBCollation'] = 'utf8_general_ci'; + $_CONFIG['Database']['TablePrefix'] = '${db.tableprefix}'; + $_CONFIG['Database']['DBCharset'] = 'utf8'; + </echo> + </target> + + <target name="config-delete" description="Deletes '/system/config.php' file" depends="create-aliases"> + <delete file="${base.dir}/system/config.php"/> + </target> +</project>