Fixes unit tests so they pass

This commit is contained in:
Samuel Georges 2015-03-02 19:01:30 +11:00
parent f0bc711e0f
commit 83b54c043c
6 changed files with 76 additions and 48 deletions

View File

@ -87,4 +87,26 @@ return [
'convertLineEndings' => true, 'convertLineEndings' => true,
/*
|--------------------------------------------------------------------------
| Local plugins path
|--------------------------------------------------------------------------
|
| Specifies the absolute local plugins path.
|
*/
'pluginsPathLocal' => base_path().'/tests/fixtures/plugins',
/*
|--------------------------------------------------------------------------
| Local themes path
|--------------------------------------------------------------------------
|
| Specifies the absolute local themes path.
|
*/
'themesPathLocal' => base_path().'/tests/fixtures/themes',
]; ];

View File

@ -1,13 +0,0 @@
<?xml version="1.0" encoding="UTF-8" ?>
<phpdoc>
<parser>
<target>docs</target>
</parser>
<transformer>
<target>docs</target>
</transformer>
<files>
<directory>modules</directory>
<directory>vendor/october/rain/src/October</directory>
</files>
</phpdoc>

View File

@ -14,10 +14,7 @@ class TestCase extends Illuminate\Foundation\Testing\TestCase
$app->make('Illuminate\Contracts\Console\Kernel')->bootstrap(); $app->make('Illuminate\Contracts\Console\Kernel')->bootstrap();
$app['cache']->setDefaultDriver('array'); $app['cache']->setDefaultDriver('array');
$app->setLocale('en'); $app->setLocale('en');
$app->setPluginsPath(base_path().'/tests/fixtures/plugins');
$app->setThemesPath(base_path().'/tests/fixtures/themes');
return $app; return $app;
} }

View File

@ -144,61 +144,67 @@ class ControllerTest extends TestCase
return $requestMock; return $requestMock;
} }
/**
* @expectedException Cms\Classes\CmsException
* @expectedExceptionMessage AJAX handler 'onNoHandler' was not found.
*/
public function testAjaxHandlerNotFound() public function testAjaxHandlerNotFound()
{ {
Request::swap($this->configAjaxRequestMock('onNoHandler', '')); Request::swap($this->configAjaxRequestMock('onNoHandler', ''));
$theme = Theme::load('test'); $theme = Theme::load('test');
$controller = new Controller($theme); $controller = new Controller($theme);
$controller->run('/ajax-test');
$response = $controller->run('/ajax-test'); //
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response); // This was the old approach, can remove this comment block if year >= 2017
//
$this->assertInternalType('string', $response->getOriginalContent()); // $response = $controller->run('/ajax-test');
$this->assertEquals(500, $response->getStatusCode()); // $this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
$this->assertEquals("AJAX handler 'onNoHandler' was not found.", $response->getOriginalContent());
// $this->assertInternalType('string', $response->getOriginalContent());
// $this->assertEquals(500, $response->getStatusCode());
// $this->assertEquals("AJAX handler 'onNoHandler' was not found.", $response->getOriginalContent());
} }
/**
* @expectedException Cms\Classes\CmsException
* @expectedExceptionMessage Invalid AJAX handler name: delete.
*/
public function testAjaxInvalidHandlerName() public function testAjaxInvalidHandlerName()
{ {
Request::swap($this->configAjaxRequestMock('delete')); Request::swap($this->configAjaxRequestMock('delete'));
$theme = Theme::load('test'); $theme = Theme::load('test');
$controller = new Controller($theme); $controller = new Controller($theme);
$response = $controller->run('/ajax-test'); $controller->run('/ajax-test');
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
$this->assertInternalType('string', $response->getOriginalContent());
$this->assertEquals(500, $response->getStatusCode());
$this->assertEquals('Invalid AJAX handler name: delete.', $response->getOriginalContent());
} }
/**
* @expectedException Cms\Classes\CmsException
* @expectedExceptionMessage Invalid partial name: p:artial.
*/
public function testAjaxInvalidPartial() public function testAjaxInvalidPartial()
{ {
Request::swap($this->configAjaxRequestMock('onTest', 'p:artial')); Request::swap($this->configAjaxRequestMock('onTest', 'p:artial'));
$theme = Theme::load('test'); $theme = Theme::load('test');
$controller = new Controller($theme); $controller = new Controller($theme);
$response = $controller->run('/ajax-test'); $controller->run('/ajax-test');
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
$this->assertInternalType('string', $response->getOriginalContent());
$this->assertEquals(500, $response->getStatusCode());
$this->assertEquals('Invalid partial name: p:artial.', $response->getOriginalContent());
} }
/**
* @expectedException Cms\Classes\CmsException
* @expectedExceptionMessage The partial 'partial' is not found.
*/
public function testAjaxPartialNotFound() public function testAjaxPartialNotFound()
{ {
Request::swap($this->configAjaxRequestMock('onTest', 'partial')); Request::swap($this->configAjaxRequestMock('onTest', 'partial'));
$theme = Theme::load('test'); $theme = Theme::load('test');
$controller = new Controller($theme); $controller = new Controller($theme);
$response = $controller->run('/ajax-test'); $controller->run('/ajax-test');
$this->assertInstanceOf('Symfony\Component\HttpFoundation\Response', $response);
$this->assertInternalType('string', $response->getOriginalContent());
$this->assertEquals(500, $response->getStatusCode());
$this->assertEquals("The partial 'partial' is not found.", $response->getOriginalContent());
} }
public function testPageAjax() public function testPageAjax()
@ -332,10 +338,10 @@ ESC;
$controller = new Controller($theme); $controller = new Controller($theme);
$url = $controller->themeUrl(); $url = $controller->themeUrl();
$this->assertEquals('/tests/fixtures/themes/test', $url); $this->assertEquals('http://localhost/themes/test', $url);
$url = $controller->themeUrl('foo/bar.css'); $url = $controller->themeUrl('foo/bar.css');
$this->assertEquals('/tests/fixtures/themes/test/foo/bar.css', $url); $this->assertEquals('http://localhost/themes/test/foo/bar.css', $url);
// //
// These tests seem to bear different results // These tests seem to bear different results

