You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
3.3 KiB
84 lines
3.3 KiB
<?php |
|
|
|
/** |
|
* @file |
|
* Tests islandora permissions, and permission related funcitons. |
|
*/ |
|
|
|
class IslandoraPermissionsTestCase extends IslandoraWebTestCase { |
|
|
|
/** |
|
* Gets info to display to describe this test. |
|
* |
|
* @see IslandoraWebTestCase::getInfo() |
|
*/ |
|
public static function getInfo() { |
|
return array( |
|
'name' => 'Islandora Manage Permissions', |
|
'description' => 'Ensure the manage tab is shown based on the corrent permissions.', |
|
'group' => 'Islandora', |
|
); |
|
} |
|
|
|
/** |
|
* Prepares enviroment for testing. |
|
* |
|
* @see IslandoraWebTestCase::setUp() |
|
*/ |
|
public function setUp() { |
|
parent::setUp(array('islandora')); |
|
} |
|
|
|
/** |
|
* Test manage permissions. |
|
*/ |
|
public function testManagePermissions() { |
|
// Test permission FEDORA_VIEW_OBJECTS. |
|
// Create a user with permission. |
|
$user = $this->drupalCreateUser(array(FEDORA_VIEW_OBJECTS)); |
|
// Log the user in. |
|
$this->drupalLogin($user); |
|
$this->clickLink(t('Islandora Repository')); |
|
$this->assertNoLink('Manage', 'Manage tab is not on current page.'); |
|
|
|
// Test permission FEDORA_VIEW_OBJECTS, FEDORA_MANAGE_PROPERTIES. |
|
$user = $this->drupalCreateUser(array(FEDORA_VIEW_OBJECTS, FEDORA_MANAGE_PROPERTIES)); |
|
$this->drupalLogin($user); |
|
$this->clickLink(t('Islandora Repository')); |
|
$this->assertLink('Manage', 0, 'Manage tab is on current page.'); |
|
$this->clickLink(t('Manage')); |
|
$this->assertLink('Properties', 0, 'Properties tab is on current page.'); |
|
$this->assertNoLink('Datastreams', 'Datastreams tab is not on current page.'); |
|
$this->assertNoLink('Collection', 'Collection tab is not on current page.'); |
|
|
|
// Test permission FEDORA_VIEW_OBJECTS, FEDORA_ADD_DS. |
|
$user = $this->drupalCreateUser(array(FEDORA_VIEW_OBJECTS, FEDORA_ADD_DS)); |
|
$this->drupalLogin($user); |
|
$this->clickLink(t('Islandora Repository')); |
|
$this->assertLink('Manage', 0, 'Manage tab is on current page.'); |
|
$this->clickLink(t('Manage')); |
|
$this->assertLink('Datastreams', 0, 'Datastreams tab is on current page.'); |
|
$this->assertNoLink('Properties', 'Properties tab is not on current page.'); |
|
$this->assertNoLink('Collection', 'Collection tab is not on current page.'); |
|
|
|
// Test permission FEDORA_VIEW_OBJECTS, FEDORA_METADATA_EDIT. |
|
$user = $this->drupalCreateUser(array(FEDORA_VIEW_OBJECTS, FEDORA_METADATA_EDIT)); |
|
$this->drupalLogin($user); |
|
$this->clickLink(t('Islandora Repository')); |
|
$this->assertLink('Manage', 0, 'Manage tab is on current page.'); |
|
$this->clickLink(t('Manage')); |
|
$this->assertLink('Datastreams', 0, 'Datastreams tab is on current page.'); |
|
$this->assertNoLink('Properties', 'Properties tab is not on current page.'); |
|
$this->assertNoLink('Collection', 'Collection tab is not on current page.'); |
|
|
|
// Test permission FEDORA_VIEW_OBJECTS, FEDORA_PURGE. |
|
$user = $this->drupalCreateUser(array(FEDORA_VIEW_OBJECTS, FEDORA_PURGE)); |
|
$this->drupalLogin($user); |
|
$this->clickLink(t('Islandora Repository')); |
|
$this->assertLink('Manage', 0, 'Manage tab is on current page.'); |
|
$this->clickLink(t('Manage')); |
|
$this->assertLink('Datastreams', 0, 'Datastreams tab is on current page.'); |
|
$this->assertNoLink('Properties', 'Properties tab is not on current page.'); |
|
$this->assertNoLink('Collection', 'Collection tab is not on current page.'); |
|
} |
|
}
|
|
|