Updating tests to work with new system. Partially complete.

This commit is contained in:
Lonnie Ezell 2018-05-15 22:30:09 -05:00
parent 206a45d281
commit b2b002dfae
No known key found for this signature in database
GPG Key ID: 8EB408F8D82F5002
33 changed files with 207 additions and 100 deletions

View File

@ -344,16 +344,15 @@ trait ResponseTrait
return $data;
}
// Determine correct response type through content negotiation
$config = new Format();
$format = $this->request->negotiate('media', $config->supportedResponseFormats, true);
$this->response->setContentType($format);
// if we don't have a formatter, make one
if ( ! isset($this->formatter))
{
$config = new Format();
// Determine correct response type through content negotiation
$format = $this->request->negotiate('media', $config->supportedResponseFormats, true);
$this->response->setContentType($format);
// if no formatter, use the default
$this->formatter = $config->getFormatter($format);
}

View File

@ -91,7 +91,7 @@ class AutoloadConfig
if (isset($_SERVER['CI_ENVIRONMENT']) && $_SERVER['CI_ENVIRONMENT'] === 'testing')
{
$this->psr4['Tests\Support'] = BASEPATH . '../tests/_support/';
$this->psr4['Tests\Support'] = BASEPATH . '../tests/_support';
}
/**

View File

@ -39,6 +39,7 @@ use CodeIgniter\Database\ConnectionInterface;
use CodeIgniter\Database\MigrationRunner;
use CodeIgniter\HTTP\URI;
use CodeIgniter\View\RendererInterface;
use Config\App;
/**
* Services Configuration file.
@ -547,7 +548,7 @@ class Services
if ( ! is_object($config))
{
$config = new \Config\App();
$config = new App();
}
return new \CodeIgniter\HTTP\IncomingRequest(

View File

@ -444,7 +444,7 @@ class Response extends Message implements ResponseInterface
$body = $formatter->format($body);
}
return $body;
return $body ?: null;
}
//--------------------------------------------------------------------

View File

@ -302,9 +302,53 @@ class FeatureResponse extends TestCase
*/
public function getJSON()
{
return $this->response->getJSON();
$response = $this->response->getJSON();
if (is_null($response))
{
$this->fail('The Response contained invalid JSON.');
}
return $response;
}
/**
*
*
* @param array $fragment
*
* @throws \Exception
*/
public function assertJSONFragment(array $fragment)
{
$json = json_decode($this->getJSON(), true);
$this->assertArraySubset($fragment, $json, false, "Response does not contain a matching JSON fragment.");
}
/**
* Asserts that the JSON exactly matches the passed in data.
* If the value being passed in is a string, it must be a json_encoded string.
*
* @param string|array $test
*
* @throws \Exception
*/
public function assertJSONExact($test)
{
$json = $this->getJSON();
if (is_array($test))
{
$config = new \Config\Format();
$formatter = $config->getFormatter('application/json');
$test = $formatter->format($test);
}
$this->assertJsonStringEqualsJsonString($test, $json, "Response does not contain matching JSON.");
}
//--------------------------------------------------------------------
// XML Methods
//--------------------------------------------------------------------

View File

