From c6097bfc5f10fa61dc1f7f49e6adcc661fb8bf5f Mon Sep 17 00:00:00 2001 From: Marcos Zuriaga Date: Sat, 8 Oct 2016 17:32:07 +0200 Subject: [PATCH] Add permissions entity backend uint tests --- .../lib/Utility/PermissionsEntityTest.php | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 tests/unit/lib/Utility/PermissionsEntityTest.php diff --git a/tests/unit/lib/Utility/PermissionsEntityTest.php b/tests/unit/lib/Utility/PermissionsEntityTest.php new file mode 100644 index 00000000..c9e52735 --- /dev/null +++ b/tests/unit/lib/Utility/PermissionsEntityTest.php @@ -0,0 +1,74 @@ +permission = new PermissionEntity(); + $this->permission->permissions = 0; + } + + public function testPermissionConstants(){ + $this->assertTrue(PermissionEntity::READ === 0b00000001); + $this->assertTrue(PermissionEntity::WRITE === 0b00000010); + $this->assertTrue(PermissionEntity::FILES === 0b00000100); + $this->assertTrue(PermissionEntity::HISTORY === 0b00001000); + $this->assertTrue(PermissionEntity::OWNER === 0b10000000); + } + + public function testAddPermission(){ + // Start with an empty permission + $this->permission->setPermissions(0); + $this->assertTrue($this->permission->getPermissions() === 0); + + // Add read permission + $this->permission->addPermission(PermissionEntity::READ); + $this->assertTrue($this->permission->getPermissions() === PermissionEntity::READ); + + // Try adding another permission and check if it has both + $this->permission->addPermission(PermissionEntity::FILES); + $this->assertTrue($this->permission->getPermissions() === (PermissionEntity::READ | PermissionEntity::FILES)); + } + + public function testRemovePermission(){ + $base_permissions = PermissionEntity::READ | PermissionEntity::WRITE | PermissionEntity::HISTORY; + + // Start with a set of permissions + $this->permission->setPermissions($base_permissions); + $this->assertTrue($this->permission->getPermissions() === $base_permissions); + + // Remove write permission + $expected_permissions = PermissionEntity::READ | PermissionEntity::HISTORY; + $this->permission->removePermission(PermissionEntity::WRITE); + $this->assertTrue($this->permission->getPermissions() === $expected_permissions); + + // Remove history permission + $expected_permissions = PermissionEntity::READ; + $this->permission->removePermission(PermissionEntity::HISTORY); + $this->assertTrue($this->permission->getPermissions() === $expected_permissions); + } + + public function testHasPermission() { + $base_permissions = PermissionEntity::READ | PermissionEntity::WRITE | PermissionEntity::HISTORY; + + // Start with a set of permissions + $this->permission->setPermissions($base_permissions); + $this->assertTrue($this->permission->getPermissions() === $base_permissions); + + // Test some conditions + $this->assertFalse($this->permission->hasPermission(PermissionEntity::OWNER)); + $this->assertTrue($this->permission->hasPermission(PermissionEntity::READ)); + $this->assertTrue($this->permission->hasPermission(PermissionEntity::HISTORY)); + } +} \ No newline at end of file