summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/ProjectTest.php115
1 files changed, 98 insertions, 17 deletions
diff --git a/tests/ProjectTest.php b/tests/ProjectTest.php
index 33a35168..e6725b99 100644
--- a/tests/ProjectTest.php
+++ b/tests/ProjectTest.php
@@ -23,47 +23,128 @@ class ProjectTest extends PHPUnit_Framework_TestCase
$this->assertNotEmpty($p->getById(1));
}
- public function testAllowUsers()
+ public function testAllowEverybody()
{
+ // We create a regular user
+ $user = new User;
+ $user->create(array('username' => 'unittest', 'password' => 'unittest'));
+
$p = new Project;
+ $this->assertEmpty($p->getAllowedUsers(1)); // Nobody is specified for the given project
+ $this->assertTrue($p->isUserAllowed(1, 1)); // Everybody should be allowed
+ $this->assertTrue($p->isUserAllowed(1, 2)); // Everybody should be allowed
+ }
- // Everybody is allowed
- $this->assertEmpty($p->getAllowedUsers(1));
- $this->assertTrue($p->isUserAllowed(1, 1));
+ public function testAllowUser()
+ {
+ $p = new Project;
- // Allow one user
+ // We allow the admin user
$this->assertTrue($p->allowUser(1, 1));
+
+ // Non-existant project
$this->assertFalse($p->allowUser(50, 1));
+
+ // Non-existant user
$this->assertFalse($p->allowUser(1, 50));
+
+ // Our admin user should be allowed
$this->assertEquals(array('1' => 'admin'), $p->getAllowedUsers(1));
$this->assertTrue($p->isUserAllowed(1, 1));
- // Disallow one user
+ // Our regular user should be forbidden
+ $this->assertFalse($p->isUserAllowed(1, 2));
+ }
+
+ public function testRevokeUser()
+ {
+ $p = new Project;
+
+ // We revoke our admin user
$this->assertTrue($p->revokeUser(1, 1));
+
+ // We should have nobody in the users list
$this->assertEmpty($p->getAllowedUsers(1));
- $this->assertTrue($p->isUserAllowed(1, 1));
- // Allow/disallow many users
- $user = new User;
- $user->create(array('username' => 'unittest', 'password' => 'unittest'));
+ // Our admin user and our regular user should be allowed
+ $this->assertTrue($p->isUserAllowed(1, 1));
+ $this->assertTrue($p->isUserAllowed(1, 2));
- $this->assertTrue($p->allowUser(1, 1));
+ // We allow only the regular user
$this->assertTrue($p->allowUser(1, 2));
+ // All users should be allowed (admin and regular)
+ $this->assertTrue($p->isUserAllowed(1, 1));
+ $this->assertTrue($p->isUserAllowed(1, 2));
+
+ // However, we should have only our regular user in the list
+ $this->assertEquals(array('2' => 'unittest'), $p->getAllowedUsers(1));
+
+ // We allow our admin, we should have both in the list
+ $this->assertTrue($p->allowUser(1, 1));
$this->assertEquals(array('1' => 'admin', '2' => 'unittest'), $p->getAllowedUsers(1));
$this->assertTrue($p->isUserAllowed(1, 1));
$this->assertTrue($p->isUserAllowed(1, 2));
+ // We revoke the regular user
+ $this->assertTrue($p->revokeUser(1, 2));
+
+ // Only admin should be allowed
+ $this->assertTrue($p->isUserAllowed(1, 1));
+ $this->assertFalse($p->isUserAllowed(1, 2));
+
+ // We should have only admin in the list
+ $this->assertEquals(array('1' => 'admin'), $p->getAllowedUsers(1));
+
+ // We revoke the admin user
$this->assertTrue($p->revokeUser(1, 1));
+ $this->assertEmpty($p->getAllowedUsers(1));
- $this->assertEquals(array('2' => 'unittest'), $p->getAllowedUsers(1));
- $this->assertTrue($p->isUserAllowed(1, 1)); // has admin priviledges
+ // Everybody should be allowed again
+ $this->assertTrue($p->isUserAllowed(1, 1));
$this->assertTrue($p->isUserAllowed(1, 2));
-
- // Check if revoked regular user is not allowed
+ }
+
+ public function testUsersList()
+ {
+ $p = new Project;
+
+ // No restriction, we should have everybody
+ $this->assertEquals(
+ array('Unassigned', 'admin', 'unittest'),
+ $p->getUsersList(1)
+ );
+
+ // We allow only the regular user
+ $this->assertTrue($p->allowUser(1, 2));
+
+ $this->assertEquals(
+ array(0 => 'Unassigned', 2 => 'unittest'),
+ $p->getUsersList(1)
+ );
+
+ // We allow the admin user
$this->assertTrue($p->allowUser(1, 1));
+
+ $this->assertEquals(
+ array(0 => 'Unassigned', 1 => 'admin', 2 => 'unittest'),
+ $p->getUsersList(1)
+ );
+
+ // We revoke only the regular user
$this->assertTrue($p->revokeUser(1, 2));
- $this->assertEquals(array('1' => 'admin'), $p->getAllowedUsers(1));
- $this->assertFalse($p->isUserAllowed(1, 2)); // regulat user is not allowed
+
+ $this->assertEquals(
+ array(0 => 'Unassigned', 1 => 'admin'),
+ $p->getUsersList(1)
+ );
+
+ // We revoke only the admin user, we should have everybody
+ $this->assertTrue($p->revokeUser(1, 1));
+
+ $this->assertEquals(
+ array(0 => 'Unassigned', 1 => 'admin', 2 => 'unittest'),
+ $p->getUsersList(1)
+ );
}
}