Skip to content

Commit

Permalink
Merge pull request #904 from srizzling/is/cms/892
Browse files Browse the repository at this point in the history
Added new step Pages can be editable by
  • Loading branch information
chillu committed Dec 2, 2013
2 parents a79ac87 + 86301e6 commit 8613e05
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 16 deletions.
1 change: 0 additions & 1 deletion tests/behat/features/bootstrap/FeatureContext.php
Expand Up @@ -47,5 +47,4 @@ public function __construct(array $parameters) {
}

}

}
Expand Up @@ -21,7 +21,7 @@
*/
class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext {

/**
/**
* Find or create a redirector page and link to another existing page.
* Example: Given a "page" "My Redirect" which redirects to a "page" "Page 1"
*
Expand All @@ -30,19 +30,40 @@ class FixtureContext extends \SilverStripe\BehatExtension\Context\FixtureContext
public function stepCreateRedirectorPage($type, $id, $targetType, $targetId) {
$class = 'RedirectorPage';
$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);
}
$obj->write();
$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')
);
}
}
Expand Up @@ -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"

0 comments on commit 8613e05

Please sign in to comment.