assertUrlIsSecured('/api/ping'); } public function testIsSecureVersion(): void { $this->assertUrlIsSecured('/api/version'); } public function testIsSecurePlugins(): void { $this->assertUrlIsSecured('/api/plugins'); } public function testPing(): void { $client = $this->getClientForAuthenticatedUser(User::ROLE_USER); $this->assertAccessIsGranted($client, '/api/ping'); $result = json_decode($client->getResponse()->getContent(), true); self::assertIsArray($result); self::assertEquals(['message' => 'pong'], $result); } public function testVersion(): void { $client = $this->getClientForAuthenticatedUser(User::ROLE_USER); $this->assertAccessIsGranted($client, '/api/version'); $result = json_decode($client->getResponse()->getContent(), true); self::assertIsArray($result); self::assertArrayHasKey('version', $result); self::assertArrayHasKey('versionId', $result); self::assertArrayHasKey('copyright', $result); self::assertSame(Constants::VERSION, $result['version']); self::assertSame(Constants::VERSION_ID, $result['versionId']); self::assertEquals( 'Kimai ' . Constants::VERSION . ' by Kevin Papst.', $result['copyright'] ); } public function testPlugins(): void { $client = $this->getClientForAuthenticatedUser(User::ROLE_USER); $this->assertAccessIsGranted($client, '/api/plugins'); $result = json_decode($client->getResponse()->getContent(), true); self::assertIsArray($result); // no asserts, as plugins are disabled in tests } }