Drupal API Driver¶
The Drupal API Driver is the fastest and the most powerful of the three drivers. Its biggest limitation is that the tests must run on the same server as the Drupal site.
Enable the Drupal API Driver¶
To enable the Drupal API driver, edit the behat.yml file, change the api_driver to drupal and add the path to the local Drupal installation as shown below:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | default:
suites:
default:
contexts:
- FeatureContext
- Drupal\DrupalExtension\Context\DrupalContext
- Drupal\DrupalExtension\Context\MinkContext
extensions:
Drupal\MinkExtension:
goutte: ~
selenium2: ~
base_url: http://seven.l
Drupal\DrupalExtension:
blackbox: ~
api_driver: 'drupal'
drush:
alias: 'local'
drupal:
drupal_root: '/var/www/seven/drupal'
region_map:
footer: "#footer"
|
Note
It’s fine to leave the information for the drush driver in the file. It’s the api_driver value that declares which setting will be used for scenarios tagged @api.
Using this driver, you gain the ability to use all the steps in the examples below (and more).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | @api
Scenario: Create a node
Given I am logged in as a user with the "administrator" role
When I am viewing an "article" content with the title "My article"
Then I should see the heading "My article"
Scenario: Run cron
Given I am logged in as a user with the "administrator" role
When I run cron
And am on "admin/reports/dblog"
Then I should see the link "Cron run completed"
Scenario: Create many nodes
Given "page" content:
| title |
| Page one |
| Page two |
And "article" content:
| title |
| First article |
| Second article |
And I am logged in as a user with the "administrator" role
When I go to "admin/content"
Then I should see "Page one"
And I should see "Page two"
And I should see "First article"
And I should see "Second article"
Scenario: Create nodes with fields
Given "article" content:
| title | promote | body |
| First article with fields | 1 | PLACEHOLDER BODY |
When I am on the homepage
And follow "First article with fields"
Then I should see the text "PLACEHOLDER BODY"
Scenario: Create and view a node with fields
Given I am viewing an "Article" content:
| title | My article with fields! |
| body | A placeholder |
Then I should see the heading "My article with fields!"
And I should see the text "A placeholder"
Scenario: Create users
Given users:
| name | mail | status |
| Joe User | joe@example.com | 1 |
And I am logged in as a user with the "administrator" role
When I visit "admin/people"
Then I should see the link "Joe User"
Scenario: Login as a user created during this scenario
Given users:
| name | status |
| Test user | 1 |
When I am logged in as "Test user"
Then I should see the link "Log out"
Scenario: Create a term
Given I am logged in as a user with the "administrator" role
When I am viewing a "tags" term with the name "My tag"
Then I should see the heading "My tag"
Scenario: Create many terms
Given "tags" terms:
| name |
| Tag one |
| Tag two |
And I am logged in as a user with the "administrator" role
When I go to "admin/structure/taxonomy/tags"
Then I should see "Tag one"
And I should see "Tag two"
Scenario: Create nodes with specific authorship
Given users:
| name | mail | status |
| Joe User | joe@example.com | 1 |
And "article" content:
| title | author | body | promote |
| Article by Joe | Joe User | PLACEHOLDER BODY | 1 |
When I am logged in as a user with the "administrator" role
And I am on the homepage
And I follow "Article by Joe"
Then I should see the link "Joe User"
Scenario: Create an article with multiple term references
Given "tags" terms:
| name |
| Tag one |
| Tag two |
| Tag three |
| Tag four |
And "article" content:
| title | field_tags |
| My first article | Tag one |
| My second article | Tag two, Tag three |
| My third article | Tag two, Tag three, Tag four |
|