mirror of
https://github.com/silverstripe/silverstripe-cms
synced 2024-10-01 05:39:31 +02:00
36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace SilverStripe\CMS\Tests\Behaviour;
|
|
|
|
use Page;
|
|
use SilverStripe\BehatExtension\Context\LoginContext as BehatLoginContext;
|
|
|
|
class LoginContext extends BehatLoginContext
|
|
{
|
|
/**
|
|
*
|
|
* 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, $permCode)
|
|
{
|
|
// Reset permission cache
|
|
$page = Page::get()->First();
|
|
assertNotNull($page, 'A page exists');
|
|
$email = "{$permCode}@example.org";
|
|
$password = 'Password!456';
|
|
$member = $this->generateMemberWithPermission($email, $password, $permCode);
|
|
$canEdit = strstr($negative, 'not') ? false : true;
|
|
|
|
if ($canEdit) {
|
|
assertTrue($page->canEdit($member), 'The member can edit this page');
|
|
} else {
|
|
assertFalse($page->canEdit($member), 'The member cannot edit this page');
|
|
}
|
|
}
|
|
}
|