APIRestTest::testGetItems PHP Method

testGetItems() public method

public testGetItems ( $session_token )
    public function testGetItems($session_token)
    {
        // test retrieve all users
        $res = $this->doHttpRequest('GET', 'User/', ['headers' => ['Session-Token' => $session_token], 'query' => ['expand_dropdowns' => true]]);
        $this->assertNotEquals(null, $res, $this->last_error);
        $this->assertEquals(200, $res->getStatusCode());
        $body = $res->getBody();
        $data = json_decode($body, true);
        $this->assertGreaterThanOrEqual(4, count($data));
        $this->assertArrayHasKey('id', $data[0]);
        $this->assertArrayHasKey('name', $data[0]);
        $this->assertArrayNotHasKey('password', $data[0]);
        $this->assertArrayHasKey('is_active', $data[0]);
        $this->assertFalse(is_numeric($data[0]['entities_id']));
        // for expand_dropdowns
        // test retrieve partial users
        $res = $this->doHttpRequest('GET', 'User/', ['headers' => ['Session-Token' => $session_token], 'query' => ['range' => '0-1', 'expand_dropdowns' => true]]);
        $this->assertNotEquals(null, $res, $this->last_error);
        $this->assertEquals(206, $res->getStatusCode());
        $body = $res->getBody();
        $data = json_decode($body, true);
        $this->assertEquals(2, count($data));
        $this->assertArrayHasKey('id', $data[0]);
        $this->assertArrayHasKey('name', $data[0]);
        $this->assertArrayNotHasKey('password', $data[0]);
        $this->assertArrayHasKey('is_active', $data[0]);
        $this->assertFalse(is_numeric($data[0]['entities_id']));
        // for expand_dropdowns
        // test retrieve 1 user with a text filter
        $res = $this->doHttpRequest('GET', 'User/', ['headers' => ['Session-Token' => $session_token], 'query' => ['searchText' => array('name' => 'gl')]]);
        $this->assertNotEquals(null, $res, $this->last_error);
        $this->assertEquals(200, $res->getStatusCode());
        $body = $res->getBody();
        $data = json_decode($body, true);
        $this->assertEquals(1, count($data));
        $this->assertArrayHasKey('id', $data[0]);
        $this->assertArrayHasKey('name', $data[0]);
        $this->assertEquals('glpi', $data[0]['name']);
        // test retrieve invalid range of users
        try {
            $res = $this->doHttpRequest('GET', 'User/', ['headers' => ['Session-Token' => $session_token], 'query' => ['range' => '100-105', 'expand_dropdowns' => true]]);
        } catch (ClientException $e) {
            $response = $e->getResponse();
            $this->assertEquals(400, $response->getStatusCode());
        }
        // Test only_id param
        $res = $this->doHttpRequest('GET', 'User/', ['headers' => ['Session-Token' => $session_token], 'query' => ['only_id' => true]]);
        $this->assertNotEquals(null, $res, $this->last_error);
        $this->assertEquals(200, $res->getStatusCode());
        $body = $res->getBody();
        $data = json_decode($body, true);
        $this->assertNotEquals(false, $data);
        $this->assertGreaterThanOrEqual(4, count($data));
        $this->assertArrayHasKey('id', $data[0]);
        $this->assertArrayNotHasKey('name', $data[0]);
        $this->assertArrayNotHasKey('password', $data[0]);
        $this->assertArrayNotHasKey('is_active', $data[0]);
        // test retrieve all config
        $res = $this->doHttpRequest('GET', 'Config/', ['headers' => ['Session-Token' => $session_token], 'query' => ['expand_dropdowns' => true]]);
        $this->assertNotEquals(null, $res, $this->last_error);
        $this->assertEquals(200, $res->getStatusCode());
        $body = $res->getBody();
        $data = json_decode($body, true);
        foreach ($data as $config_row) {
            $this->assertNotEquals('smtp_passwd', $config_row['name']);
            $this->assertNotEquals('proxy_passwd', $config_row['name']);
        }
    }