51 lines
1.3 KiB
PHP
51 lines
1.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Test API calls and authentication, etc
|
|
*/
|
|
class ApiTest extends TestCase
|
|
{
|
|
public function setUp()
|
|
{
|
|
parent::setUp();
|
|
$this->addData('base');
|
|
}
|
|
|
|
/**
|
|
* Ensure authentication against the API works
|
|
*/
|
|
public function testApiAuthentication()
|
|
{
|
|
$uri = '/api/airports/kjfk';
|
|
|
|
// Missing auth header
|
|
$this->get($uri)->assertStatus(401);
|
|
|
|
// Test invalid API key
|
|
$this->withHeaders(['Authorization' => 'invalidKey'])->get($uri)
|
|
->assertStatus(401);
|
|
|
|
// Test upper/lower case of Authorization header, etc
|
|
$this->withHeaders(self::$auth_headers)->get($uri)
|
|
->assertStatus(200)
|
|
->assertJson(['icao' => 'KJFK'], true);
|
|
|
|
$this->withHeaders(['AUTHORIZATION' => 'testapikey'])->get($uri)
|
|
->assertStatus(200)
|
|
->assertJson(['icao' => 'KJFK'], true);
|
|
}
|
|
|
|
/**
|
|
* Make sure the airport data is returned
|
|
*/
|
|
public function testAirportRequest()
|
|
{
|
|
$this->withHeaders(self::$auth_headers)->get('/api/airports/KJFK')
|
|
->assertStatus(200)
|
|
->assertJson(['icao' => 'KJFK'], true);
|
|
|
|
$this->withHeaders(self::$auth_headers)->get('/api/airports/UNK')
|
|
->assertStatus(404);
|
|
}
|
|
}
|