@ -1,4 +1,6 @@
<?php namespace CodeIgniter\HTTP;
<?php namespace Tests\Support\HTTP;
use CodeIgniter\HTTP\IncomingRequest;
class MockIncomingRequest extends IncomingRequest
{

View File

@ -1,4 +1,6 @@
<?php namespace CodeIgniter\HTTP;
<?php namespace Tests\Support\HTTP;
use CodeIgniter\HTTP\Response;
/**
* Class MockResponse
@ -21,13 +23,13 @@ class MockResponse extends Response
foreach
(
[
'value',
'expire',
'domain',
'path',
'prefix',
'secure',
'httponly',
'value',
'expire',
'domain',
'path',
'prefix',
'secure',
'httponly',
'name'
] as $item
)
@ -43,16 +45,16 @@ class MockResponse extends Response
$_COOKIE[$prefix . $name] = $value;
/*
TODO: Find a way to use setcookie()
TODO: Find a way to use setcookie()
without it throwing header issues.
setcookie
(
$prefix.$name,
$value,
$expire,
$path,
$domain,
$secure,
$prefix.$name,
$value,
$expire,
$path,
$domain,
$secure,
$httponly
);
*/
@ -60,7 +62,7 @@ class MockResponse extends Response
//--------------------------------------------------------------------
public function hasCookie(string $name): bool
public function hasCookie(string $name, $value = null, string $prefix = ''): bool
{
return array_key_exists($name, $_COOKIE);
}
@ -69,15 +71,15 @@ class MockResponse extends Response
public function deleteCookie
(
$name,
string $domain = '',
string $path = '/',
$name,
string $domain = '',
string $path = '/',
string $prefix = ''
)
{
$COOKIE[$name] = null;
unset($COOKIE[$name]);
//set_cookie($name, '', '', $domain, $path, $prefix);
}

View File

@ -1,16 +1,14 @@
<?php namespace CodeIgniter\API;
use CodeIgniter\Controller;
use CodeIgniter\Format\JSONFormatter;
use CodeIgniter\Format\XMLFormatter;
use CodeIgniter\HTTP\MockIncomingRequest;
use CodeIgniter\HTTP\MockResponse;
use CodeIgniter\HTTP\URI;
use CodeIgniter\HTTP\UserAgent;
use Tests\Support\HTTP\MockResponse;
use CodeIgniter\Format\XMLFormatter;
use CodeIgniter\Format\JSONFormatter;
use Tests\Support\HTTP\MockIncomingRequest;
class ResponseTraitTest extends \CIUnitTestCase
{
protected $request;
protected $response;
@ -45,8 +43,11 @@ class ResponseTraitTest extends \CIUnitTestCase
$config = array_merge($config, $userConfig);
$this->request = new MockIncomingRequest((object) $config, new URI($uri), null, new UserAgent());
$this->response = new MockResponse((object) $config);
if (is_null($this->request))
{
$this->request = new MockIncomingRequest((object)$config, new URI($uri), null, new UserAgent());
$this->response = new MockResponse((object)$config);
}
// Insert headers into request.
$headers = [

View File

@ -1,6 +1,8 @@
<?php namespace CodeIgniter\Database\Live;
class AliasTest extends \CIDatabaseTestCase
use CodeIgniter\Test\CIDatabaseTestCase;
class AliasTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class CIDbTestCaseTest extends \CIDatabaseTestCase
class CIDbTestCaseTest extends CIDatabaseTestCase
{
protected $refresh = true;
@ -15,7 +17,7 @@ class CIDbTestCaseTest extends \CIDatabaseTestCase
$this->seeInDatabase('user', ['name' => 'Ricky', 'email' => 'sofine@example.com', 'country' => 'US']);
}
//--------------------------------------------------------------------
public function testDontSeeInDatabase()
@ -43,5 +45,5 @@ class CIDbTestCaseTest extends \CIDatabaseTestCase
//--------------------------------------------------------------------
}
}

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class CountTest extends \CIDatabaseTestCase
class CountTest extends CIDatabaseTestCase
{
protected $refresh = true;
@ -46,4 +48,4 @@ class CountTest extends \CIDatabaseTestCase
}
//--------------------------------------------------------------------
}
}

View File