View File

@ -15,4 +15,9 @@
<directory>./</directory> <directory>./</directory>
</testsuite> </testsuite>
</testsuites> </testsuites>
<php>
<env name="APP_ENV" value="testing" />
<env name="CACHE_DRIVER" value="array" />
<env name="SESSION_DRIVER" value="array" />
</php>
</phpunit> </phpunit>

View File

@ -70,13 +70,24 @@ class CombineAssetsTest extends TestCase
public function testCombine() public function testCombine()
{ {
$combiner = CombineAssets::instance(); $combiner = CombineAssets::instance();
$url = $combiner->combine(['assets/css/style1.css', 'assets/css/style2.css'], '/tests/fixtures/themes/test');
$this->assertNotNull($url);
$this->assertRegExp('/\w+[-]\d+/i', $url); // Must contain hash-number
$url = $combiner->combine(['assets/js/script1.js', 'assets/js/script2.js'], '/tests/fixtures/themes/test'); $url = $combiner->combine([
'assets/css/style1.css',
'assets/css/style2.css'
],
base_path().'/tests/fixtures/themes/test'
);
$this->assertNotNull($url); $this->assertNotNull($url);
$this->assertRegExp('/\w+[-]\d+/i', $url); // Must contain hash-number $this->assertRegExp('/\w+[-]\d+/i', $url); // Must contain hash-number
$url = $combiner->combine([
'assets/js/script1.js',
'assets/js/script2.js'
],
base_path().'/tests/fixtures/themes/test'
);
$this->assertNotNull($url);
$this->assertRegExp('/\w+[-]\d+/i', $url); // Must contain hash-number
} }
public function testPrepareRequest() public function testPrepareRequest()
@ -130,10 +141,10 @@ class CombineAssetsTest extends TestCase
public function testMakeCacheId() public function testMakeCacheId()
{ {
$sampleResources = ['assets/css/style1.css', 'assets/css/style2.css']; $sampleResources = ['assets/css/style1.css', 'assets/css/style2.css'];
$samplePath = '/tests/fixtures/Cms/themes/test'; $samplePath = base_path().'/tests/fixtures/cms/themes/test';
$combiner = CombineAssets::instance(); $combiner = CombineAssets::instance();
self::setProtectedProperty($combiner, 'path', $samplePath); self::setProtectedProperty($combiner, 'localPath', $samplePath);
$value = self::callProtectedMethod($combiner, 'makeCacheId', [$sampleResources]); $value = self::callProtectedMethod($combiner, 'makeCacheId', [$sampleResources]);
$this->assertEquals(md5($samplePath.implode('|', $sampleResources)), $value); $this->assertEquals(md5($samplePath.implode('|', $sampleResources)), $value);