+
+
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php
new file mode 100644
index 0000000..807c23e
--- /dev/null
+++ b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page1.php
@@ -0,0 +1,18 @@
+server->get('REQUEST_URI');
+ $resp = new Symfony\Component\HttpFoundation\Response();
+ $cook = new Symfony\Component\HttpFoundation\Cookie('srvr_cookie', 'srv_var_is_set_sub_folder', 0, dirname($requestUri));
+ $resp->headers->setCookie($cook);
+?>
+
+
+
+ basic form
+
+
+
+
+ basic page with cookie set from server side
+
+
diff --git a/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php
new file mode 100644
index 0000000..22a7dab
--- /dev/null
+++ b/core/vendor/behat/mink-browserkit-driver/tests/web-fixtures/sub-folder/cookie_page2.php
@@ -0,0 +1,18 @@
+
+
+
+ Basic Form
+
+
+
+
+ Previous cookie: cookies->has('srvr_cookie')) {
+ echo $app['request']->cookies->get('srvr_cookie');
+ } else {
+ echo 'NO';
+ }
+ ?>
+
+
diff --git a/core/vendor/behat/mink-goutte-driver/.gitignore b/core/vendor/behat/mink-goutte-driver/.gitignore
new file mode 100644
index 0000000..1d034f4
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/.gitignore
@@ -0,0 +1,4 @@
+vendor
+composer.phar
+composer.lock
+phpunit.xml
diff --git a/core/vendor/behat/mink-goutte-driver/.travis.yml b/core/vendor/behat/mink-goutte-driver/.travis.yml
new file mode 100644
index 0000000..b09e457
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/.travis.yml
@@ -0,0 +1,19 @@
+language: php
+
+php: [5.3, 5.4, 5.5, 5.6, hhvm]
+
+before_script:
+ - export WEB_FIXTURES_HOST=http://localhost
+
+ - composer install --dev --prefer-source
+
+ - sudo apt-get update
+ - sudo apt-get install -y --force-yes apache2 libapache2-mod-php5
+ - sudo sed -i -e "s,/var/www,$(pwd)/vendor/behat/mink/driver-testsuite/web-fixtures,g" /etc/apache2/sites-available/default
+ - sudo /etc/init.d/apache2 restart
+
+script: phpunit -v --coverage-clover=coverage.clover
+
+after_script:
+ - wget https://scrutinizer-ci.com/ocular.phar
+ - php ocular.phar code-coverage:upload --format=php-clover coverage.clover
diff --git a/core/vendor/behat/mink-goutte-driver/CHANGELOG.md b/core/vendor/behat/mink-goutte-driver/CHANGELOG.md
new file mode 100644
index 0000000..fcaa7f0
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/CHANGELOG.md
@@ -0,0 +1,20 @@
+1.1.0 / 2014-10-09
+==================
+
+The driver now relies on BrowserKitDriver 1.2.x, so all changes of this driver are relevant.
+The changes below only describe the changes related to GoutteDriver specifically.
+
+New features:
+
+* Added the possibility to use a normal Goutte client instead of requiring to use an extended one
+* Added the support of Goutte 2.0 as well
+
+Bug fixes:
+
+* Fixed the support of disabling basic auth
+* Fixed the resetting of the driver to reset the basic auth
+
+Testing:
+
+* Updated the testsuite to use the new Mink 1.6 driver testsuite
+* Added testing on HHVM
diff --git a/core/vendor/behat/mink-goutte-driver/LICENSE b/core/vendor/behat/mink-goutte-driver/LICENSE
new file mode 100644
index 0000000..3365ae6
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2012-2013 Konstantin Kudryashov
+
+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/core/vendor/behat/mink-goutte-driver/README.md b/core/vendor/behat/mink-goutte-driver/README.md
new file mode 100755
index 0000000..c7877c5
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/README.md
@@ -0,0 +1,53 @@
+Mink Goutte Driver
+==================
+
+[![Latest Stable Version](https://poser.pugx.org/behat/mink-goutte-driver/v/stable.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
+[![Latest Unstable Version](https://poser.pugx.org/behat/mink-goutte-driver/v/unstable.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
+[![Total Downloads](https://poser.pugx.org/behat/mink-goutte-driver/downloads.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
+[![Build Status](https://travis-ci.org/Behat/MinkGoutteDriver.svg?branch=master)](https://travis-ci.org/Behat/MinkGoutteDriver)
+[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/Behat/MinkGoutteDriver/badges/quality-score.png?s=ca141bb2cad18e74cf3d3b132b1a6aa0f3f004a5)](https://scrutinizer-ci.com/g/Behat/MinkGoutteDriver/)
+[![Code Coverage](https://scrutinizer-ci.com/g/Behat/MinkGoutteDriver/badges/coverage.png?s=ca2d17a948660bfaeb4a95bf1a709644305c54f3)](https://scrutinizer-ci.com/g/Behat/MinkGoutteDriver/)
+[![License](https://poser.pugx.org/behat/mink-goutte-driver/license.svg)](https://packagist.org/packages/behat/mink-goutte-driver)
+
+Usage Example
+-------------
+
+``` php
+ new Session(new GoutteDriver(new GoutteClient($startUrl))),
+));
+
+$mink->getSession('goutte')->getPage()->findLink('Chat')->click();
+```
+
+Installation
+------------
+
+``` json
+{
+ "require": {
+ "behat/mink": "~1.5",
+ "behat/mink-goutte-driver": "~1.0"
+ }
+}
+```
+
+``` bash
+$> curl -sS https://getcomposer.org/installer | php
+$> php composer.phar install
+```
+
+Maintainers
+-----------
+
+* Konstantin Kudryashov [everzet](http://github.com/everzet)
+* Other [awesome developers](https://github.com/Behat/MinkGoutteDriver/graphs/contributors)
diff --git a/core/vendor/behat/mink-goutte-driver/composer.json b/core/vendor/behat/mink-goutte-driver/composer.json
new file mode 100644
index 0000000..7444a50
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/composer.json
@@ -0,0 +1,41 @@
+{
+ "name": "behat/mink-goutte-driver",
+ "description": "Goutte driver for Mink framework",
+ "keywords": ["goutte", "headless", "testing", "browser"],
+ "homepage": "http://mink.behat.org/",
+ "type": "mink-driver",
+ "license": "MIT",
+
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ }
+ ],
+
+ "require": {
+ "php": ">=5.3.1",
+ "behat/mink": "~1.6@dev",
+ "behat/mink-browserkit-driver": "~1.2@dev",
+ "fabpot/goutte": "~1.0.4|~2.0"
+ },
+
+ "autoload": {
+ "psr-0": {
+ "Behat\\Mink\\Driver": "src/"
+ }
+ },
+
+ "autoload-dev": {
+ "psr-4": {
+ "Behat\\Mink\\Tests\\Driver\\": "tests"
+ }
+ },
+
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ }
+}
diff --git a/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist b/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist
new file mode 100644
index 0000000..f374c53
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/phpunit.xml.dist
@@ -0,0 +1,23 @@
+
+
+
+
+
+ tests
+ vendor/behat/mink/driver-testsuite/tests/Basic
+ vendor/behat/mink/driver-testsuite/tests/Form
+
+
+
+
+
+
+
+
+
+
+
+ ./src/Behat/Mink/Driver
+
+
+
diff --git a/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/Goutte/Client.php b/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/Goutte/Client.php
new file mode 100644
index 0000000..9d64be7
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/Goutte/Client.php
@@ -0,0 +1,43 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Behat\Mink\Driver\Goutte;
+
+use Goutte\Client as BaseClient;
+use Symfony\Component\BrowserKit\Response;
+
+/**
+ * Client overrides to support Mink functionality.
+ */
+class Client extends BaseClient
+{
+ /**
+ * Reads response meta tags to guess content-type charset.
+ *
+ * @param Response $response
+ *
+ * @return Response
+ */
+ protected function filterResponse($response)
+ {
+ $contentType = $response->getHeader('Content-Type');
+
+ if (!$contentType || false === strpos($contentType, 'charset=')) {
+ if (preg_match('/\]+charset *= *["\']?([a-zA-Z\-0-9]+)/i', $response->getContent(), $matches)) {
+ $headers = $response->getHeaders();
+ $headers['Content-Type'] = $contentType.';charset='.$matches[1];
+
+ $response = new Response($response->getContent(), $response->getStatus(), $headers);
+ }
+ }
+
+ return parent::filterResponse($response);
+ }
+}
diff --git a/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/GoutteDriver.php b/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/GoutteDriver.php
new file mode 100644
index 0000000..a42d5a2
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/src/Behat/Mink/Driver/GoutteDriver.php
@@ -0,0 +1,75 @@
+
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Behat\Mink\Driver;
+
+use Behat\Mink\Driver\Goutte\Client as ExtendedClient;
+use Goutte\Client;
+
+/**
+ * Goutte driver.
+ *
+ * @author Konstantin Kudryashov
+ */
+class GoutteDriver extends BrowserKitDriver
+{
+ /**
+ * Initializes Goutte driver.
+ *
+ * @param Client $client Goutte client instance
+ */
+ public function __construct(Client $client = null)
+ {
+ parent::__construct($client ?: new ExtendedClient());
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function setBasicAuth($user, $password)
+ {
+ if (false === $user) {
+ $this->getClient()->resetAuth();
+
+ return;
+ }
+
+ $this->getClient()->setAuth($user, $password);
+ }
+
+ /**
+ * Gets the Goutte client.
+ *
+ * The method is overwritten only to provide the appropriate return type hint.
+ *
+ * @return Client
+ */
+ public function getClient()
+ {
+ return parent::getClient();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ public function reset()
+ {
+ parent::reset();
+ $this->getClient()->resetAuth();
+ }
+
+ /**
+ * {@inheritdoc}
+ */
+ protected function prepareUrl($url)
+ {
+ return $url;
+ }
+}
diff --git a/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php b/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php
new file mode 100644
index 0000000..db75a18
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/tests/Custom/InstantiationTest.php
@@ -0,0 +1,27 @@
+getMockBuilder('Goutte\Client')->disableOriginalConstructor()->getMock();
+ $client->expects($this->once())
+ ->method('followRedirects')
+ ->with(true);
+
+ $driver = new GoutteDriver($client);
+
+ $this->assertSame($client, $driver->getClient());
+ }
+
+ public function testInstantiateWithoutClient()
+ {
+ $driver = new GoutteDriver();
+
+ $this->assertInstanceOf('Behat\Mink\Driver\Goutte\Client', $driver->getClient());
+ }
+}
diff --git a/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php b/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php
new file mode 100644
index 0000000..bbe90f7
--- /dev/null
+++ b/core/vendor/behat/mink-goutte-driver/tests/GoutteConfig.php
@@ -0,0 +1,26 @@
+` is selected
+ * Added `NodeElement::submitForm` to allow submitting a form without using a button
+ * Added assertions about the value of an attribute
+ * Added the anchor in the assertion on the URL in `WebAssert`
+
+1.5.0 / 2013-04-14
+==================
+
+ * Add `CoreDriver` to simplify future drivers improvements
+ * Add `Mink::isSessionStarted()` method
+ * Fix multibite string `preg_replace` bugs
+ * Fix handling of whitespaces in `WebAssert::pageText...()` methods
+
+1.4.3 / 2013-03-02
+==================
+
+ * Bump dependencies constraints
+
+1.4.2 / 2013-02-13
+==================
+
+ * Fix wrong test case to ensure that core drivers work as expected
+
+1.4.1 / 2013-02-10
+==================
+
+ * Update dependencies
+ * Add ElementException to element actions
+ * Rel attribute support for named selectors
+ * Add hasClass() helper to traversable elements
+ * Add getScreenshot() method to session
+ * Name attr support in named selector for button
+ * Fix for bunch of bugs
+
+1.4.0 / 2012-05-40
+==================
+
+ * New `Session::selectWindow()` and `Session::selectIFrame()` methods
+ * New built-in `WebAssert` class
+ * Fixed DocBlocks (autocompletion in any IDE now should just work)
+ * Moved Behat-related code into `Behat\MinkExtension`
+ * Removed PHPUnit test case class
+ * Updated composer dependencies to not require custom repository anymore
+ * All drivers moved into separate packages
+
+1.3.3 / 2012-03-23
+==================
+
+ * Prevent exceptions in `__toString()`
+ * Added couple of useful step definitions for Behat
+ * Fixed issues #168, #211, #212, #208
+ * Lot of small bug fixes and improvements
+ * Fixed dependencies and composer installation routine
+
+1.3.2 / 2011-12-21
+==================
+
+ * Fixed webdriver registration in MinkContext
+
+1.3.1 / 2011-12-21
+==================
+
+ * Fixed Composer package
+
+1.3.0 / 2011-12-21
+==================
+
+ * Brand new Selenium2Driver (webdriver session)
+ * Multiselect bugfixes
+ * ZombieDriver back in the business
+ * Composer now manages dependencies
+ * Some MinkContext steps got fixes
+ * Lots of bug fixes and cleanup
+
+1.2.0 / 2011-11-04
+==================
+
+ * Brand new SeleniumDriver (thanks @alexandresalome)
+ * Multiselect support (multiple options selection), including new Behat steps
+ * Ability to select option by it's text (in addition to value)
+ * ZombieDriver updates
+ * Use SuiteHooks to populate parameters (no need to call parent __construct anymore)
+ * Updated Goutte and all vendors
+ * Lot of bugfixes and new tests
+
+1.1.1 / 2011-08-12
+==================
+
+ * Fixed Zombie.js server termination on Linux
+ * Fixed base_url usage for external URLs
+
+1.1.0 / 2011-08-08
+==================
+
+ * Added Zombie.js driver (thanks @b00giZm)
+ * Added pt translation (thanks Daniel Gomes)
+ * Refactored MinkContext and MinkTestCase
+
+1.0.3 / 2011-08-02
+==================
+
+ * File uploads for empty fields fixed (GoutteDriver)
+ * Lazy sessions restart
+ * `show_tmp_dir` option in MinkContext
+ * Updated to stable Symfony2 components
+ * SahiClient connection limit bumped to 60 seconds
+ * Dutch language support
+
+1.0.2 / 2011-07-22
+==================
+
+ * ElementHtmlException fixed (thanks @Stof)
+
+1.0.1 / 2011-07-21
+==================
+
+ * Fixed buggy assertions in MinkContext
+
+1.0.0 / 2011-07-20
+==================
+
+ * Added missing tests for almost everything
+ * Hude speedup for SahiDriver
+ * Support for Behat 2.0 contexts
+ * Bundled PHPUnit TestCase
+ * Deep element traversing
+ * Correct behavior of getText() method
+ * New getHtml() method
+ * Basic HTTP auth support
+ * Soft and hard session resetting
+ * Cookies management
+ * Browser history interactions (reload(), back(), forward())
+ * Weaverryan'd exception messages
+ * Huge amount of bugfixes and small additions
+
+0.3.2 / 2011-06-20
+==================
+
+ * Fixed file uploads in Goutte driver
+ * Fixed setting of long texts into fields
+ * Added getPlainText() (returns text without tags and whitespaces) method to the element's API
+ * Start_url is now optional parameter
+ * Default session (if needed) name now need to be always specified by hands with setDefaultSessionName()
+ * default_driver => default_session
+ * Updated Symfony Components
+
+0.3.1 / 2011-05-17
+==================
+
+ * Small SahiClient update (it generates SID now if no provided)
+ * setActiveSessionName => setDefaultSessionName method rename
+
+0.3.0 / 2011-05-17
+==================
+
+ * Rewritten from scratch Mink drivers handler. Now it's sessions handler. And Mink now
+ sessions-centric tool. See examples in readme. Much cleaner API now.
+
+0.2.4 / 2011-05-12
+==================
+
+ * Fixed wrong url locator function
+ * Fixed wrong regex in `should see` step
+ * Fixed delimiters use in `should see` step
+ * Added url-match step for checking urls against regex
+
+0.2.3 / 2011-05-01
+==================
+
+ * Updated SahiClient with new version, which is faster and cleaner with it's exceptions
+
+0.2.2 / 2011-05-01
+==================
+
+ * Ability to use already started browser as SahiDriver aim
+ * Added japanese translation for bundled steps (thanks @hidenorigoto)
+ * 10 seconds limit for browser connection in SahiDriver
+
+0.2.1 / 2011-04-21
+==================
+
+ * Fixed some bundled step definitions
+
+0.2.0 / 2011-04-21
+==================
+
+ * Additional step definitions
+ * Support for extended drivers configuration through behat.yml environment parameters
+ * Lots of new named selectors
+ * Bug fixes
+ * Small improvements
+
+0.1.2 / 2011-04-08
+==================
+
+ * Fixed Sahi url escaping
+
+0.1.1 / 2011-04-06
+==================
+
+ * Fixed should/should_not steps
+ * Added spanish translation
+ * Fixed forms to use element
+ * Fixed small UnsupportedByDriverException issue
+
+0.1.0 / 2011-04-04
+==================
+
+ * Initial release
diff --git a/core/vendor/behat/mink/CONTRIBUTING.md b/core/vendor/behat/mink/CONTRIBUTING.md
new file mode 100644
index 0000000..5db4d85
--- /dev/null
+++ b/core/vendor/behat/mink/CONTRIBUTING.md
@@ -0,0 +1,22 @@
+# Contributing
+Mink is an open source, community-driven project. If you'd like to contribute, feel free to do this, but remember to follow these few simple rules:
+
+## Submitting an issues
+- __Driver-related__ issues must be reported in the corresponding driver repository
+- A reproducible example is required for every bug report, otherwise it will most probably be __closed without warning__
+- If you are going to make a big, substantial change, let's discuss it first
+
+## Working with Pull Requests
+1. Create your feature addition or a bug fix branch based on `master` branch in your repository's fork.
+2. Make necessary changes, but __don't mix__ code reformatting with code changes on topic.
+3. Add tests for those changes (please look into `tests/` folder for some examples). This is important so we don't break it in a future version unintentionally.
+4. Commit your code, but do not mess with `CHANGES.md`.
+5. Squash your commits by topic to preserve a clean and readable log.
+6. Create Pull Request.
+
+# Running tests
+Make sure that you don't break anything with your changes by running:
+
+```bash
+$> phpunit
+```
diff --git a/core/vendor/behat/mink/LICENSE b/core/vendor/behat/mink/LICENSE
new file mode 100644
index 0000000..14f15e8
--- /dev/null
+++ b/core/vendor/behat/mink/LICENSE
@@ -0,0 +1,22 @@
+Copyright (c) 2011-2013 Konstantin Kudryashov
+
+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/core/vendor/behat/mink/README.md b/core/vendor/behat/mink/README.md
new file mode 100644
index 0000000..d87cf3a
--- /dev/null
+++ b/core/vendor/behat/mink/README.md
@@ -0,0 +1,72 @@
+Mink
+====
+[![Latest Stable Version](https://poser.pugx.org/behat/mink/v/stable.svg)](https://packagist.org/packages/behat/mink)
+[![Latest Unstable Version](https://poser.pugx.org/behat/mink/v/unstable.svg)](https://packagist.org/packages/behat/mink)
+[![Total Downloads](https://poser.pugx.org/behat/mink/downloads.svg)](https://packagist.org/packages/behat/mink)
+[![Scrutinizer Quality Score](https://scrutinizer-ci.com/g/Behat/Mink/badges/quality-score.png?s=d4faf469d6b399df121deed6070390800722ada0)](https://scrutinizer-ci.com/g/Behat/Mink/)
+[![Code Coverage](https://scrutinizer-ci.com/g/Behat/Mink/badges/coverage.png?s=88ab1cee4e131f4ef595f17ae4837001ef2aec3b)](https://scrutinizer-ci.com/g/Behat/Mink/)
+[![Build Status](https://travis-ci.org/Behat/Mink.svg?branch=master)](https://travis-ci.org/Behat/Mink)
+[![SensioLabsInsight](https://insight.sensiolabs.com/projects/5bb8fab0-978f-428a-ae23-44ee4e129fbc/mini.png)](https://insight.sensiolabs.com/projects/5bb8fab0-978f-428a-ae23-44ee4e129fbc)
+[![License](https://poser.pugx.org/behat/mink/license.svg)](https://packagist.org/packages/behat/mink)
+
+
+Useful Links
+------------
+
+- The main website with documentation is at [http://mink.behat.org](http://mink.behat.org)
+- Official Google Group is at [http://groups.google.com/group/behat](http://groups.google.com/group/behat)
+- IRC channel on [#freenode](http://freenode.net/) is `#behat`
+- [Note on Patches/Pull Requests](CONTRIBUTING.md)
+
+Usage Example
+-------------
+
+``` php
+ new Session(new GoutteDriver(new GoutteClient())),
+ 'goutte2' => new Session(new GoutteDriver(new GoutteClient())),
+ 'custom' => new Session(new MyCustomDriver($startUrl))
+));
+
+// set the default session name
+$mink->setDefaultSessionName('goutte2');
+
+// visit a page
+$mink->getSession()->visit($startUrl);
+
+// call to getSession() without argument will always return a default session if has one (goutte2 here)
+$mink->getSession()->getPage()->findLink('Downloads')->click();
+echo $mink->getSession()->getPage()->getContent();
+
+// call to getSession() with argument will return session by its name
+$mink->getSession('custom')->getPage()->findLink('Downloads')->click();
+echo $mink->getSession('custom')->getPage()->getContent();
+
+// this all is done to make possible mixing sessions
+$mink->getSession('goutte1')->getPage()->findLink('Chat')->click();
+$mink->getSession('goutte2')->getPage()->findLink('Chat')->click();
+```
+
+Install Dependencies
+--------------------
+
+``` bash
+$> curl -sS https://getcomposer.org/installer | php
+$> php composer.phar install
+```
+
+Contributors
+------------
+
+* Konstantin Kudryashov [everzet](http://github.com/everzet) [lead developer]
+* Other [awesome developers](https://github.com/Behat/Mink/graphs/contributors)
diff --git a/core/vendor/behat/mink/composer.json b/core/vendor/behat/mink/composer.json
new file mode 100644
index 0000000..0aeee7b
--- /dev/null
+++ b/core/vendor/behat/mink/composer.json
@@ -0,0 +1,46 @@
+{
+ "name": "behat/mink",
+ "description": "Web acceptance testing framework for PHP 5.3",
+ "keywords": ["web", "testing", "browser"],
+ "homepage": "http://mink.behat.org/",
+ "type": "library",
+ "license": "MIT",
+
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ }
+ ],
+
+ "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)"
+ },
+
+ "autoload": {
+ "psr-0": {
+ "Behat\\Mink": "src/"
+ }
+ },
+
+ "autoload-dev": {
+ "psr-4": {
+ "Behat\\Mink\\Tests\\": "tests"
+ }
+ },
+
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ }
+}
diff --git a/core/vendor/behat/mink/driver-testsuite/README.md b/core/vendor/behat/mink/driver-testsuite/README.md
new file mode 100644
index 0000000..d21a747
--- /dev/null
+++ b/core/vendor/behat/mink/driver-testsuite/README.md
@@ -0,0 +1,93 @@
+Mink Driver testsuite
+=====================
+
+This is the common testsuite for Mink drivers to ensure consistency among implementations.
+
+Usage
+-----
+
+The testsuite of a driver should be based as follow:
+
+```json
+{
+ "require": {
+ "behat/mink": "~1.6@dev"
+ },
+
+ "autoload-dev": {
+ "psr-4": {
+ "Acme\MyDriver\Tests\\": "tests"
+ }
+ }
+}
+```
+
+```xml
+
+
+
+
+
+
+
+
+
+
+
+
+ ./tests/
+ vendor/behat/mink/driver-testsuite/tests
+
+
+
+
+
+ ./src/Acme/MyDriver
+
+
+
+```
+
+Then create the driver config for the testsuite:
+
+```php
+// tests/Config.php
+
+namespace Acme\MyDriver\Tests;
+
+use Behat\Mink\Tests\Driver\AbstractConfig;
+
+class Config extends AbstractConfig
+{
+ /**
+ * Creates an instance of the config.
+ *
+ * This is the callable registered as a php variable in the phpunit.xml config file.
+ * It could be outside the class but this is convenient.
+ */
+ public static function getInstance()
+ {
+ return new self();
+ }
+
+ /**
+ * Creates driver instance.
+ *
+ * @return \Behat\Mink\Driver\DriverInterface
+ */
+ public function createDriver()
+ {
+ return new \Acme\MyDriver\MyDriver();
+ }
+}
+```
+
+Some other methods are available in the AbstractConfig which can be overwritten to adapt the testsuite to
+the needs of the driver (skipping some tests for instance).
+
+Adding Driver-specific Tests
+----------------------------
+
+When adding extra test cases specific to the driver, either use your own namespace or put them in the
+``Behat\Mink\Tests\Driver\Custom`` subnamespace to ensure that you will not create conflicts with test cases
+added in the driver testsuite in the future.
diff --git a/core/vendor/behat/mink/driver-testsuite/bootstrap.php b/core/vendor/behat/mink/driver-testsuite/bootstrap.php
new file mode 100644
index 0000000..f69a45b
--- /dev/null
+++ b/core/vendor/behat/mink/driver-testsuite/bootstrap.php
@@ -0,0 +1,28 @@
+addPsr4('Behat\Mink\Tests\Driver\\', __DIR__.'/tests');
+
+// Clean the global variables
+unset($file);
+unset($loader);
+
+// Check the definition of the driverLoaderFactory
+
+if (!isset($GLOBALS['driver_config_factory'])) {
+ echo PHP_EOL.'The "driver_config_factory" global variable must be set.'.PHP_EOL;
+ exit(1);
+}
+if (!is_callable($GLOBALS['driver_config_factory'])) {
+ echo PHP_EOL.'The "driver_config_factory" global variable must be a callable.'.PHP_EOL;
+ exit(1);
+}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php b/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php
new file mode 100644
index 0000000..5d02df2
--- /dev/null
+++ b/core/vendor/behat/mink/driver-testsuite/tests/AbstractConfig.php
@@ -0,0 +1,83 @@
+supportsCss() && 0 === strpos($testCase, 'Behat\Mink\Tests\Driver\Css\\')) {
+ return 'This driver does not support CSS.';
+ }
+
+ if (!$this->supportsJs() && 0 === strpos($testCase, 'Behat\Mink\Tests\Driver\Js\\')) {
+ return 'This driver does not support JavaScript.';
+ }
+
+ return null;
+ }
+
+ /**
+ * Whether the JS tests should run or no.
+ *
+ * @return bool
+ */
+ protected function supportsJs()
+ {
+ return true;
+ }
+
+ /**
+ * Whether the CSS tests should run or no.
+ *
+ * @return bool
+ */
+ protected function supportsCss()
+ {
+ return false;
+ }
+}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php
new file mode 100644
index 0000000..40d932d
--- /dev/null
+++ b/core/vendor/behat/mink/driver-testsuite/tests/Basic/BasicAuthTest.php
@@ -0,0 +1,64 @@
+getSession();
+
+ $session->setBasicAuth($user, $pass);
+
+ $session->visit($this->pathTo('/basic_auth.php'));
+
+ $this->assertContains($pageText, $session->getPage()->getContent());
+ }
+
+ public function setBasicAuthDataProvider()
+ {
+ return array(
+ array('mink-user', 'mink-password', 'is authenticated'),
+ array('', '', 'is not authenticated'),
+ );
+ }
+
+ public function testResetBasicAuth()
+ {
+ $session = $this->getSession();
+
+ $session->setBasicAuth('mink-user', 'mink-password');
+
+ $session->visit($this->pathTo('/basic_auth.php'));
+
+ $this->assertContains('is authenticated', $session->getPage()->getContent());
+
+ $session->setBasicAuth(false);
+
+ $session->visit($this->pathTo('/headers.php'));
+
+ $this->assertNotContains('PHP_AUTH_USER', $session->getPage()->getContent());
+ }
+
+ public function testResetWithBasicAuth()
+ {
+ $session = $this->getSession();
+
+ $session->setBasicAuth('mink-user', 'mink-password');
+
+ $session->visit($this->pathTo('/basic_auth.php'));
+
+ $this->assertContains('is authenticated', $session->getPage()->getContent());
+
+ $session->reset();
+
+ $session->visit($this->pathTo('/headers.php'));
+
+ $this->assertNotContains('PHP_AUTH_USER', $session->getPage()->getContent());
+ }
+}
diff --git a/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php b/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php
new file mode 100644
index 0000000..e68e8d0
--- /dev/null
+++ b/core/vendor/behat/mink/driver-testsuite/tests/Basic/ContentTest.php
@@ -0,0 +1,74 @@
+getSession()->visit($this->pathTo('/index.html'));
+
+ $element = $this->getAssertSession()->elementExists('css', '.travers');
+
+ $this->assertEquals(
+ "