diff options
Diffstat (limited to 'tests/ProjectTest.php')
-rw-r--r-- | tests/ProjectTest.php | 115 |
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) + ); } } |