Merge pull request #904 from srizzling/is/cms/892

Added new step Pages can be editable by
This commit is contained in:
Ingo Schommer 2013-12-02 07:38:35 -08:00
commit 8613e055ae
3 changed files with 34 additions and 16 deletions

View File

@ -47,5 +47,4 @@ class FeatureContext extends \SilverStripe\Framework\Test\Behaviour\FeatureConte
}
}
}

View File

@ -32,11 +32,11 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
$targetClass = $this->convertTypeToClass($targetType);
$targetObj = $this->fixtureFactory->get($targetClass, $targetId);
if(!$targetObj) $targetObj = $this->fixtureFactory->get($targetClass, $targetId);
if (!$targetObj) $targetObj = $this->fixtureFactory->get($targetClass, $targetId);
$fields = array('LinkToID' => $targetObj->ID);
$obj = $this->fixtureFactory->get($class, $id);
if($obj) {
if ($obj) {
$obj->update($fields);
} else {
$obj = $this->fixtureFactory->createObject($class, $id, $fields);
@ -45,4 +45,25 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
$obj->publish('Stage', 'Live');
}
/**
*
* Check if the user can edit a page
*
* Example: Then pages should be editable by "Admin"
* Then pages should not be editable by "Admin"
*
* @Then /^pages should( not? |\s*)be editable by "([^"]*)"$/
*/
public function pagesShouldBeEditableBy($negative, $member){
$edit = '"/admin/pages/edit"';
$editable = 'I should'.$negative.'see an edit page form';
return array(
new Step\Given('I am not logged in'),
new Step\Given('I am logged in with "'.$member.'" permissions'),
new Step\Given('I go to '.$edit),
new Step\Given($editable),
new Step\Then('I am on the homepage')
);
}
}

View File

@ -43,18 +43,16 @@ Scenario: I can limit global view permissions to certain groups
And I go to the homepage
Then I should see "Welcome"
@todo
Scenario: I can limit global edit permissions to logged-in users
Given I select "Logged-in users" in "Who can edit pages on this site?" input group
Given I select "Anyone who can log-in to the CMS" from "Who can edit pages on this site?" input group
And I press the "Save" button
Then pages should be editable by "Content Authors"
And pages should be editable by "Administrators"
Then pages should be editable by "AUTHOR"
And pages should be editable by "ADMIN"
@todo
Scenario: I can limit global edit permissions to certain groups
Given I select "Only these people (choose from list)" from "Who can edit pages on this site?" input group
And I select "Administrators" from "Viewer Groups"
And I select "ADMIN group" from "Viewer Groups"
And I press the "Save" button
Then pages should not be editable by "Content Authors"
But pages should be editable by "Administrators"
Then pages should not be editable by "AUTHOR"
But pages should be editable by "ADMIN"