@ -1,11 +1,12 @@
<?php namespace CodeIgniter\Database\Live;
use \CodeIgniter\Database\Exceptions\DatabaseException;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class DeleteTest extends \CIDatabaseTestCase
class DeleteTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,21 +1,23 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class EmptyTest extends \CIDatabaseTestCase
class EmptyTest extends CIDatabaseTestCase
{
protected $refresh = true;
protected $seed = 'CITestSeeder';
public function testEmpty()
public function testEmpty()
{
$this->db->table('misc')->emptyTable();
$this->assertEquals(0, $this->db->table('misc')->countAll());
}
//--------------------------------------------------------------------
public function testTruncate()
@ -26,4 +28,4 @@ class EmptyTest extends \CIDatabaseTestCase
}
//--------------------------------------------------------------------
}
}

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class ForgeTest extends \CIDatabaseTestCase
class ForgeTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class FromTest extends \CIDatabaseTestCase
class FromTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class GetTest extends \CIDatabaseTestCase
class GetTest extends CIDatabaseTestCase
{
protected $refresh = true;
@ -61,4 +63,4 @@ class GetTest extends \CIDatabaseTestCase
}
//--------------------------------------------------------------------
}
}

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class GroupTest extends \CIDatabaseTestCase
class GroupTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class IncrementTest extends \CIDatabaseTestCase
class IncrementTest extends CIDatabaseTestCase
{
protected $refresh = true;
@ -60,4 +62,4 @@ class IncrementTest extends \CIDatabaseTestCase
}
//--------------------------------------------------------------------
}
}

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class InsertTest extends \CIDatabaseTestCase
class InsertTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class JoinTest extends \CIDatabaseTestCase
class JoinTest extends CIDatabaseTestCase
{
protected $refresh = true;
@ -26,4 +28,4 @@ class JoinTest extends \CIDatabaseTestCase
//--------------------------------------------------------------------
}
}

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class LikeTest extends \CIDatabaseTestCase
class LikeTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class LimitTest extends \CIDatabaseTestCase
class LimitTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -2,6 +2,7 @@
use CodeIgniter\I18n\Time;
use CodeIgniter\Model;
use CodeIgniter\Test\CIDatabaseTestCase;
use CodeIgniter\Test\ReflectionHelper;
use Tests\Support\Models\EntityModel;
use Tests\Support\Models\EventModel;
@ -13,7 +14,7 @@ use Tests\Support\Models\ValidModel;
/**
* @group DatabaseLive
*/
class ModelTest extends \CIDatabaseTestCase
class ModelTest extends CIDatabaseTestCase
{
use ReflectionHelper;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class OrderTest extends \CIDatabaseTestCase
class OrderTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,11 +1,12 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Database\BasePreparedQuery;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class PreparedQueryTest extends \CIDatabaseTestCase
class PreparedQueryTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,11 +1,12 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Database\Query;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class PretendTest extends \CIDatabaseTestCase
class PretendTest extends CIDatabaseTestCase
{
public function tearDown()
{

View File

@ -1,10 +1,12 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class SelectTest extends \CIDatabaseTestCase
class SelectTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,11 +1,12 @@
<?php namespace CodeIgniter\Database\Live;
use \CodeIgniter\Database\Exceptions\DatabaseException;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class UpdateTest extends \CIDatabaseTestCase
class UpdateTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -1,9 +1,11 @@
<?php namespace CodeIgniter\Database\Live;
use CodeIgniter\Test\CIDatabaseTestCase;
/**
* @group DatabaseLive
*/
class WhereTest extends \CIDatabaseTestCase
class WhereTest extends CIDatabaseTestCase
{
protected $refresh = true;

View File

@ -14,9 +14,9 @@ class FiltersTest extends \CIUnitTestCase
protected $request;
protected $response;
public function __construct()
public function setUp()
{
parent::__construct();
parent::setUp();
$this->request = Services::request();
$this->response = Services::response();
@ -24,19 +24,6 @@ class FiltersTest extends \CIUnitTestCase
//--------------------------------------------------------------------
public function setUp()
{
}
//--------------------------------------------------------------------
public function tearDown()
{
}
//--------------------------------------------------------------------
public function testProcessMethodDetectsCLI()
{

View File

@ -2,15 +2,13 @@
class numberHelperTest extends \CIUnitTestCase
{
public function __construct(...$params)
{
parent::__construct(...$params);
public function setUp()
{
parent::setUp();
helper('number');
helper('number');
}
//--------------------------------------------------------------------
public function test_roman_number()
{
$this->assertEquals('XCVI', number_to_roman(96));

View File

@ -15,16 +15,10 @@ class PagerTest extends \CIUnitTestCase
protected $pager;
protected $config;
public function __construct()
{
parent::__construct();
helper('url');
}
//--------------------------------------------------------------------
public function setUp()
{
helper('url');
$_SERVER['HTTP_HOST'] = 'example.com';
$_GET = [];
$this->config = new Pager();

View File

@ -195,6 +195,48 @@ class FeatureResponseTest extends CIUnitTestCase
$this->assertEquals($formatter->format(['foo' => 'bar']), $this->feature->getXML());
}
public function testJsonFragment()
{
$this->getFeatureResponse([
'config' => [
'key-a', 'key-b'
]
]);
$this->feature->assertJSONFragment(['config' => ['key-a']]);
}
public function testJsonExact()
{
$data = [
'config' => [
'key-a', 'key-b'
]
];
$this->getFeatureResponse($data);
$this->feature->assertJSONExact($data);
}
public function testJsonExactString()
{
$data = [
'config' => [
'key-a', 'key-b'
]
];
$this->getFeatureResponse($data);
$config = new \Config\Format();
$formatter = $config->getFormatter('application/json');
$expected = $formatter->format($data);
$this->feature->assertJSONExact($expected);
}
protected function getFeatureResponse($body=null, array $responseOptions = null, array $headers = null)
{
$this->response = new Response(new \Config\App());