diff --git a/.probo.yaml b/.probo.yaml index c5ccc04..ae82595 100644 --- a/.probo.yaml +++ b/.probo.yaml @@ -1,8 +1,9 @@ steps: - - name: Make and install Bear - plugin: Drupal - makeFile: build-bear.make - profileName: bear - runInstall: true + - name: Run the profile script + command: './$SRC_DIR/profile-build.sh' + - name: Run install + command: "drush site-install --root=/var/www/html bear --db-url='mysqli://root:strongpassword@localhost/bear'" + - name: Set file directory permissions + command: 'chown -R www-data:www-data /var/www/html/sites/default/files' - name: Run behat tests command: 'cd /var/www/html/profiles/bear/tests ; composer install ; ./bin/behat --profile probo --tags "~@javascript"' diff --git a/bear.info b/bear.info index 8756e71..8999eda 100644 --- a/bear.info +++ b/bear.info @@ -27,7 +27,6 @@ dependencies[] = asset_document dependencies[] = asset_image dependencies[] = bear_habitat dependencies[] = bear_necessities -dependencies[] = block_class dependencies[] = breadcrumbs_by_path dependencies[] = chosen dependencies[] = coffee @@ -56,7 +55,6 @@ dependencies[] = linkit dependencies[] = menu_block dependencies[] = menu_expanded dependencies[] = module_filter -dependencies[] = multiform dependencies[] = oembed dependencies[] = oembedembedly dependencies[] = page_manager_templates diff --git a/demo b/demo new file mode 100644 index 0000000..e69de29 diff --git a/docs/contrib.md b/docs/contrib.md new file mode 100644 index 0000000..b6d533d --- /dev/null +++ b/docs/contrib.md @@ -0,0 +1,9 @@ +#Bear Contributed Modules +We try to keep the overall size of the bear installation profile as small as possible, but packed with the most amount of features that we use on 90% of our client projects. We have built some additional features and wrote some custom code that doesn't quite get used enough to put into the main bear release. We have moved some of these features and settings to their own bear contributed modules that can be installed on any Drupal website to add these additional features. + +#Projects +- [Bear Hunt](https://www.drupal.org/project/bear_hunt) - Bear Hunt provides a quick and powerful Solr Search API bundle that sets up a Solr Server and a default node index on your Drupal site. + +- [Bear Slideshow](https://www.drupal.org/project/bear_show) - Bear Slideshow is a Features package that provides a responsive Flexslider Views Slideshow out of the box. + +- [Bear Homepage](https://www.drupal.org/project/bear_home) - Bear Homepage is a Features package that provides an exported page manager configuration for an easy to configure custom homepage. \ No newline at end of file diff --git a/docs/features.md b/docs/features.md index 16c3e2b..28ea4a7 100644 --- a/docs/features.md +++ b/docs/features.md @@ -2,6 +2,6 @@ - Pre-configured [CKEditor](https://www.drupal.org/project/responsive_menus) WYSIWYG with file asset management. - Responsive [Bear Skin](https://www.drupal.org/project/bear_skin) theme with [Bear Coat](http://cgit.drupalcode.org/bear_skin/tree/bear_coat) sub-theme. - [Responsive Menus](https://www.drupal.org/project/responsive_menus) with [SIDR](https://github.com/artberri/sidr/releases) support. -- Sticky Footer option available +- Sticky Footer option available. - Site building and developer tools like [Views](https://www.drupal.org/project/views), [Panels](https://www.drupal.org/project/panels), [Features](https://www.drupal.org/project/features), and [Devel](https://www.drupal.org/project/views) out of the box. - See the full list of Contrib Modules that Bear includes in our modules.md file. \ No newline at end of file diff --git a/docs/modules.md b/docs/modules.md index bf56ff1..26b06a7 100644 --- a/docs/modules.md +++ b/docs/modules.md @@ -7,7 +7,6 @@ Bear includes helpful contributed modules for site builders and developers with - advagg - asset - bear_habitat -- block_class - breadcrumbs_by_path - breakpoints - chosen diff --git a/drupal-org.make b/drupal-org.make index 35ea0c9..98156a2 100644 --- a/drupal-org.make +++ b/drupal-org.make @@ -20,7 +20,6 @@ projects[asset][patch][] = "https://www.drupal.org/files/issues/asset-youtube-vi ; @see https://www.drupal.org/node/2612602#comment-10550910 projects[asset][patch][] = https://www.drupal.org/files/issues/2612602-3-asset-inline_entity_form_integration.patch projects[] = bear_habitat -projects[] = block_class projects[] = breadcrumbs_by_path projects[] = breakpoints projects[] = chosen @@ -53,8 +52,7 @@ projects[linkit][version] = "2.x-dev" projects[] = menu_block projects[] = menu_expanded projects[] = module_filter -projects[] = multiform -projects[] = oembed +projects[oembed][version] = "1.x-dev" projects[] = page_manager_templates projects[] = panels projects[panelizer][version] = "3.x-dev" diff --git a/modules/bear_necessities/bear_necessities.default_environment_indicator_environments.inc b/modules/bear_necessities/bear_necessities.default_environment_indicator_environments.inc index b1af881..4a00c97 100644 --- a/modules/bear_necessities/bear_necessities.default_environment_indicator_environments.inc +++ b/modules/bear_necessities/bear_necessities.default_environment_indicator_environments.inc @@ -70,5 +70,20 @@ function bear_necessities_default_environment_indicator_environment() { ); $export['staging_environment'] = $environment; + $environment = new stdClass(); + $environment->disabled = FALSE; /* Edit this to true to make a default environment disabled initially */ + $environment->api_version = 1; + $environment->machine = 'probo_environment'; + $environment->name = 'Probo environment'; + $environment->regexurl = '.*probo.*'; + $environment->settings = array( + 'color' => '#6B044C', + 'text_color' => '#ffffff', + 'weight' => '95', + 'position' => 'top', + 'fixed' => 1, + ); + $export['probo_environment'] = $environment; + return $export; } diff --git a/modules/bear_necessities/bear_necessities.features.ckeditor_profile.inc b/modules/bear_necessities/bear_necessities.features.ckeditor_profile.inc index ae2657a..0763c78 100644 --- a/modules/bear_necessities/bear_necessities.features.ckeditor_profile.inc +++ b/modules/bear_necessities/bear_necessities.features.ckeditor_profile.inc @@ -14,8 +14,8 @@ function bear_necessities_ckeditor_profile_defaults() { 'settings' => array( 'ss' => 2, 'toolbar' => '[ - [\'Bold\',\'Italic\',\'Link\',\'Anchor\'], - [\'Format\',\'RemoveFormat\',\'JustifyLeft\',\'JustifyCenter\',\'JustifyRight\',\'JustifyBlock\',\'NumberedList\',\'BulletedList\',\'Table\'], + [\'Bold\',\'Italic\'], + [\'Format\',\'Scayt\',\'RemoveFormat\',\'JustifyLeft\',\'JustifyCenter\',\'JustifyRight\',\'JustifyBlock\',\'NumberedList\',\'BulletedList\',\'Table\'], [\'Blockquote\',\'PasteFromWord\',\'linkit\',\'asset_document\',\'asset_image\',\'asset_embed\',\'assetSearch\'] ]', 'expand' => 't', @@ -31,7 +31,7 @@ function bear_necessities_ckeditor_profile_defaults() { 'extraAllowedContent' => '', 'enter_mode' => 'br', 'shift_enter_mode' => 'br', - 'font_format' => 'p;div;pre;h2;h3;h4;h5;h6', + 'font_format' => 'p;h2;h3;h4;h5', 'custom_formatting' => 't', 'formatting' => array( 'custom_formatting_options' => array( @@ -58,9 +58,10 @@ function bear_necessities_ckeditor_profile_defaults() { 'html_entities' => 'f', 'scayt_autoStartup' => 't', 'theme_config_js' => 'f', - 'js_conf' => 'config.fillEmptyBlocks = false; -config.tabSpaces = 0; -config.autoParagraph = false;', + 'js_conf' => 'config.fillEmptyBlocks = false; +config.tabSpaces = 0; +config.autoParagraph = false; +config.scayt_autoStartup = true;', 'loadPlugins' => array( 'asset' => array( 'name' => 'asset', @@ -142,21 +143,16 @@ config.autoParagraph = false;', 'settings' => array( 'ss' => 2, 'toolbar' => '[ - [\'Source\'], - [\'Cut\',\'Copy\',\'Paste\',\'PasteText\',\'PasteFromWord\',\'-\',\'SpellChecker\',\'Scayt\'], - [\'Undo\',\'Redo\',\'Find\',\'Replace\',\'-\',\'SelectAll\'], - [\'Image\',\'Flash\',\'Table\',\'HorizontalRule\',\'Smiley\',\'SpecialChar\',\'Iframe\'], - \'/\', [\'Bold\',\'Italic\',\'Underline\',\'Strike\',\'-\',\'Subscript\',\'Superscript\',\'-\',\'RemoveFormat\'], - [\'NumberedList\',\'BulletedList\',\'-\',\'Outdent\',\'Indent\',\'Blockquote\',\'CreateDiv\'], - [\'JustifyLeft\',\'JustifyCenter\',\'JustifyRight\',\'JustifyBlock\',\'-\',\'BidiLtr\',\'BidiRtl\',\'-\',\'Language\'], - [\'Link\',\'Unlink\',\'Anchor\'], + [\'Format\'], + [\'NumberedList\',\'BulletedList\',\'Blockquote\',\'Table\'], + [\'JustifyLeft\',\'JustifyCenter\',\'JustifyRight\'], \'/\', - [\'Format\',\'Font\',\'FontSize\'], - [\'TextColor\',\'BGColor\'], - [\'Maximize\',\'ShowBlocks\'], - [\'DrupalBreak\'], - [\'asset_document\',\'asset_image\',\'asset_embed\',\'assetSearch\'] + [\'PasteText\',\'PasteFromWord\',\'-\',\'Scayt\'], + [\'Undo\',\'Redo\',\'-\',\'SelectAll\'], + [\'Maximize\'], + [\'asset_document\',\'asset_image\',\'asset_embed\',\'assetSearch\'], + [\'Source\'] ]', 'expand' => 't', 'default' => 't', @@ -198,7 +194,8 @@ config.autoParagraph = false;', 'html_entities' => 'f', 'scayt_autoStartup' => 'f', 'theme_config_js' => 'f', - 'js_conf' => '', + 'js_conf' => 'config.allowedContent = true; +config.scayt_autoStartup = true;', 'loadPlugins' => array( 'asset' => array( 'name' => 'asset', diff --git a/modules/bear_necessities/bear_necessities.module b/modules/bear_necessities/bear_necessities.module index ba3c829..69e6237 100644 --- a/modules/bear_necessities/bear_necessities.module +++ b/modules/bear_necessities/bear_necessities.module @@ -17,6 +17,10 @@ function bear_necessities_form_node_type_form_alter(&$form, &$form_state, $form_ // Set publishing options. $form['workflow']['node_options']['#default_value'] = array('status', 'revision'); + // Unset 'promote to frontpage' and 'make sticky' options. + unset($form['workflow']['node_options']['#options']['promote']); + unset($form['workflow']['node_options']['#options']['sticky']); + // Unset display author information. $form['display']['node_submitted']['#default_value'] = FALSE; diff --git a/patches.make b/patches.make index ac9fa4d..fd866b9 100644 --- a/patches.make +++ b/patches.make @@ -1,24 +1,31 @@ ; This patches.make file is used by https://bitbucket.org/davereid/drush-patchfile ; Our project contains patches for both Drupal core and contrib modules/themes. +; When a page has multilple URL aliases, treat one as canonical. ; @see https://www.drupal.org/node/1934086#comment-7137850 projects[drupal][patch][] = "http://drupal.org/files/drupal-1934086-path_load_order-1.patch" +; When a page has multiple menu items, treat one as canonical. ; @see https://www.drupal.org/node/1875824#comment-7420862 projects[drupal][patch][] = "http://drupal.org/files/core-1875824-3-d7.patch" +; Prevent AJAX errors on autocompletes. ; @see https://www.drupal.org/node/1232416#comment-8262487 projects[drupal][patch][] = "http://drupal.org/files/issues/fix_for_autocomplete_terminated_error-1232416-156.patch" +; Fix a PHP notice relating to file uploads. ; @see https://www.drupal.org/node/1903010#comment-8415695 projects[drupal][patch][] = "http://drupal.org/files/issues/drupal-undefinedindex_fileupload-1903010-4.patch" +; When configuring fields with a cardinality > 1, provide an option to not use drag and drop tables. ; @see https://www.drupal.org/node/2264739 projects[drupal][patch][] = "http://drupal.org/files/issues/death-to-tabledrag.patch" +; Allow schema-relative URLs. ; @see https://www.drupal.org/node/1783278#comment-9735933 projects[drupal][patch][] = "https://www.drupal.org/files/issues/schema-relative-1783278-17-D7-do-not-test.patch" - + +; Prevent alter hooks from making Features appear as overridden. ; @see https://www.drupal.org/node/766264#comment-8818877 projects[features][patch][] = "http://www.drupal.org/files/issues/alter_overrides-766264-45.patch" diff --git a/profile-build.sh b/profile-build.sh new file mode 100755 index 0000000..009aba5 --- /dev/null +++ b/profile-build.sh @@ -0,0 +1,41 @@ +#!/bin/bash + +PROFILE_NAME='bear' +MAKE_FILE='' +SRC_DIR='/src' +DESTINATION='/var/www/html' + +function checkMakeFile() { + # Matches the following: + # projects[bear] + # projects[] = 'bear' + # projects[] = "bear" + # projects[] = bear + # projects[]=bear + if grep "\[$PROFILE_NAME\]" $1 > /dev/null || grep "['\"]\?$PROFILE_NAME['\"]\?$" $1 > /dev/null; then + echo 'Error: Project should not be listed in make file.' >&2 + exit 1 + fi + return +} + +if [ "$SRC_DIR/$MAKE_FILE" != '' ] && [ -f "$SRC_DIR/$MAKE_FILE" ]; then + checkMakeFile "$SRC_DIR/$MAKE_FILE" + + drush make "$SRC_DIR/$MAKE_FILE" $DESTINATION +elif [ -f "$SRC_DIR/drupal-org-core.make" ] && [ -f "$SRC_DIR/drupal-org.make" ]; then + checkMakeFile "$SRC_DIR/drupal-org-core.make" + checkMakeFile "$SRC_DIR/drupal-org.make" + + drush make "$SRC_DIR/drupal-org-core.make" $DESTINATION + cd $SRC_DIR + drush make "drupal-org.make" --contrib-destination=. --no-core . -y + cd - +fi + +if [ ! -d "$DESTINATION/profiles/$PROFILE_NAME" ]; then + cp -r $SRC_DIR "$DESTINATION/profiles/$PROFILE_NAME" +else + echo 'Error: Unable to copy profile to destination because it already exists.' >&2 + exit 1 +fi diff --git a/tests/README.txt b/tests/README.txt index b593f3d..2ce6a86 100644 --- a/tests/README.txt +++ b/tests/README.txt @@ -1,26 +1,28 @@ -To set up test framework, run composer install in this directory. +To Run Behat Tests in your VM: +------------------------------ +Follow these steps first to set up behat on your VM. -After the installer runs, add your site to your machine's hosts file so the tests will be able to interact with the site. +1. To set up test framework, in this directory run: composer install -Edit behat.yml to set the base_url and webroot properly. +2. If you are runnning this on a virtual machine, add your local site to your vm's hosts file so the tests will be able to interact with the site. Verify that your machine can resolve the domain by pinging it. -If you do not have Selenium setup, you can only run tests with Goutte, which means tests will not use Javascript. -To run only tests that don't require Javascript, use: - bin/behat --tags "~@javascript" +3. Edit behat.yml to set the base_url and webroot properly. + +4. If you do not have Selenium setup, you can only run tests with Goutte, which means tests will not use Javascript. To run only tests that don't require Javascript, use: bin/behat --tags "~@javascript" The tests must be run from the machine hosting the site. -To run tests with Selenium (tests with '@javascript' tag): - wget http://selenium.googlecode.com/files/selenium-server-standalone-2.44.0.jar - [May need to visit the website to determine the latest Selenium version] - sudo apt-get install xvfb - We need an older version of firefox, but we also need dependencies, so first: sudo apt-get install firefox - Then remove it (the dependencies will stay though): sudo apt-get remove firefox - Now get the older version: - wget https://ftp.mozilla.org/pub/mozilla.org/firefox/releases/31.0/linux-i686/en-US/firefox-31.0.tar.bz2 - tar xvf firefox-31.0.tar.bz2 - Move the extracted firefox directory: mv firefox/ /opt/ - sudo ln -s /opt/firefox/firefox /usr/bin/firefox - xvfb-run firefox to test that firefox works. You may get an error: Xlib: extension "RANDR" missing on display ":99". That's safe to ignore. - xvfb-run java -jar selenium-server-standalone-2.45.0.jar - Run behat tests in another terminal window + +To Run Javascript Tests: +------------------------ +To run tests with Selenium (tests with '@javascript' tag). + +1. Go to http://docs.seleniumhq.org/download/ and download the latest Selenium Standalone Server (currently ver. 2.48.2) + +2. To install the X virtual framebuffer, run: sudo apt-get install xvfb + +3. To install latest version of Firefox, run: sudo apt-get install firefox + +4. Run the Selenium .jar file: xvfb-run java -jar selenium-server-standalone-2.48.2.jar + +You will need to keep this window open when running javascript tests, so run the behat tests in a new tab. Make sure to stop running the file and close the tab when you are done. diff --git a/tests/behat.yml b/tests/behat.yml index c3dd2b8..d727c2b 100644 --- a/tests/behat.yml +++ b/tests/behat.yml @@ -1,35 +1,39 @@ default: - #suites: - # default: - # contexts: - # - FeatureContext - # - Drupal\DrupalExtension\Context\DrupalContext - # - Drupal\DrupalExtension\Context\MinkContext + suites: + default: + contexts: + - FeatureContext + - Drupal\DrupalExtension\Context\DrupalContext + - Drupal\DrupalExtension\Context\MinkContext + - Drupal\DrupalExtension\Context\MessageContext + - Drupal\DrupalExtension\Context\DrushContext extensions: - Behat\MinkExtension\Extension: + Behat\MinkExtension: goutte: ~ selenium2: ~ - base_url: http://bear_updates.local - Drupal\DrupalExtension\Extension: + base_url: http://beartests.local + Drupal\DrupalExtension: blackbox: ~ api_driver: 'drupal' drush: alias: 'local' drupal: - drupal_root: '/var/www/bear_updates/webroot' + drupal_root: '/var/www/beartests/webroot' probo: - #suites: - # default: - # contexts: - # - FeatureContext - # - Drupal\DrupalExtension\Context\DrupalContext - # - Drupal\DrupalExtension\Context\MinkContext + suites: + default: + contexts: + - FeatureContext + - Drupal\DrupalExtension\Context\DrupalContext + - Drupal\DrupalExtension\Context\MinkContext + - Drupal\DrupalExtension\Context\MessageContext + - Drupal\DrupalExtension\Context\DrushContext extensions: - Behat\MinkExtension\Extension: + Behat\MinkExtension: goutte: ~ selenium2: ~ base_url: http://localhost - Drupal\DrupalExtension\Extension: + Drupal\DrupalExtension: blackbox: ~ api_driver: 'drupal' drush: diff --git a/tests/composer.json b/tests/composer.json index 968f720..8c69de8 100644 --- a/tests/composer.json +++ b/tests/composer.json @@ -1,18 +1,6 @@ { "require": { - "drupal/drupal-extension": "1.0.2", - - "symfony/css-selector": "2.4.2", - "symfony/finder": "2.4.2", - "symfony/yaml": "2.4.2", - "symfony/translation": "2.4.2", - "symfony/event-dispatcher": "2.4.2", - "symfony/filesystem": "2.4.2", - "symfony/config": "2.4.2", - "symfony/console": "2.4.2", - "symfony/process": "2.4.2", - "symfony/dom-crawler": "2.4.2", - "symfony/browser-kit": "2.4.2" + "drupal/drupal-extension": "~3.0" }, "config": { "bin-dir": "bin/" diff --git a/tests/composer.lock b/tests/composer.lock index 8a85eab..3a550e2 100644 --- a/tests/composer.lock +++ b/tests/composer.lock @@ -1,38 +1,43 @@ { "_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", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "fa621d38477adbf2f5eae114614a703e", + "hash": "f83d8e314f187d07445b9199d563adc1", + "content-hash": "44e5da7b296c0097945e907dccf96387", "packages": [ { "name": "behat/behat", - "version": "v2.5.4", + "version": "v3.0.15", "source": { "type": "git", "url": "https://github.com/Behat/Behat.git", - "reference": "ba257dd19d47b6e196c4e43995a2d2db4dd95991" + "reference": "b35ae3d45332d80c532af69cc36f780a9397a996" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Behat/zipball/ba257dd19d47b6e196c4e43995a2d2db4dd95991", - "reference": "ba257dd19d47b6e196c4e43995a2d2db4dd95991", + "url": "https://api.github.com/repos/Behat/Behat/zipball/b35ae3d45332d80c532af69cc36f780a9397a996", + "reference": "b35ae3d45332d80c532af69cc36f780a9397a996", "shasum": "" }, "require": { - "behat/gherkin": "~2.3.0", - "php": ">=5.3.1", - "symfony/config": "~2.0", - "symfony/console": "~2.0", - "symfony/dependency-injection": "~2.0", - "symfony/event-dispatcher": "~2.0", - "symfony/finder": "~2.0", - "symfony/translation": "~2.0", - "symfony/yaml": "~2.0" + "behat/gherkin": "~4.3", + "behat/transliterator": "~1.0", + "ext-mbstring": "*", + "php": ">=5.3.3", + "symfony/class-loader": "~2.1", + "symfony/config": "~2.3", + "symfony/console": "~2.1", + "symfony/dependency-injection": "~2.1", + "symfony/event-dispatcher": "~2.1", + "symfony/translation": "~2.3", + "symfony/yaml": "~2.1" }, "require-dev": { - "phpunit/phpunit": "~3.7.19" + "phpspec/prophecy-phpunit": "~1.0", + "phpunit/phpunit": "~4.0", + "symfony/process": "~2.1" }, "suggest": { "behat/mink-extension": "for integration with Mink testing framework", @@ -43,9 +48,15 @@ "bin/behat" ], "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" + } + }, "autoload": { "psr-0": { - "Behat\\Behat": "src/" + "Behat\\Behat": "src/", + "Behat\\Testwork": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -62,44 +73,49 @@ "description": "Scenario-oriented BDD framework for PHP 5.3", "homepage": "http://behat.org/", "keywords": [ + "Agile", "BDD", - "Behat", - "Symfony2" + "ScenarioBDD", + "Scrum", + "StoryBDD", + "User story", + "business", + "development", + "documentation", + "examples", + "symfony", + "testing" ], - "time": "2015-01-23 22:18:15" + "time": "2015-02-22 14:10:33" }, { "name": "behat/gherkin", - "version": "v2.3.5", + "version": "v4.4.1", "source": { "type": "git", "url": "https://github.com/Behat/Gherkin.git", - "reference": "2b33963da5525400573560c173ab5c9c057e1852" + "reference": "1576b485c0f92ef6d27da9c4bbfc57ee30cf6911" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2b33963da5525400573560c173ab5c9c057e1852", - "reference": "2b33963da5525400573560c173ab5c9c057e1852", + "url": "https://api.github.com/repos/Behat/Gherkin/zipball/1576b485c0f92ef6d27da9c4bbfc57ee30cf6911", + "reference": "1576b485c0f92ef6d27da9c4bbfc57ee30cf6911", "shasum": "" }, "require": { - "php": ">=5.3.1", - "symfony/finder": "~2.0" + "php": ">=5.3.1" }, "require-dev": { - "symfony/config": "~2.0", - "symfony/translation": "~2.0", - "symfony/yaml": "~2.0" + "phpunit/phpunit": "~4.0", + "symfony/yaml": "~2.1" }, "suggest": { - "symfony/config": "If you want to use Config component to manage resources", - "symfony/translation": "If you want to use Symfony2 translations adapter", "symfony/yaml": "If you want to parse features, represented in YAML files" }, "type": "library", "extra": { "branch-alias": { - "dev-develop": "2.2-dev" + "dev-master": "4.4-dev" } }, "autoload": { @@ -123,29 +139,33 @@ "keywords": [ "BDD", "Behat", + "Cucumber", "DSL", - "Symfony2", + "gherkin", "parser" ], - "time": "2013-10-15 11:22:17" + "time": "2015-12-30 14:47:00" }, { "name": "behat/mink", - "version": "v1.5.0", + "version": "v1.7.0", "source": { "type": "git", "url": "https://github.com/minkphp/Mink.git", - "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe" + "reference": "6c129030ec2cc029905cf969a56ca8f087b2dfdf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/Mink/zipball/0769e6d9726c140a54dbf827a438c0f9912749fe", - "reference": "0769e6d9726c140a54dbf827a438c0f9912749fe", + "url": "https://api.github.com/repos/minkphp/Mink/zipball/6c129030ec2cc029905cf969a56ca8f087b2dfdf", + "reference": "6c129030ec2cc029905cf969a56ca8f087b2dfdf", "shasum": "" }, "require": { "php": ">=5.3.1", - "symfony/css-selector": "~2.0" + "symfony/css-selector": "~2.1" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" }, "suggest": { "behat/mink-browserkit-driver": "extremely fast headless driver for Symfony\\Kernel-based apps (Sf2, Silex)", @@ -156,12 +176,12 @@ "type": "library", "extra": { "branch-alias": { - "dev-develop": "1.5.x-dev" + "dev-master": "1.7.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Mink": "src/" + "psr-4": { + "Behat\\Mink\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -175,47 +195,48 @@ "homepage": "http://everzet.com" } ], - "description": "Web acceptance testing framework for PHP 5.3", + "description": "Browser controller/emulator abstraction for PHP", "homepage": "http://mink.behat.org/", "keywords": [ "browser", "testing", "web" ], - "time": "2013-04-13 23:39:27" + "time": "2015-09-20 20:24:03" }, { "name": "behat/mink-browserkit-driver", - "version": "v1.1.0", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/minkphp/MinkBrowserKitDriver.git", - "reference": "63960c8fcad4529faad1ff33e950217980baa64c" + "reference": "da47df1593dac132f04d24e7277ef40d33d9f201" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/63960c8fcad4529faad1ff33e950217980baa64c", - "reference": "63960c8fcad4529faad1ff33e950217980baa64c", + "url": "https://api.github.com/repos/minkphp/MinkBrowserKitDriver/zipball/da47df1593dac132f04d24e7277ef40d33d9f201", + "reference": "da47df1593dac132f04d24e7277ef40d33d9f201", "shasum": "" }, "require": { - "behat/mink": "~1.5.0", - "php": ">=5.3.1", - "symfony/browser-kit": "~2.0", - "symfony/dom-crawler": "~2.0" + "behat/mink": "~1.7@dev", + "php": ">=5.3.6", + "symfony/browser-kit": "~2.3", + "symfony/dom-crawler": "~2.3" }, "require-dev": { - "silex/silex": "@dev" + "silex/silex": "~1.2", + "symfony/phpunit-bridge": "~2.7" }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Mink\\Driver": "src/" + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -237,33 +258,38 @@ "browser", "testing" ], - "time": "2013-04-13 23:46:30" + "time": "2015-09-21 20:56:13" }, { "name": "behat/mink-extension", - "version": "v1.3.3", + "version": "v2.1.0", "source": { "type": "git", "url": "https://github.com/Behat/MinkExtension.git", - "reference": "b885b9407cba50a954f72c69ed1b2f8d3bc694f8" + "reference": "06e2b99d92e175719d7e841d5be16b7df1a233c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/b885b9407cba50a954f72c69ed1b2f8d3bc694f8", - "reference": "b885b9407cba50a954f72c69ed1b2f8d3bc694f8", + "url": "https://api.github.com/repos/Behat/MinkExtension/zipball/06e2b99d92e175719d7e841d5be16b7df1a233c5", + "reference": "06e2b99d92e175719d7e841d5be16b7df1a233c5", "shasum": "" }, "require": { - "behat/behat": "~2.5.0", + "behat/behat": "~3.0,>=3.0.5", "behat/mink": "~1.5", "php": ">=5.3.2", "symfony/config": "~2.2" }, "require-dev": { - "behat/mink-goutte-driver": "~1.0", - "fabpot/goutte": "~1.0" + "behat/mink-goutte-driver": "~1.1", + "phpspec/phpspec": "~2.0" }, "type": "behat-extension", + "extra": { + "branch-alias": { + "dev-master": "2.1.x-dev" + } + }, "autoload": { "psr-0": { "Behat\\MinkExtension": "src/" @@ -274,50 +300,57 @@ "MIT" ], "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + }, { "name": "Konstantin Kudryashov", - "email": "ever.zet@gmail.com", - "homepage": "http://everzet.com" + "email": "ever.zet@gmail.com" } ], "description": "Mink extension for Behat", - "homepage": "http://mink.behat.org", + "homepage": "http://extensions.behat.org/mink", "keywords": [ "browser", "gui", "test", "web" ], - "time": "2014-05-15 19:27:39" + "time": "2015-09-29 17:42:41" }, { "name": "behat/mink-goutte-driver", - "version": "v1.0.9", + "version": "v1.2.0", "source": { "type": "git", "url": "https://github.com/minkphp/MinkGoutteDriver.git", - "reference": "fa1b073b48761464feb0b05e6825da44b20118d8" + "reference": "c8e254f127d6f2242b994afd4339fb62d471df3f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/fa1b073b48761464feb0b05e6825da44b20118d8", - "reference": "fa1b073b48761464feb0b05e6825da44b20118d8", + "url": "https://api.github.com/repos/minkphp/MinkGoutteDriver/zipball/c8e254f127d6f2242b994afd4339fb62d471df3f", + "reference": "c8e254f127d6f2242b994afd4339fb62d471df3f", "shasum": "" }, "require": { - "behat/mink-browserkit-driver": ">=1.0.5,<1.2.0", - "fabpot/goutte": "~1.0.1", + "behat/mink": "~1.6@dev", + "behat/mink-browserkit-driver": "~1.2@dev", + "fabpot/goutte": "~1.0.4|~2.0|~3.1", "php": ">=5.3.1" }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Mink\\Driver": "src/" + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -339,36 +372,39 @@ "headless", "testing" ], - "time": "2013-07-03 18:43:54" + "time": "2015-09-21 21:31:11" }, { "name": "behat/mink-selenium2-driver", - "version": "v1.1.1", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/minkphp/MinkSelenium2Driver.git", - "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476" + "reference": "bedbf1999c7ba1bc6921b30ee2eadf383e7ff5c9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/bcf1b537de37db6db0822d9e7bd97e600fd7a476", - "reference": "bcf1b537de37db6db0822d9e7bd97e600fd7a476", + "url": "https://api.github.com/repos/minkphp/MinkSelenium2Driver/zipball/bedbf1999c7ba1bc6921b30ee2eadf383e7ff5c9", + "reference": "bedbf1999c7ba1bc6921b30ee2eadf383e7ff5c9", "shasum": "" }, "require": { - "behat/mink": "~1.5.0", - "instaclick/php-webdriver": "~1.0.12", + "behat/mink": "~1.7@dev", + "instaclick/php-webdriver": "~1.1", "php": ">=5.3.1" }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, "type": "mink-driver", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { - "psr-0": { - "Behat\\Mink\\Driver": "src/" + "psr-4": { + "Behat\\Mink\\Driver\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -397,34 +433,78 @@ "testing", "webdriver" ], - "time": "2013-06-02 19:09:45" + "time": "2015-09-21 21:02:54" }, { - "name": "drupal/drupal-extension", - "version": "v1.0.2", + "name": "behat/transliterator", + "version": "v1.1.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Transliterator.git", + "reference": "868e05be3a9f25ba6424c2dd4849567f50715003" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/868e05be3a9f25ba6424c2dd4849567f50715003", + "reference": "868e05be3a9f25ba6424c2dd4849567f50715003", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.1-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Transliterator": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Artistic-1.0" + ], + "description": "String transliterator", + "keywords": [ + "i18n", + "slug", + "transliterator" + ], + "time": "2015-09-28 16:26:35" + }, + { + "name": "drupal/drupal-driver", + "version": "v1.1.5", "source": { "type": "git", - "url": "http://git.drupal.org/project/drupalextension.git", - "reference": "fad51a12a90f5b7db0cab9f972e8415113bf0222" + "url": "https://github.com/jhedstrom/DrupalDriver.git", + "reference": "6c5e04c6a310316bcefc4588bb1c0765b6bad478" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/jhedstrom/DrupalDriver/zipball/6c5e04c6a310316bcefc4588bb1c0765b6bad478", + "reference": "6c5e04c6a310316bcefc4588bb1c0765b6bad478", + "shasum": "" }, "require": { - "behat/behat": "2.5.*@stable", - "behat/mink": "1.5.*@stable", - "behat/mink-extension": "*", - "behat/mink-goutte-driver": "*", - "behat/mink-selenium2-driver": "*" + "symfony/dependency-injection": "~2.6|~3.0", + "symfony/process": "~2.5|~3.0" }, "require-dev": { - "phpunit/phpunit": "3.7.*" + "drupal/coder": "~8.2.0", + "mockery/mockery": "0.9.4", + "phpspec/phpspec": "~2.0", + "phpunit/phpunit": "~4.0" }, - "type": "behat-extension", + "type": "library", "autoload": { "psr-0": { "Drupal\\Component": "src/", "Drupal\\Driver": "src/", - "Drupal\\Drupal": "src/", - "Drupal\\Exception": "src/", - "Drupal\\DrupalExtension": "src/" + "Drupal\\Tests\\Driver": "tests/" } }, "notification-url": "https://packagist.org/downloads/", @@ -434,153 +514,157 @@ "authors": [ { "name": "Jonathan Hedstrom", - "email": "jhedstrom@gmail.com", - "homepage": "http://professorbikeybike.com" + "email": "jhedstrom@gmail.com" } ], - "description": "Drupal extension for Behat", - "homepage": "http://drupal.org/project/drupalextension", + "description": "A collection of reusable Drupal drivers", + "homepage": "http://github.com/jhedstrom/DrupalDriver", "keywords": [ "drupal", "test", "web" ], - "time": "2014-06-21 00:03:48" + "time": "2015-12-14 18:30:01" }, { - "name": "fabpot/goutte", - "version": "v1.0.7", + "name": "drupal/drupal-extension", + "version": "v3.1.5", "source": { "type": "git", - "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625" + "url": "https://github.com/jhedstrom/drupalextension.git", + "reference": "6bfff4967d0efacff51e2ff51a306021012396d8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/794b196e76bdd37b5155cdecbad311f0a3b07625", - "reference": "794b196e76bdd37b5155cdecbad311f0a3b07625", + "url": "https://api.github.com/repos/jhedstrom/drupalextension/zipball/6bfff4967d0efacff51e2ff51a306021012396d8", + "reference": "6bfff4967d0efacff51e2ff51a306021012396d8", "shasum": "" }, "require": { - "ext-curl": "*", - "guzzle/http": "~3.1", - "php": ">=5.3.0", - "symfony/browser-kit": "~2.1", - "symfony/css-selector": "~2.1", - "symfony/dom-crawler": "~2.1", - "symfony/finder": "~2.1", - "symfony/process": "~2.1" + "behat/behat": "~3.0,>=3.0.5", + "behat/mink": "~1.5", + "behat/mink-extension": "~2.0", + "behat/mink-goutte-driver": "~1.0", + "behat/mink-selenium2-driver": "~1.1", + "drupal/drupal-driver": "~1.1" }, "require-dev": { - "guzzle/plugin-history": "~3.1", - "guzzle/plugin-mock": "~3.1" - }, - "type": "application", - "extra": { - "branch-alias": { - "dev-master": "1.0-dev" - } + "behat/mink-zombie-driver": "^1.2", + "phpspec/phpspec": "~2.0", + "phpunit/phpunit": "3.7.*" }, + "type": "behat-extension", "autoload": { "psr-0": { - "Goutte": "." + "Drupal\\Drupal": "src/", + "Drupal\\Exception": "src/", + "Drupal\\DrupalExtension": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" + "GPL-2.0+" ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" + "name": "Jonathan Hedstrom", + "email": "jhedstrom@gmail.com" } ], - "description": "A simple PHP Web Scraper", - "homepage": "https://github.com/fabpot/Goutte", + "description": "Drupal extension for Behat", + "homepage": "http://drupal.org/project/drupalextension", "keywords": [ - "scraper" + "drupal", + "test", + "web" ], - "time": "2014-10-09 15:52:51" + "time": "2015-12-22 20:10:14" }, { - "name": "guzzle/common", - "version": "v3.9.2", - "target-dir": "Guzzle/Common", + "name": "fabpot/goutte", + "version": "v3.1.2", "source": { "type": "git", - "url": "https://github.com/Guzzle3/common.git", - "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc" + "url": "https://github.com/FriendsOfPHP/Goutte.git", + "reference": "3cbc6ed222422a28400e470050f14928a153207e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Guzzle3/common/zipball/2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc", - "reference": "2e36af7cf2ce3ea1f2d7c2831843b883a8e7b7dc", + "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/3cbc6ed222422a28400e470050f14928a153207e", + "reference": "3cbc6ed222422a28400e470050f14928a153207e", "shasum": "" }, "require": { - "php": ">=5.3.2", - "symfony/event-dispatcher": ">=2.1" + "guzzlehttp/guzzle": "^6.0", + "php": ">=5.5.0", + "symfony/browser-kit": "~2.1|~3.0", + "symfony/css-selector": "~2.1|~3.0", + "symfony/dom-crawler": "~2.1|~3.0" }, - "type": "library", + "type": "application", "extra": { "branch-alias": { - "dev-master": "3.7-dev" + "dev-master": "3.1-dev" } }, "autoload": { - "psr-0": { - "Guzzle\\Common": "" + "psr-4": { + "Goutte\\": "Goutte" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Common libraries used by Guzzle", - "homepage": "http://guzzlephp.org/", + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + } + ], + "description": "A simple PHP Web Scraper", + "homepage": "https://github.com/FriendsOfPHP/Goutte", "keywords": [ - "collection", - "common", - "event", - "exception" + "scraper" ], - "abandoned": "guzzle/guzzle", - "time": "2014-08-11 04:32:36" + "time": "2015-11-05 12:58:44" }, { - "name": "guzzle/http", - "version": "v3.9.2", - "target-dir": "Guzzle/Http", + "name": "guzzlehttp/guzzle", + "version": "6.1.1", "source": { "type": "git", - "url": "https://github.com/Guzzle3/http.git", - "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5" + "url": "https://github.com/guzzle/guzzle.git", + "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Guzzle3/http/zipball/1e8dd1e2ba9dc42332396f39fbfab950b2301dc5", - "reference": "1e8dd1e2ba9dc42332396f39fbfab950b2301dc5", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/c6851d6e48f63b69357cbfa55bca116448140e0c", + "reference": "c6851d6e48f63b69357cbfa55bca116448140e0c", "shasum": "" }, "require": { - "guzzle/common": "self.version", - "guzzle/parser": "self.version", - "guzzle/stream": "self.version", - "php": ">=5.3.2" + "guzzlehttp/promises": "~1.0", + "guzzlehttp/psr7": "~1.1", + "php": ">=5.5.0" }, - "suggest": { - "ext-curl": "*" + "require-dev": { + "ext-curl": "*", + "phpunit/phpunit": "~4.0", + "psr/log": "~1.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.7-dev" + "dev-master": "6.1-dev" } }, "autoload": { - "psr-0": { - "Guzzle\\Http": "" + "files": [ + "src/functions_include.php" + ], + "psr-4": { + "GuzzleHttp\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -594,95 +678,107 @@ "homepage": "https://github.com/mtdowling" } ], - "description": "HTTP libraries used by Guzzle", + "description": "Guzzle is a PHP HTTP client library", "homepage": "http://guzzlephp.org/", "keywords": [ - "Guzzle", "client", "curl", + "framework", "http", - "http client" + "http client", + "rest", + "web service" ], - "abandoned": "guzzle/guzzle", - "time": "2014-08-11 04:32:36" + "time": "2015-11-23 00:47:50" }, { - "name": "guzzle/parser", - "version": "v3.9.2", - "target-dir": "Guzzle/Parser", + "name": "guzzlehttp/promises", + "version": "1.0.3", "source": { "type": "git", - "url": "https://github.com/Guzzle3/parser.git", - "reference": "6874d171318a8e93eb6d224cf85e4678490b625c" + "url": "https://github.com/guzzle/promises.git", + "reference": "b1e1c0d55f8083c71eda2c28c12a228d708294ea" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Guzzle3/parser/zipball/6874d171318a8e93eb6d224cf85e4678490b625c", - "reference": "6874d171318a8e93eb6d224cf85e4678490b625c", + "url": "https://api.github.com/repos/guzzle/promises/zipball/b1e1c0d55f8083c71eda2c28c12a228d708294ea", + "reference": "b1e1c0d55f8083c71eda2c28c12a228d708294ea", "shasum": "" }, "require": { - "php": ">=5.3.2" + "php": ">=5.5.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.7-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-0": { - "Guzzle\\Parser": "" - } + "psr-4": { + "GuzzleHttp\\Promise\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], - "description": "Interchangeable parsers used by Guzzle", - "homepage": "http://guzzlephp.org/", + "authors": [ + { + "name": "Michael Dowling", + "email": "mtdowling@gmail.com", + "homepage": "https://github.com/mtdowling" + } + ], + "description": "Guzzle promises library", "keywords": [ - "URI Template", - "cookie", - "http", - "message", - "url" + "promise" ], - "abandoned": "guzzle/guzzle", - "time": "2014-02-05 18:29:46" + "time": "2015-10-15 22:28:00" }, { - "name": "guzzle/stream", - "version": "v3.9.2", - "target-dir": "Guzzle/Stream", + "name": "guzzlehttp/psr7", + "version": "1.2.1", "source": { "type": "git", - "url": "https://github.com/Guzzle3/stream.git", - "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0" + "url": "https://github.com/guzzle/psr7.git", + "reference": "4d0bdbe1206df7440219ce14c972aa57cc5e4982" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Guzzle3/stream/zipball/60c7fed02e98d2c518dae8f97874c8f4622100f0", - "reference": "60c7fed02e98d2c518dae8f97874c8f4622100f0", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/4d0bdbe1206df7440219ce14c972aa57cc5e4982", + "reference": "4d0bdbe1206df7440219ce14c972aa57cc5e4982", "shasum": "" }, "require": { - "guzzle/common": "self.version", - "php": ">=5.3.2" + "php": ">=5.4.0", + "psr/http-message": "~1.0" }, - "suggest": { - "guzzle/http": "To convert Guzzle request objects to PHP streams" + "provide": { + "psr/http-message-implementation": "1.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "3.7-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-0": { - "Guzzle\\Stream": "" - } + "psr-4": { + "GuzzleHttp\\Psr7\\": "src/" + }, + "files": [ + "src/functions_include.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -695,41 +791,40 @@ "homepage": "https://github.com/mtdowling" } ], - "description": "Guzzle stream wrapper component", - "homepage": "http://guzzlephp.org/", + "description": "PSR-7 message implementation", "keywords": [ - "Guzzle", - "component", - "stream" + "http", + "message", + "stream", + "uri" ], - "abandoned": "guzzle/guzzle", - "time": "2014-05-01 21:36:02" + "time": "2015-11-03 01:34:55" }, { "name": "instaclick/php-webdriver", - "version": "1.0.17", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/instaclick/php-webdriver.git", - "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5" + "reference": "0c20707dcf30a32728fd6bdeeab996c887fdb2fb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/47a6019553a7a5b42d35493276ffc2c9252c53d5", - "reference": "47a6019553a7a5b42d35493276ffc2c9252c53d5", + "url": "https://api.github.com/repos/instaclick/php-webdriver/zipball/0c20707dcf30a32728fd6bdeeab996c887fdb2fb", + "reference": "0c20707dcf30a32728fd6bdeeab996c887fdb2fb", "shasum": "" }, "require": { "ext-curl": "*", "php": ">=5.3.2" }, - "bin": [ - "bin/webunit" - ], + "require-dev": { + "satooshi/php-coveralls": "dev-master" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { @@ -750,7 +845,7 @@ { "name": "Anthon Pang", "email": "apang@softwaredevelopment.ca", - "role": "developer" + "role": "Fork Maintainer" } ], "description": "PHP WebDriver for Selenium 2", @@ -761,30 +856,78 @@ "webdriver", "webtest" ], - "time": "2013-10-04 15:03:51" + "time": "2015-06-15 20:19:33" + }, + { + "name": "psr/http-message", + "version": "1.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/http-message.git", + "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/http-message/zipball/85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "reference": "85d63699f0dbedb190bbd4b0d2b9dc707ea4c298", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Psr\\Http\\Message\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for HTTP messages", + "keywords": [ + "http", + "http-message", + "psr", + "psr-7", + "request", + "response" + ], + "time": "2015-05-04 20:22:00" }, { "name": "symfony/browser-kit", - "version": "v2.4.2", - "target-dir": "Symfony/Component/BrowserKit", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/BrowserKit.git", - "reference": "3898f9f9aafc853124c90a9d1a4f98c1034e627e" + "url": "https://github.com/symfony/browser-kit.git", + "reference": "dd2cfb20fabd4efca14cf3b2345d40b3dd5e9aca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/BrowserKit/zipball/3898f9f9aafc853124c90a9d1a4f98c1034e627e", - "reference": "3898f9f9aafc853124c90a9d1a4f98c1034e627e", + "url": "https://api.github.com/repos/symfony/browser-kit/zipball/dd2cfb20fabd4efca14cf3b2345d40b3dd5e9aca", + "reference": "dd2cfb20fabd4efca14cf3b2345d40b3dd5e9aca", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/dom-crawler": "~2.0" + "php": ">=5.3.9", + "symfony/dom-crawler": "~2.0,>=2.0.5|~3.0.0" }, "require-dev": { - "symfony/css-selector": "~2.0", - "symfony/process": "~2.0" + "symfony/css-selector": "~2.0,>=2.0.5|~3.0.0", + "symfony/process": "~2.3.34|~2.7,>=2.7.6|~3.0.0" }, "suggest": { "symfony/process": "" @@ -792,13 +935,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\BrowserKit\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -807,48 +953,100 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony BrowserKit Component", - "homepage": "http://symfony.com", - "time": "2014-01-24 14:36:08" + "homepage": "https://symfony.com", + "time": "2015-12-26 13:37:56" + }, + { + "name": "symfony/class-loader", + "version": "v2.8.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/class-loader.git", + "reference": "ec74b0a279cf3a9bd36172b3e3061591d380ce6c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/class-loader/zipball/ec74b0a279cf3a9bd36172b3e3061591d380ce6c", + "reference": "ec74b0a279cf3a9bd36172b3e3061591d380ce6c", + "shasum": "" + }, + "require": { + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/finder": "~2.0,>=2.0.5|~3.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Component\\ClassLoader\\": "" + }, + "exclude-from-classmap": [ + "/Tests/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Fabien Potencier", + "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony ClassLoader Component", + "homepage": "https://symfony.com", + "time": "2015-12-05 17:37:59" }, { "name": "symfony/config", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Config", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/Config.git", - "reference": "d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f" + "url": "https://github.com/symfony/config.git", + "reference": "17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f", - "reference": "d81bd01eac1514c10dcb3b11eaa9048d6b87dd1f", + "url": "https://api.github.com/repos/symfony/config/zipball/17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2", + "reference": "17d4b2e64ce1c6ba7caa040f14469b3c44d7f7d2", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/filesystem": "~2.3" + "php": ">=5.3.9", + "symfony/filesystem": "~2.3|~3.0.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Config\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -857,53 +1055,58 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Config Component", - "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "homepage": "https://symfony.com", + "time": "2015-12-26 13:37:56" }, { "name": "symfony/console", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Console", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/Console.git", - "reference": "940f217cbc3c8a33e5403e7c595495c4884400fe" + "url": "https://github.com/symfony/console.git", + "reference": "2e06a5ccb19dcf9b89f1c6a677a39a8df773635a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/940f217cbc3c8a33e5403e7c595495c4884400fe", - "reference": "940f217cbc3c8a33e5403e7c595495c4884400fe", + "url": "https://api.github.com/repos/symfony/console/zipball/2e06a5ccb19dcf9b89f1c6a677a39a8df773635a", + "reference": "2e06a5ccb19dcf9b89f1c6a677a39a8df773635a", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/event-dispatcher": "~2.1" + "psr/log": "~1.0", + "symfony/event-dispatcher": "~2.1|~3.0.0", + "symfony/process": "~2.1|~3.0.0" }, "suggest": { - "symfony/event-dispatcher": "" + "psr/log": "For using the console logger", + "symfony/event-dispatcher": "", + "symfony/process": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Console\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -912,47 +1115,47 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Console Component", - "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "homepage": "https://symfony.com", + "time": "2015-12-22 10:25:57" }, { "name": "symfony/css-selector", - "version": "v2.4.2", - "target-dir": "Symfony/Component/CssSelector", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/CssSelector.git", - "reference": "ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7" + "url": "https://github.com/symfony/css-selector.git", + "reference": "eaa3320e32f09a01dc432c6efbe8051aee59cfef" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/CssSelector/zipball/ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7", - "reference": "ed1d61b2e23a0fd5dba0b20651258c4633d3e3a7", + "url": "https://api.github.com/repos/symfony/css-selector/zipball/eaa3320e32f09a01dc432c6efbe8051aee59cfef", + "reference": "eaa3320e32f09a01dc432c6efbe8051aee59cfef", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\CssSelector\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -960,50 +1163,46 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Jean-François Simon", + "email": "jeanfrancois.simon@sensiolabs.com" }, { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "name": "Fabien Potencier", + "email": "fabien@symfony.com" }, { - "name": "Jean-François Simon", - "email": "jeanfrancois.simon@sensiolabs.com" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony CssSelector Component", - "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "homepage": "https://symfony.com", + "time": "2015-12-05 17:37:59" }, { "name": "symfony/dependency-injection", - "version": "v2.6.5", - "target-dir": "Symfony/Component/DependencyInjection", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/DependencyInjection.git", - "reference": "a49245b2beebe332924561c30772b16e1d32f13a" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "c5086d186f538c2711b9af6f727be7b0446979cd" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/a49245b2beebe332924561c30772b16e1d32f13a", - "reference": "a49245b2beebe332924561c30772b16e1d32f13a", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/c5086d186f538c2711b9af6f727be7b0446979cd", + "reference": "c5086d186f538c2711b9af6f727be7b0446979cd", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "conflict": { "symfony/expression-language": "<2.6" }, "require-dev": { - "symfony/config": "~2.2", - "symfony/expression-language": "~2.6", - "symfony/phpunit-bridge": "~2.7", - "symfony/yaml": "~2.1" + "symfony/config": "~2.2|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/yaml": "~2.1|~3.0.0" }, "suggest": { "symfony/config": "", @@ -1013,52 +1212,55 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DependencyInjection Component", - "homepage": "http://symfony.com", - "time": "2015-03-17 12:44:40" + "homepage": "https://symfony.com", + "time": "2015-12-26 13:37:56" }, { "name": "symfony/dom-crawler", - "version": "v2.4.2", - "target-dir": "Symfony/Component/DomCrawler", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/DomCrawler.git", - "reference": "5962504de9b36d955d88b08c1434d420627c8c01" + "url": "https://github.com/symfony/dom-crawler.git", + "reference": "a2712aff8b250d9601ad6bd23a2ff82a12730e8e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DomCrawler/zipball/5962504de9b36d955d88b08c1434d420627c8c01", - "reference": "5962504de9b36d955d88b08c1434d420627c8c01", + "url": "https://api.github.com/repos/symfony/dom-crawler/zipball/a2712aff8b250d9601ad6bd23a2ff82a12730e8e", + "reference": "a2712aff8b250d9601ad6bd23a2ff82a12730e8e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" }, "require-dev": { - "symfony/css-selector": "~2.0" + "symfony/css-selector": "~2.8|~3.0.0" }, "suggest": { "symfony/css-selector": "" @@ -1066,13 +1268,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\DomCrawler\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1081,39 +1286,40 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DomCrawler Component", - "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "homepage": "https://symfony.com", + "time": "2015-12-23 17:16:29" }, { "name": "symfony/event-dispatcher", - "version": "v2.4.2", - "target-dir": "Symfony/Component/EventDispatcher", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "4708b8cd41984a5ba29fe7dd40716f7f761ac501" + "url": "https://github.com/symfony/event-dispatcher.git", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/4708b8cd41984a5ba29fe7dd40716f7f761ac501", - "reference": "4708b8cd41984a5ba29fe7dd40716f7f761ac501", + "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/a5eb815363c0388e83247e7e9853e5dbc14999cc", + "reference": "a5eb815363c0388e83247e7e9853e5dbc14999cc", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { - "symfony/dependency-injection": "~2.0" + "psr/log": "~1.0", + "symfony/config": "~2.0,>=2.0.5|~3.0.0", + "symfony/dependency-injection": "~2.6|~3.0.0", + "symfony/expression-language": "~2.6|~3.0.0", + "symfony/stopwatch": "~2.3|~3.0.0" }, "suggest": { "symfony/dependency-injection": "", @@ -1122,13 +1328,16 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1137,94 +1346,99 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony EventDispatcher Component", - "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "homepage": "https://symfony.com", + "time": "2015-10-30 20:15:42" }, { "name": "symfony/filesystem", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Filesystem", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/Filesystem.git", - "reference": "7e65abb06d3b38f4be89266fe3fb4a759544e713" + "url": "https://github.com/symfony/filesystem.git", + "reference": "c2e59d11dccd135dc8f00ee97f34fe1de842e70c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/7e65abb06d3b38f4be89266fe3fb4a759544e713", - "reference": "7e65abb06d3b38f4be89266fe3fb4a759544e713", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/c2e59d11dccd135dc8f00ee97f34fe1de842e70c", + "reference": "c2e59d11dccd135dc8f00ee97f34fe1de842e70c", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Filesystem\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Filesystem Component", - "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "homepage": "https://symfony.com", + "time": "2015-12-22 10:39:06" }, { - "name": "symfony/finder", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Finder", + "name": "symfony/polyfill-mbstring", + "version": "v1.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/Finder.git", - "reference": "b6735d1fc16da13c4c7dddfe78366a4a098cf011" + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/b6735d1fc16da13c4c7dddfe78366a4a098cf011", - "reference": "b6735d1fc16da13c4c7dddfe78366a4a098cf011", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/49ff736bd5d41f45240cec77b44967d76e0c3d25", + "reference": "49ff736bd5d41f45240cec77b44967d76e0c3d25", "shasum": "" }, "require": { "php": ">=5.3.3" }, + "suggest": { + "ext-mbstring": "For best performance" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "1.0-dev" } }, "autoload": { - "psr-0": { - "Symfony\\Component\\Finder\\": "" - } + "psr-4": { + "Symfony\\Polyfill\\Mbstring\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1232,48 +1446,55 @@ ], "authors": [ { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony Finder Component", - "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "description": "Symfony polyfill for the Mbstring extension", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "mbstring", + "polyfill", + "portable", + "shim" + ], + "time": "2015-11-20 09:19:13" }, { "name": "symfony/process", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Process", + "version": "v3.0.1", "source": { "type": "git", - "url": "https://github.com/symfony/Process.git", - "reference": "c175448bac997556f8ab972908a4e14c7291fb03" + "url": "https://github.com/symfony/process.git", + "reference": "f4794f1d00f0746621be3020ffbd8c5e0b217ee3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/c175448bac997556f8ab972908a4e14c7291fb03", - "reference": "c175448bac997556f8ab972908a4e14c7291fb03", + "url": "https://api.github.com/repos/symfony/process/zipball/f4794f1d00f0746621be3020ffbd8c5e0b217ee3", + "reference": "f4794f1d00f0746621be3020ffbd8c5e0b217ee3", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.5.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Process\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1282,55 +1503,62 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Process Component", - "homepage": "http://symfony.com", - "time": "2014-02-11 13:52:09" + "homepage": "https://symfony.com", + "time": "2015-12-23 11:04:02" }, { "name": "symfony/translation", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Translation", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/Translation.git", - "reference": "b00fd07417e493e08488e87bcebeb9681fc7323b" + "url": "https://github.com/symfony/translation.git", + "reference": "c1db87c51251167dd91198b9d1edf897773adb4f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Translation/zipball/b00fd07417e493e08488e87bcebeb9681fc7323b", - "reference": "b00fd07417e493e08488e87bcebeb9681fc7323b", + "url": "https://api.github.com/repos/symfony/translation/zipball/c1db87c51251167dd91198b9d1edf897773adb4f", + "reference": "c1db87c51251167dd91198b9d1edf897773adb4f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9", + "symfony/polyfill-mbstring": "~1.0" + }, + "conflict": { + "symfony/config": "<2.7" }, "require-dev": { - "symfony/config": "~2.0", - "symfony/yaml": "~2.2" + "psr/log": "~1.0", + "symfony/config": "~2.8", + "symfony/intl": "~2.4|~3.0.0", + "symfony/yaml": "~2.2|~3.0.0" }, "suggest": { + "psr/log": "To use logging capability in translator", "symfony/config": "", "symfony/yaml": "" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Translation\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1339,47 +1567,47 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Translation Component", - "homepage": "http://symfony.com", - "time": "2014-02-03 17:15:33" + "homepage": "https://symfony.com", + "time": "2015-12-05 17:37:59" }, { "name": "symfony/yaml", - "version": "v2.4.2", - "target-dir": "Symfony/Component/Yaml", + "version": "v2.8.1", "source": { "type": "git", - "url": "https://github.com/symfony/Yaml.git", - "reference": "bb6ddaf8956139d1b8c360b4b713ed0138e876b3" + "url": "https://github.com/symfony/yaml.git", + "reference": "ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/bb6ddaf8956139d1b8c360b4b713ed0138e876b3", - "reference": "bb6ddaf8956139d1b8c360b4b713ed0138e876b3", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966", + "reference": "ac84cbb98b68a6abbc9f5149eb96ccc7b07b8966", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.4-dev" + "dev-master": "2.8-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Yaml\\": "" - } + }, + "exclude-from-classmap": [ + "/Tests/" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1388,18 +1616,16 @@ "authors": [ { "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" + "email": "fabien@symfony.com" }, { "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Yaml Component", - "homepage": "http://symfony.com", - "time": "2014-01-07 13:28:54" + "homepage": "https://symfony.com", + "time": "2015-12-26 13:37:56" } ], "packages-dev": [], diff --git a/tests/features/BearMedia.feature b/tests/features/BearMedia.feature deleted file mode 100644 index 8370cd2..0000000 --- a/tests/features/BearMedia.feature +++ /dev/null @@ -1,82 +0,0 @@ -@api -Feature: Media module should function properly - As an authenticated user - I should be able to add media to content - - -##Scenario: User must be able to add media field to Basic Page -## Given I am logged in as a user with the "administrator" role -## When I visit "admin/structure/types/manage/page/fields" -## And I fill in "Add new field" with "Image" -## And I select "Image" from "edit-fields-add-new-field-type" -## And I select "Media browser" from "edit-fields-add-new-field-widget-type" -## And I press "Save" -## And I press "Save field settings" -## And I should see "Updated field" -## And I check the box "Upload" -## And I check the box "Library" -## And I check the box "YouTube" -## And I press "Save settings" -## Then I should see "configuration." - -@javascript -Scenario: I should be able to add images to media field from the library - Given I am logged in as a user with the "administrator" role - When I visit "node/add/page" - And I fill in "Title" with "[random]" - And I type "This is test content." in the "edit-body-und-0-value" WYSIWYG editor - And I click "edit-field-media-test-und-0-browse-button" - And I enter the iframe - And I pause - And I follow "Library" - And I choose an image - And I click the fake "Submit" button - And I leave the iframe - And I press "Save" - And I break - And I should see "test content." - Then I should see the "test.jpg" image - -@javascript -Scenario: I should be able to upload YouTube video -#TODO: How did the youtube with a link thing work? - Given I am logged in as a user with the "administrator" role - When I visit "node/add/page" - And I fill in "Title" with "[random]" - And I type "This is test content." in the "edit-body-und-0-value" WYSIWYG editor - And I click "edit-field-media-test-und-0-browse-button" - And I enter the iframe - And I follow "YouTube" - And I fill in "Search" with "https://www.youtube.com/watch?v=rfh4Mhp-a6U" - And I press "Apply" - And I pause - And I pause - And I choose a video - And I press "Submit" - And I leave the iframe - And I break - And I press "Save" - And I should see "test content." - Then I should see the "rfh4Mhp-a6U" video - -@javascript -Scenario: The Media Button in WYSIWYG Toolbar should function properly. - Given I am logged in as a user with the "administrator" role - When I visit "node/add/page" - And I fill in "Title" with "[random]" - And I click the "Add media" button in the "edit-body-und-0-value" WYSIWYG editor - And I enter the iframe - And I pause - And I follow "Library" - And I choose an image - And I should see "Submit" - And I pause - And I click "Submit" - And I pause - And I click "Submit" - And I leave the iframe - And I type "This is test content." in the "edit-body-und-0-value" WYSIWYG editor - And I press "Save" - And I break - Then I should see the "test-cat.jpg" image - ##Find image in DOM --> Custom step \ No newline at end of file diff --git a/tests/features/ContentCreation.feature b/tests/features/ContentCreation.feature index eeeca43..6904a43 100644 --- a/tests/features/ContentCreation.feature +++ b/tests/features/ContentCreation.feature @@ -7,18 +7,18 @@ Feature: Creating Basic Content Scenario: Administrator is able to log in and create Basic Page content Given I am logged in as a user with the "administrator" role When I visit "node/add/page" - And I fill in "Title" with "[random]" + And I fill in "Title" with "foo" And I fill in "Body" with "This is test content." And I press "Save" And I visit "admin/content" - And I should see "[random:1]" - And I click "[random:1]" + And I should see "foo" + And I click "foo" Then I should see "test content." Scenario: As an Administrator I should be able to add a Menu Item Given I am logged in as a user with the "administrator" role - When I visit "node/add/page" - And I fill in "Title" with "[random]" + When I visit "node/add/page" + And I fill in "Title" with "foo" And I fill in "Body" with "This is test content." And I check the box "Provide a menu link" And I fill in "Menu link title" with "About Us" @@ -28,4 +28,3 @@ Scenario: As an Administrator I should be able to add a Menu Item And I should see "About Us" And I follow "About Us" Then I should see "test content." - diff --git a/tests/features/MultipleFieldWidget.feature b/tests/features/MultipleFieldWidget.feature index 2e1f99e..d28e299 100644 --- a/tests/features/MultipleFieldWidget.feature +++ b/tests/features/MultipleFieldWidget.feature @@ -8,7 +8,7 @@ Feature: Multiple Field Widget Scenario: As an Administrator I can add a multiple text field to page content type and it is orderable. Given I am logged in as a user with the "administrator" role When I visit "admin/structure/types/manage/page/fields" - And I fill in "fields[_add_new_field][label]" with "Test field" + And I fill in "edit-fields-add-new-field-label" with "Test field" And I fill in "edit-fields-add-new-field-field-name" with "test" And I select "Text" from "edit-fields-add-new-field-type" And I select "text_textfield" from "edit-fields-add-new-field-widget-type" @@ -24,7 +24,7 @@ Scenario: As an Administrator I can add a multiple text field to page content ty Scenario: As an Administrator I can add a multiple text field to page content type and it is not orderable. Given I am logged in as a user with the "administrator" role When I visit "admin/structure/types/manage/page/fields" - And I fill in "fields[_add_new_field][label]" with "Test field" + And I fill in "edit-fields-add-new-field-label" with "Test field" And I fill in "edit-fields-add-new-field-field-name" with "test" And I select "Text" from "edit-fields-add-new-field-type" And I select "text_textfield" from "edit-fields-add-new-field-widget-type" @@ -42,13 +42,13 @@ Scenario: As an Administrator I can add a multiple text field to page content ty Scenario: As an administrator I can see an Orderable checkbox on multiple field Given I am logged in as a user with the "administrator" role When I visit "admin/structure/types/manage/page/fields" - And I fill in "fields[_add_new_field][label]" with "Test field" + And I fill in "edit-fields-add-new-field-label" with "Test field" And I fill in "edit-fields-add-new-field-field-name" with "test" And I select "Text" from "edit-fields-add-new-field-type" And I select "text_textfield" from "edit-fields-add-new-field-widget-type" And I press "Save" And I press "edit-submit" And I select "Unlimited" from "edit-field-cardinality" - And I press "Save settings" + And I press "Save settings" And I visit "admin/structure/types/manage/page/fields/field_test/widget-type" Then I should see "Orderable" diff --git a/tests/features/NewContentTypeSettings.feature b/tests/features/NewContentTypeSettings.feature new file mode 100644 index 0000000..74a9673 --- /dev/null +++ b/tests/features/NewContentTypeSettings.feature @@ -0,0 +1,34 @@ +@api +Feature: New Content Type Settings + When I create a new content type + The preview before submitting should be disabled + And the display author and date should be disabled + And the revisions should be enabled + And comments should be hidden + To make the process of creating new content types more efficient + And to ensure new content types have the best default settings + +Scenario: As an administrator, I can create a new content type and have the option to preview before submitting be disabled by default + Given I am logged in as a user with the "administrator" role + When I visit "admin/structure/types/add" + Then the "edit-node-preview-0" radio should be checked + +Scenario: As an administrator, I can create a new content type and have the revisions page be enabled by default + Given I am logged in as a user with the "administrator" role + When I visit "admin/structure/types/add" + Then the checkbox "edit-diff-enable-revisions-page-node" is checked + +Scenario: As an administrator, I can create a new content type and have the option to create revisions be enabled by default + Given I am logged in as a user with the "administrator" role + When I visit "admin/structure/types/add" + Then the checkbox "edit-node-options-revision" is checked + +Scenario: As an administrator, I can create a new content type and have the option to display author and time information be disabled by default + Given I am logged in as a user with the "administrator" role + When I visit "admin/structure/types/add" + Then the checkbox "edit-node-submitted" is unchecked + +Scenario: As an administrator, I can create a new content type and have the Comments section be hidden by default + Given I am logged in as a user with the "administrator" role + When I visit "admin/structure/types/add" + Then I should not see "Comment settings" diff --git a/tests/features/bootstrap/FeatureContext.php b/tests/features/bootstrap/FeatureContext.php index 6e588ed..059672b 100644 --- a/tests/features/bootstrap/FeatureContext.php +++ b/tests/features/bootstrap/FeatureContext.php @@ -1,13 +1,5 @@ localConf = $this->getConfig(); + #$this->localConf = $this->getConfig(); } @@ -50,47 +44,6 @@ public function __construct() { # return Yaml::parse('local-config.yaml'); #} - - /** - * Override MinkContext::fixStepArgument(). - * - * Make it possible to use [random]. - * If you want to use the previous random value [random:1]. - * Also, allow newlines in arguments. - */ - public function fixStepArgument($argument) { - // Token replace the argument. - static $random = array(); - for ($start = 0; ($start = strpos($argument, '[', $start)) !== FALSE; ) { - $end = strpos($argument, ']', $start); - if ($end === FALSE) { - break; - } - $random_generator = new Random; - $name = substr($argument, $start + 1, $end - $start - 1); - if ($name == 'random') { - $this->vars[$name] = $random_generator->name(8); - $random[] = $this->vars[$name]; - } - // In order to test previous random values stored in the form, - // suppport random:n, where n is the number or random's ago - // to use, i.e., random:1 is the previous random value. - elseif (substr($name, 0, 7) == 'random:') { - $num = substr($name, 7); - if (is_numeric($num) && $num <= count($random)) { - $this->vars[$name] = $random[count($random) - $num]; - } - } - if (isset($this->vars[$name])) { - $argument = substr_replace($argument, $this->vars[$name], $start, $end - $start + 1); - $start += strlen($this->vars[$name]); - } - else { - $start = $end + 1; - } - } - return $argument; - } /** * @Transform /\[.*\](?:.*)/ @@ -109,261 +62,24 @@ public function transformLocalConf($argument) { } /** - * @Given /^I switch to the iframe "([^"]*)"$/ - * - * Drupal Media Module 7.x-1.3 - */ - public function switchToIFrame($name) { - if ($name) { - $this->getMainContext()->getSession()->switchToIFrame($name); - } else { - $this->getMainContect()->getSession()->switchToIFrame(); - } - } - - /** - * @Given /^I enter the media upload window$/ - * @When I enter the iframe - */ - public function iEnterTheIframe($arg1 = 'mediaBrowser') { - $this->getSession()->switchToIFrame($arg1); - } - - /** - * @Given /^I leave the iframe$/ - */ - public function iLeaveTheIframe() { - $this->getSession()->switchToIFrame(); - $this->getSession()->wait(3000, 'false'); - } - - /** - * @When I choose an image - * @When I choose a video - */ - public function iChooseAnImage() { - $this->getSession() - ->getPage() - ->find("css", "#media-browser-library-list li img") - ->click(); - $this->getSession()->wait(3000, 'false'); - } - - /** - * @When I choose an image from WYSIWYG media - * @When I choose a video from WYSIWYG media - */ - public function iChooseAnImageFromWYSIWYGMedia() { - $this->getSession()->getDriver() - ->find("xpath", "//ul[@id='media-browser-library-list']/li/img") - ->click(); - } - - - /** - * @Given /^I click the fake "([^"]*)" button$/ + * @AfterScenario @deleteTestField */ - public function iClickTheFakeButton($text) { - // Media style selector "buttons" are A tags with no href, so not findable - // by normal steps. + public function deleteTestField() { $driver = $this->getSession()->getDriver(); - $buttons = $driver->find("//a[text()='$text']"); - $buttons[0]->click(); - } - - /** - * @When /^I should see the "([^"]*)" image$/ - */ - public function iShouldSeeTheImage($file) { - $escapedValue = $this->getSession()->getSelectorsHandler()->xpathLiteral($file); - $image = $this->getSession()->getPage()->find('named', array('link', $escapedValue)); - if(!$image){ - throw new \Exception(sprintf('Image "%s" was not found on the page %s', $file, $this->getSession()->getCurrentUrl())); - } - } - - /** - * @When /^I should see the "([^"]*)" video$/ - */ - public function iShouldSeeTheVideo($file) { - $video = $this->getSession()->getPage()->find('xpath', '//iframe[title="{$file}]"'); - if(!$video){ - throw new \Exception(sprintf('Image "%s" was not found on the page %s', $file, $this->getSession()->getCurrentUrl())); - } + $driver->visit("/admin/structure/types/manage/page/fields/field_test/delete"); + $this->getSession()->getPage()->pressButton("Delete"); } /** - * @When I pause - */ - public function iPause() { - // Useful in js tests only. - // For when you need to let drupal catch up. - $this->getSession()->wait(3000, 'false'); - } -//*** - /*** Panopoly WYSIWYG Custom Steps - **** - **** - - /** - * Get the instance variable to use in Javascript. - * - * @param string $instanceId - * The instanceId used by the WYSIWYG module to identify the instance. - * - * @throws Exeception - * Throws an exception if the editor doesn't exist. + * Checks that a specific radio button is checked, must use radio button's id. * - * @return string - * A Javascript expression representing the WYSIWYG instance. + * @Then /^the "([^"]*)" radio should be checked$/ */ - protected function getWysiwygInstance($instanceId) { - $instance = "Drupal.wysiwyg.instances['$instanceId']"; - - if (!$this->getSession()->evaluateScript("return !!$instance")) { - throw new \Exception(sprintf('The editor "%s" was not found on the page %s', $instanceId, $this->getSession()->getCurrentUrl())); + public function theRadioShouldBeChecked($arg1) { + $elementByCss = $this->getSession()->getPage()->find('css', 'input[type="radio"]:checked#'.$arg1); + if (!$elementByCss) { + throw new Exception('Radio button with id ' . $arg1.' is not checked'); } - - return $instance; - } - - /** - * Get a Mink Element representing the WYSIWYG toolbar. - * - * Altered for CKEditor - * - * @param string $instanceId - * The instanceId used by the WYSIWYG module to identify the instance. - * @param string $editorType - * Identifies the underlying editor (for example, "tinymce"). - * - * @throws Exeception - * Throws an exception if the toolbar can't be found. - * - * @return \Behat\Mink\Element\NodeElement - * The toolbar DOM Node. - */ - protected function getWysiwygToolbar($instanceId/*, $editorType*/) { - $driver = $this->getSession()->getPage(); - - // TODO: This is tinyMCE specific. We should probably do a switch statement - // based on $editorType. - $wysiwyg = $driver->find("xpath", "//div[@id='cke_{$instanceId}']"); - if ($wysiwyg === NULL){ - throw new \Exception(sprintf('The wysiwyg "%s" was not found on the page', $instanceId)); - } - $toolbarElement = $wysiwyg->find("xpath", "//span[@class='cke_toolbar']"); - if ($toolbarElement === NULL) { - throw new \Exception(sprintf('Toolbar for editor "%s" was not found on the page %s', $instanceId, $this->getSession()->getCurrentUrl())); - } - - return $toolbarElement; - } - - /** - * @When /^I type "([^"]*)" in the "([^"]*)" WYSIWYG editor$/ - */ - public function iTypeInTheWysiwygEditor($text, $instanceId) { - $instance = $this->getWysiwygInstance($instanceId); - $this->getSession()->executeScript("$instance.insert(\"$text\");"); - } - - /** - * @When /^I fill in the "([^"]*)" WYSIWYG editor with "([^"]*)"$/ - */ - public function iFillInTheWysiwygEditor($instanceId, $text) { - $instance = $this->getWysiwygInstance($instanceId); - $this->getSession()->executeScript("$instance.setContent(\"$text\");"); - } - - /** - * @When /^I click the "([^"]*)" button in the "([^"]*)" WYSIWYG editor$/ - */ - public function iClickTheButtonInTheWysiwygEditor($action, $instanceId) { - $driver = $this->getSession()->getDriver(); - $instance = $this->getWysiwygInstance($instanceId); - $toolbarElement = $this->getWysiwygToolbar($instanceId/*, $editorType*/); - - // Click the action button. - $button = $toolbarElement->find("xpath", "//span[@class='cke_toolgroup']/a[@title='{$action}']"); - if (!$button) { - throw new \Exception(sprintf('Button "%s" was not found on the page %s', $action, $this->getSession()->getCurrentUrl())); - } - $button->click(); - $driver->wait(1000, TRUE); - } - - #/** - # * @When /^I click the "([^"]*)" element in the "([^"]*)" WYSIWYG editor$/ - # */ - #public function iClickTheElementInTheWysiwygEditor($cssSelector, $instanceId) { - # $instance = $this->getWysiwygInstance($instanceId); - # $editorType = $this->getSession()->evaluateScript("return $instance.editor"); - - # // TODO: This is tinyMCE specific. We should probably do a switch statement - # // based on $editorType. - # $editor_iframe_id = $instanceId . '_ifr'; - - # // This Javascript only works on Chrome - not Firefox. - # $javascript = "jQuery('#{$editor_iframe_id}').each(function() {"; - # $javascript .= " jQuery('{$cssSelector}', this.contentWindow.document || this.contentDocument).click();"; - # $javascript .= "});"; - - # $this->getSession()->executeScript($javascript); - #} - - /** - * @When /^I expand the toolbar in the "([^"]*)" WYSIWYG editor$/ - */ - public function iExpandTheToolbarInTheWysiwygEditor($instanceId) { - $driver = $this->getSession()->getDriver(); - - $instance = $this->getWysiwygInstance($instanceId); - $editorType = $this->getSession()->evaluateScript("return $instance.editor"); - $toolbarElement = $this->getWysiwygToolbar($instanceId, $editorType); - - // TODO: This is tinyMCE specific. We should probably switch on - // $editorType. - $action = 'Show/hide toolbars'; - - // Expand wysiwyg toolbar. - $button = $toolbarElement->find("xpath", "//a[starts-with(@title, '$action')]"); - if (!$button) { - throw new \Exception(sprintf('Button "%s" was not found on the page %s', $action, $this->getSession()->getCurrentUrl())); - } - if (strpos($button->getAttribute('class'), 'mceButtonActive') !== FALSE) { - $button->click(); - } - } - - /** - * @Then /^I should see "([^"]*)" in the "([^"]*)" WYSIWYG editor$/ - */ - public function assertContentInWysiwygEditor($text, $tag, $region) { - $instance = $this->getWysiwygInstance($instanceId); - $content = $this->evaluateScript("return $instance.getContent()"); - if (strpos($text, $content) === FALSE) { - throw new \Exception(sprintf('The text "%s" was not found in the "%s" WYSWIYG editor on the page %s', $text, $instanceId, $this->getSession()->getCurrentUrl())); - } - } - - /** - * @Then /^I should not see "([^"]*)" in the "([^"]*)" WYSIWYG editor$/ - */ - public function assertContentNotInWysiwygEditor($text, $tag, $region) { - $instance = $this->getWysiwygInstance($instanceId); - $content = $this->evaluateScript("return $instance.getContent()"); - if (strpos($text, $content) !== FALSE) { - throw new \Exception(sprintf('The text "%s" was found in the "%s" WYSWIYG editor on the page %s', $text, $instanceId, $this->getSession()->getCurrentUrl())); - } - } - - /** - * @AfterScenario @deleteTestField - */ - public function deleteTestField() { - $this->visit("admin/structure/types/manage/page/fields/field_test/delete"); - $this->pressButton("Delete"); } }