mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-22 08:05:56 +02:00
NEW Added Behat tests
This commit is contained in:
parent
36220c9617
commit
9841d5b074
@ -19,5 +19,8 @@
|
|||||||
"php": ">=5.3.2",
|
"php": ">=5.3.2",
|
||||||
"composer/installers": "*",
|
"composer/installers": "*",
|
||||||
"silverstripe/framework": "self.version"
|
"silverstripe/framework": "self.version"
|
||||||
|
},
|
||||||
|
"autoload": {
|
||||||
|
"classmap": ["tests/behat/"]
|
||||||
}
|
}
|
||||||
}
|
}
|
1
tests/behat/README.md
Normal file
1
tests/behat/README.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
See https://github.com/silverstripe-labs/silverstripe-behat-extension
|
0
tests/behat/_manifest_exclude
Normal file
0
tests/behat/_manifest_exclude
Normal file
45
tests/behat/behat.yml
Normal file
45
tests/behat/behat.yml
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
default:
|
||||||
|
context:
|
||||||
|
class: SilverStripe\Cms\Test\Behaviour\FeatureContext
|
||||||
|
parameters:
|
||||||
|
admin_url: /admin/
|
||||||
|
login_url: /Security/login
|
||||||
|
screenshot_path: %behat.paths.features%/screenshots/
|
||||||
|
extensions:
|
||||||
|
SilverStripe\BehatExtension\Extension:
|
||||||
|
framework_path: ../../../framework
|
||||||
|
ajax_steps:
|
||||||
|
- go to
|
||||||
|
- follow
|
||||||
|
- press
|
||||||
|
- click
|
||||||
|
- submit
|
||||||
|
Behat\MinkExtension\Extension:
|
||||||
|
# Adjust this to your local environment
|
||||||
|
base_url: http://localhost/
|
||||||
|
files_path: %behat.paths.features%/files/
|
||||||
|
default_session: selenium2
|
||||||
|
javascript_session: selenium2
|
||||||
|
goutte: ~
|
||||||
|
selenium2:
|
||||||
|
browser: firefox
|
||||||
|
|
||||||
|
# Alternative profile, use with "vendor/bin/behat --profile chrome"
|
||||||
|
chrome:
|
||||||
|
extensions:
|
||||||
|
Behat\MinkExtension\Extension:
|
||||||
|
selenium2:
|
||||||
|
browser: chrome
|
||||||
|
|
||||||
|
# Saucelabs.com sample setup, use with "vendor/bin/behat --profile saucelabs"
|
||||||
|
saucelabs:
|
||||||
|
extensions:
|
||||||
|
Behat\MinkExtension\Extension:
|
||||||
|
selenium2:
|
||||||
|
browser: firefox
|
||||||
|
# Add your own username and API token here
|
||||||
|
wd_host: <user>:<api-token>@ondemand.saucelabs.com/wd/hub
|
||||||
|
capabilities:
|
||||||
|
platform: "Windows 2008"
|
||||||
|
browser: "firefox"
|
||||||
|
version: "15"
|
38
tests/behat/features/bootstrap/FeatureContext.php
Normal file
38
tests/behat/features/bootstrap/FeatureContext.php
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace SilverStripe\Cms\Test\Behaviour;
|
||||||
|
|
||||||
|
use SilverStripe\BehatExtension\Context\SilverStripeContext,
|
||||||
|
SilverStripe\BehatExtension\Context\BasicContext,
|
||||||
|
SilverStripe\BehatExtension\Context\LoginContext,
|
||||||
|
SilverStripe\Test\Behaviour\CmsFormsContext,
|
||||||
|
SilverStripe\Test\Behaviour\CmsUiContext;
|
||||||
|
|
||||||
|
// PHPUnit
|
||||||
|
require_once 'PHPUnit/Autoload.php';
|
||||||
|
require_once 'PHPUnit/Framework/Assert/Functions.php';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Features context
|
||||||
|
*
|
||||||
|
* Context automatically loaded by Behat.
|
||||||
|
* Uses subcontexts to extend functionality.
|
||||||
|
*/
|
||||||
|
class FeatureContext extends SilverStripeContext
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* Initializes context.
|
||||||
|
* Every scenario gets it's own context object.
|
||||||
|
*
|
||||||
|
* @param array $parameters context parameters (set them up through behat.yml)
|
||||||
|
*/
|
||||||
|
public function __construct(array $parameters)
|
||||||
|
{
|
||||||
|
$this->useContext('BasicContext', new BasicContext($parameters));
|
||||||
|
$this->useContext('LoginContext', new LoginContext($parameters));
|
||||||
|
$this->useContext('CmsFormsContext', new CmsFormsContext($parameters));
|
||||||
|
$this->useContext('CmsUiContext', new CmsUiContext($parameters));
|
||||||
|
|
||||||
|
parent::__construct($parameters);
|
||||||
|
}
|
||||||
|
}
|
15
tests/behat/features/create-a-page.feature
Normal file
15
tests/behat/features/create-a-page.feature
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
@database-defaults
|
||||||
|
Feature: Create a page
|
||||||
|
As an author
|
||||||
|
I want to create a page in the CMS
|
||||||
|
So that I can grow my website
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: I can create a page from the pages section
|
||||||
|
Given I am logged in with "ADMIN" permissions
|
||||||
|
And I go to "/admin/pages"
|
||||||
|
And I should see "Add new" button in CMS Content Toolbar
|
||||||
|
When I press "Add new" button
|
||||||
|
And I check "Page"
|
||||||
|
And I press "Create" button
|
||||||
|
Then I should see an edit page form
|
29
tests/behat/features/edit-a-page.feature
Normal file
29
tests/behat/features/edit-a-page.feature
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
@database-defaults
|
||||||
|
Feature: Edit a page
|
||||||
|
As an author
|
||||||
|
I want to edit a page in the CMS
|
||||||
|
So that I correct errors and provide new information
|
||||||
|
|
||||||
|
Background:
|
||||||
|
Given I am logged in with "ADMIN" permissions
|
||||||
|
And I go to "/admin/pages"
|
||||||
|
Then I should see "About Us" in CMS Tree
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: I can open a page for editing from the pages tree
|
||||||
|
When I follow "About Us"
|
||||||
|
Then I should see an edit page form
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: I can edit title and content and see the changes on draft
|
||||||
|
When I follow "About Us"
|
||||||
|
Then I should see an edit page form
|
||||||
|
|
||||||
|
When I fill in "Title" with "About Us!"
|
||||||
|
And I fill in content form with "my new content"
|
||||||
|
And I press "Save Draft" button
|
||||||
|
Then I should see "Saved." notice
|
||||||
|
|
||||||
|
When I follow "About Us"
|
||||||
|
Then the "Title" field should contain "About Us!"
|
||||||
|
And the content form should contain "my new content"
|
41
tests/behat/features/preview-a-page.feature
Normal file
41
tests/behat/features/preview-a-page.feature
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
@database-defaults
|
||||||
|
Feature: Preview a page
|
||||||
|
As an author
|
||||||
|
I want to preview the page I'm editing in the CMS
|
||||||
|
So that I can see how it would look like to my visitors
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: I can show a preview of the current page from the pages section
|
||||||
|
Given I am logged in with "ADMIN" permissions
|
||||||
|
And I go to "/admin/pages"
|
||||||
|
Then I should see "About Us" in CMS Tree
|
||||||
|
|
||||||
|
When I follow "About Us"
|
||||||
|
And I press "Preview »" button
|
||||||
|
Then I can see the preview panel
|
||||||
|
And the preview contains "About Us"
|
||||||
|
|
||||||
|
# TODO:
|
||||||
|
# - Only tests correctly on fresh database
|
||||||
|
# - We should continue testing against it after we have fixtures ready
|
||||||
|
@javascript
|
||||||
|
Scenario: I can see an updated preview when editing content
|
||||||
|
Given I am logged in with "ADMIN" permissions
|
||||||
|
And I go to "/admin/pages"
|
||||||
|
Then I should see "About Us" in CMS Tree
|
||||||
|
|
||||||
|
When I follow "About Us"
|
||||||
|
And I fill in content form with "my new content"
|
||||||
|
And I press "Save Draft" button
|
||||||
|
And I press "Preview »" button
|
||||||
|
|
||||||
|
When I follow "Published Site"
|
||||||
|
Then the preview does not contain "my new content"
|
||||||
|
And the preview contains "You can fill"
|
||||||
|
|
||||||
|
When I follow "Draft Site"
|
||||||
|
Then the preview does not contain "You can fill"
|
||||||
|
And the preview contains "my new content"
|
||||||
|
|
||||||
|
When I press "« Edit" button
|
||||||
|
Then I should see an edit page form
|
4
tests/behat/features/publish-a-page.feature
Normal file
4
tests/behat/features/publish-a-page.feature
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
Feature: Create a page
|
||||||
|
As a site owner
|
||||||
|
I want content to go to a draft site before being published
|
||||||
|
So that only high quality changes are seen by our visitors
|
18
tests/behat/features/search-for-a-page.feature
Normal file
18
tests/behat/features/search-for-a-page.feature
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
@database-defaults
|
||||||
|
Feature: Search for a page
|
||||||
|
As an author
|
||||||
|
I want to search for a page in the CMS
|
||||||
|
So that I can efficiently navigate nested content structures
|
||||||
|
|
||||||
|
@javascript
|
||||||
|
Scenario: I can search for a page by its title
|
||||||
|
Given I am logged in with "ADMIN" permissions
|
||||||
|
And I go to "/admin/pages"
|
||||||
|
Then I should see "About Us" in CMS Tree
|
||||||
|
And I should see "Contact Us" in CMS Tree
|
||||||
|
|
||||||
|
When I expand Filter CMS Panel
|
||||||
|
And I fill in "Content" with "About Us"
|
||||||
|
And I press "Apply Filter" button
|
||||||
|
Then I should see "About Us" in CMS Tree
|
||||||
|
But I should not see "Contact Us" in CMS Tree
|
Loading…
Reference in New Issue
Block a user