assertEquals($permDesc, $permDesc2); $this->assertNotEquals($permDesc, $permDesc3); } public function testFromStandalonePermission() { // Create a stub for global function t() $t = $this->getFunctionMock('Zotlabs\Lib', 't'); $t->expects($this->atLeastOnce())->willReturnCallback( function ($string) { return $string; } ); // Create a mock for global function logger() $this->getFunctionMock('Zotlabs\Lib', 'logger'); $permDescUnknown = PermissionDescription::fromStandalonePermission(-1); $permDescSelf = PermissionDescription::fromStandalonePermission(0); $this->assertNull($permDescUnknown); $this->assertNotNull($permDescSelf); } /** * Test fetching permission descriptions for the current channel. */ public function testFromGlobalPermission() { // Initiate the global App with a channel_id \App::$channel = array( 'channel_id' => 42, ); // Make sure the requested permission is set for this channel. \Zotlabs\Access\PermissionLimits::Set( \App::$channel['channel_id'], 'view_profile', PERMS_NETWORK ); \Zotlabs\Access\PermissionLimits::Set( \App::$channel['channel_id'], 'write_storage', PERMS_SPECIFIC ); // Set an invalid(?) permission \Zotlabs\Access\PermissionLimits::Set( \App::$channel['channel_id'], 'view_wiki', 1337 ); $permDesc = PermissionDescription::fromGlobalPermission('view_profile'); $this->assertEquals( 'Anybody in the Hubzilla network', $permDesc->get_permission_description() ); $permDesc = PermissionDescription::fromGlobalPermission('write_storage'); $this->assertEquals( 'Only connections I specifically allow', $permDesc->get_permission_description() ); // Permissions we don't know about will get the fallback description. $permDesc = PermissionDescription::fromGlobalPermission('view_wiki'); $this->assertEquals( 'Visible to your default audience', $permDesc->get_permission_description() ); } public function testGetPermissionDescription() { // Create a stub for global function t() $t = $this->getFunctionMock('Zotlabs\Lib', 't'); $t->expects($this->atLeastOnce())->willReturnCallback( function ($string) { return $string; } ); // Create a mock for global function logger() $this->getFunctionMock('Zotlabs\Lib', 'logger'); // Create a stub for the PermissionDescription class $stub = $this->createMock(PermissionDescription::class); $stub->method('get_permission_description') ->will($this->returnArgument(0)); $permDescSelf = PermissionDescription::fromStandalonePermission(0); $this->assertInstanceOf(PermissionDescription::class, $permDescSelf); $this->assertEquals($permDescSelf->get_permission_description(), 'Only me'); $permDescPublic = PermissionDescription::fromStandalonePermission(PERMS_PUBLIC); $this->assertEquals($permDescPublic->get_permission_description(), 'Public'); } }