Skip to content

Commit

Permalink
Test cases : AUthentication - Auth, Forgot Password, Collections - Cr…
Browse files Browse the repository at this point in the history
…eate, Delete
  • Loading branch information
Rahul Patel committed May 6, 2019
1 parent a228a40 commit 81e14ac
Show file tree
Hide file tree
Showing 2 changed files with 211 additions and 0 deletions.
55 changes: 55 additions & 0 deletions tests/api/AuthTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?php
use Directus\Api\Routes\Auth as Auth;
use GuzzleHttp\Client;
class AuthTest extends PHPUnit_Framework_TestCase
{
private $http;

public function setUp()
{
$this->http = new GuzzleHttp\Client([
'base_uri' => 'http://localhost/directus-api/public/_/',
'exceptions' => false
]);
}

public function tearDown() {
$this->http = null;
}

public function testAuthentication()
{

$data = [
'form_params' => [
'email' => "admin@example.com",
'password' => "password"
]
];

$response = $this->http->request('POST', 'auth/authenticate', $data);

$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($response->getBody(true), true);
$this->assertArrayHasKey('token', $data['data']);
$this->assertTrue(!empty($data['data']['token']));

}

public function testForgotPassword()
{

$data = [
'form_params' => [
'email' => "admin@example.com"
]
];

$response = $this->http->request('POST', 'auth/password/request', $data);

$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($response->getBody(true), true);
$this->assertTrue($data['public']);

}
}
156 changes: 156 additions & 0 deletions tests/api/CollectionTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
<?php
use Directus\Api\Routes\Auth as Auth;
use GuzzleHttp\Client;
class CollectionTest extends PHPUnit_Framework_TestCase
{
private $http,$token;

public function setUp()
{
$this->http = new GuzzleHttp\Client([
'base_uri' => 'http://localhost/directus-api/public/_/',
'exceptions' => false
]);

//Get token
$data = [
'form_params' => [
'email' => "admin@example.com",
'password' => "password"
]
];

$response = $this->http->request('POST', 'auth/authenticate', $data);
$data = json_decode($response->getBody(true), true);
$this->token = $data['data']['token'];

}

public function tearDown() {
$this->http = null;
}

public function testCreateCollection()
{
$data = [
'headers' => ['Authorization' => 'bearer '.$this->token],
'form_params' => json_decode('{
"collection": "test111_collection",
"hidden": 0,
"fields": [{
"type": "integer",
"datatype": "INT",
"length": 15,
"field": "id",
"interface": "primary-key",
"auto_increment": true,
"primary_key": true,
"hidden_detail": true,
"hidden_browse": true
}, {
"type": "status",
"datatype": "VARCHAR",
"length": 20,
"field": "status",
"interface": "status",
"options": {
"status_mapping": {
"published": {
"name": "Published",
"text_color": "white",
"background_color": "accent",
"browse_subdued": false,
"browse_badge": true,
"soft_delete": false,
"published": true
},
"draft": {
"name": "Draft",
"text_color": "white",
"background_color": "blue-grey-200",
"browse_subdued": true,
"browse_badge": true,
"soft_delete": false,
"published": false
},
"deleted": {
"name": "Deleted",
"text_color": "white",
"background_color": "red",
"browse_subdued": true,
"browse_badge": true,
"soft_delete": true,
"published": false
}
}
}
}, {
"type": "sort",
"datatype": "INT",
"field": "sort",
"interface": "sort"
}, {
"type": "user_created",
"datatype": "INT",
"field": "created_by",
"interface": "user-created",
"options": {
"template": "{{first_name}} {{last_name}}",
"display": "both"
},
"readonly": true,
"hidden_detail": true,
"hidden_browse": true
}, {
"type": "datetime_created",
"datatype": "DATETIME",
"field": "created_on",
"interface": "datetime-created",
"readonly": true,
"hidden_detail": true,
"hidden_browse": true
}, {
"type": "user_updated",
"datatype": "INT",
"field": "modified_by",
"interface": "user-updated",
"options": {
"template": "{{first_name}} {{last_name}}",
"display": "both"
},
"readonly": true,
"hidden_detail": true,
"hidden_browse": true
}, {
"type": "datetime_updated",
"datatype": "DATETIME",
"field": "modified_on",
"interface": "datetime-updated",
"readonly": true,
"hidden_detail": true,
"hidden_browse": true
}]
}',true)
];

//echo "<pre>";
//print_r($data);exit;
$response = $this->http->request('POST', 'collections', $data);
$this->assertEquals(200, $response->getStatusCode());
$data = json_decode($response->getBody(true), true);
$this->assertArrayHasKey('collection', $data['data']);
$this->assertTrue(!empty($data['data']['collection']));
}

public function testDeleteCollection()
{
$data = [
'headers' => ['Authorization' => 'bearer '.$this->token],
];

$response = $this->http->request('DELETE', 'collections/test111_collection', $data);

$this->assertEquals(204, $response->getStatusCode());
}

}

0 comments on commit 81e14ac

Please sign in to comment.