Skip to content

Commit

Permalink
Merge pull request #172 from ARCANEDEV/testing
Browse files Browse the repository at this point in the history
Updating the tests
  • Loading branch information
arcanedev-maroc committed Sep 20, 2017
2 parents 5aacb3d + 82ac5ed commit 58dc7e0
Show file tree
Hide file tree
Showing 4 changed files with 63 additions and 70 deletions.
5 changes: 1 addition & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,9 @@ matrix:
allow_failures:
- php: nightly

env:
- TESTBENCH_VERSION=3.5.*

before_script:
- travis_retry composer self-update
- travis_retry composer require --prefer-source --no-interaction --dev "orchestra/testbench-browser-kit:${TESTBENCH_VERSION}"
- travis_retry composer install --prefer-source --no-interaction

script:
- composer validate
Expand Down
8 changes: 3 additions & 5 deletions composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,9 @@
"arcanedev/support": "~4.1"
},
"require-dev": {
"phpunit/phpunit": "~6.0",
"phpunit/phpcov": "~4.0"
"orchestra/testbench": "~3.5.0",
"phpunit/phpunit": "~6.0",
"phpunit/phpcov": "~4.0"
},
"autoload": {
"psr-4": {
Expand All @@ -33,9 +34,6 @@
"Arcanedev\\LogViewer\\Tests\\": "tests/"
}
},
"scripts": {
"testbench": "composer require --dev \"orchestra/testbench-browser-kit=~3.0\""
},
"extra": {
"laravel": {
"providers": [
Expand Down
118 changes: 58 additions & 60 deletions tests/RoutesTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ class RoutesTest extends TestCase
/** @test */
public function it_can_see_dashboard_page()
{
$response = $this->route('GET', 'log-viewer::dashboard');
$response = $this->get(route('log-viewer::dashboard'));

$response->isOk();
$response->assertSuccessful();

$this->assertContains(
'<h1 class="page-header">Dashboard</h1>',
Expand All @@ -30,9 +30,9 @@ public function it_can_see_dashboard_page()
/** @test */
public function it_can_see_logs_page()
{
$response = $this->route('GET', 'log-viewer::logs.list');
$response = $this->get(route('log-viewer::logs.list'));

$this->assertResponseOk();
$response->assertSuccessful();
$this->assertContains(
'<h1 class="page-header">Logs</h1>',
$response->getContent()
Expand All @@ -44,9 +44,9 @@ public function it_can_see_logs_page()
public function it_can_show_a_log_page()
{
$date = '2015-01-01';
$response = $this->route('GET', 'log-viewer::logs.show', [$date]);
$response = $this->get(route('log-viewer::logs.show', [$date]));

$this->assertResponseOk();
$response->assertSuccessful();
$this->assertContains(
'<h1 class="page-header">Log [' . $date . ']</h1>',
$response->getContent()
Expand All @@ -59,22 +59,43 @@ public function it_can_see_a_filtered_log_entries_page()
{
$date = '2015-01-01';
$level = 'error';
$response = $this->route('GET', 'log-viewer::logs.filter', [$date, $level]);
$response = $this->get(route('log-viewer::logs.filter', [$date, $level]));

$this->assertResponseOk();
$response->assertSuccessful();
$this->assertContains(
'<h1 class="page-header">Log [' . $date . ']</h1>',
'<h1 class="page-header">Log ['.$date.']</h1>',
$response->getContent()
);
// TODO: Add more assertion => log entries is filtered by a level
}

/** @test */
public function it_can_search_if_log_entries_contains_same_header_page()
{
$date = '2015-01-01';
$level = 'all';
$query = 'This is an error log.';
$response = $this->get(route('log-viewer::logs.search', compact('date', 'level', 'query')));

$response->assertSuccessful();

/** @var \Illuminate\View\View $view */
$view = $response->getOriginalContent();

$this->assertArrayHasKey('entries', $view->getData());

/** @var \Illuminate\Pagination\LengthAwarePaginator $entries */
$entries = $view->getData()['entries'];

$this->assertCount(1, $entries);
}

/** @test */
public function it_must_redirect_on_all_level()
{
$date = '2015-01-01';
$level = 'all';
$response = $this->route('GET', 'log-viewer::logs.filter', [$date, $level]);
$response = $this->get(route('log-viewer::logs.filter', [$date, $level]));

$this->assertTrue($response->isRedirection());
$this->assertEquals(302, $response->getStatusCode());
Expand All @@ -85,17 +106,19 @@ public function it_must_redirect_on_all_level()
public function it_can_download_a_log_page()
{
$date = '2015-01-01';
/** @var \Symfony\Component\HttpFoundation\BinaryFileResponse $response */
$response = $this->route('GET', 'log-viewer::logs.download', [$date]);
$response = $this->get(route('log-viewer::logs.download', [$date]));

$response->assertSuccessful();

/** @var \Symfony\Component\HttpFoundation\BinaryFileResponse $base */
$base = $response->baseResponse;

$this->assertResponseOk();
$this->assertInstanceOf(
\Symfony\Component\HttpFoundation\BinaryFileResponse::class,
$response
\Symfony\Component\HttpFoundation\BinaryFileResponse::class, $base
);
$this->assertEquals(
"laravel-$date.log",
$response->getFile()->getFilename()
$base->getFile()->getFilename()
);
}

Expand All @@ -108,49 +131,33 @@ public function it_can_delete_a_log()

$server = ['HTTP_X-Requested-With' => 'XMLHttpRequest'];

/** @var \Illuminate\Http\JsonResponse $response */
$response = $this->route('DELETE', 'log-viewer::logs.delete', compact('date'), [], [], [], $server);
$data = $response->getData(true);

$this->assertResponseOk();
$this->assertArrayHasKey('result', $data);
$this->assertEquals($data['result'], 'success');
$response = $this->call('DELETE', route('log-viewer::logs.delete', compact('date')), [], [], [], $server);
$response->assertExactJson(['result' => 'success']);
}

/** @test */
public function it_must_throw_log_not_found_exception_on_show()
{
try {
$this->route('GET', 'log-viewer::logs.show', ['0000-00-00']);
$response = $this->get(route('log-viewer::logs.show', ['0000-00-00']));

$code = $this->response->getStatusCode();
$message = $this->response->exception->getMessage();
$code = $response->getStatusCode();
$message = $response->exception->getMessage();

$this->assertInstanceOf(
\Symfony\Component\HttpKernel\Exception\HttpException::class,
$this->response->exception
);
}
catch (\Symfony\Component\HttpKernel\Exception\HttpException $e) {
$code = $e->getStatusCode();
$message = $e->getMessage();
}
$this->assertInstanceOf(
\Symfony\Component\HttpKernel\Exception\HttpException::class,
$response->exception
);

$this->assertSame(404, $code);
$this->assertSame('Log not found in this date [0000-00-00]', $message);
}

/**
* @test
*
* @expectedException
*/
/** @test */
public function it_must_throw_log_not_found_exception_on_delete()
{
try {
$response = $this->route('DELETE', 'log-viewer::logs.delete', ['0000-00-00'], [], [], [], ['HTTP_X-Requested-With' => 'XMLHttpRequest']);

$this->assertSame(['message' => 'Server Error'], json_decode($response->content(), true));
$response = $this->call('DELETE', route('log-viewer::logs.delete', ['0000-00-00']), [], [], [], ['HTTP_X-Requested-With' => 'XMLHttpRequest']);
$response->assertExactJson(['message' => 'Server Error']);
}
catch(\Exception $exception) {
$this->assertInstanceOf(\Arcanedev\LogViewer\Exceptions\FilesystemException::class, $exception);
Expand All @@ -161,23 +168,14 @@ public function it_must_throw_log_not_found_exception_on_delete()
/** @test */
public function it_must_throw_method_not_allowed_on_delete()
{
try {
$this->route('DELETE', 'log-viewer::logs.delete');
$response = $this->delete(route('log-viewer::logs.delete'));

$code = $this->response->getStatusCode();
$message = $this->response->exception->getMessage();

$this->assertInstanceOf(
\Symfony\Component\HttpKernel\Exception\HttpException::class,
$this->response->exception
);
}
catch (\Symfony\Component\HttpKernel\Exception\HttpException $e) {
$code = $e->getStatusCode();
$message = $e->getMessage();
}
$response->assertStatus(405);
$this->assertInstanceOf(
\Symfony\Component\HttpKernel\Exception\HttpException::class,
$response->exception
);

$this->assertSame(405, $code);
$this->assertSame('Method Not Allowed', $message);
$this->assertSame('Method Not Allowed', $response->exception->getMessage());
}
}
2 changes: 1 addition & 1 deletion tests/TestCase.php
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
use Arcanedev\LogViewer\Entities\LogEntryCollection;
use Carbon\Carbon;
use Illuminate\Support\Arr;
use Orchestra\Testbench\BrowserKit\TestCase as BaseTestCase;
use Orchestra\Testbench\TestCase as BaseTestCase;
use Psr\Log\LogLevel;
use ReflectionClass;

Expand Down

0 comments on commit 58dc7e0

Please sign in to comment.