Browse Source

Add unit tests appLogoImage function helper

pull/1/head
Nafies Luthfi 8 years ago
parent
commit
a25fdfe7e1
  1. 19
      app/helpers.php
  2. 86
      tests/Unit/Helpers/AppLogoImageTest.php

19
app/helpers.php

@ -204,16 +204,25 @@ function dateDifference($date1, $date2, $differenceFormat = '%a')
return $interval->format($differenceFormat);
}
function appLogoImage()
function appLogoImage($attributes = [])
{
$logoString = '<img style="display: block;text-align: center;margin: 0 auto;width: 100%;max-width: 200px"';
$logoString .= 'src="'.appLogoPath().'">';
return $logoString;
return Html::image(
appLogoPath(),
'Logo '.Option::get('agency_name', 'Laravel'),
$attributes
);
}
function appLogoPath()
{
return asset('assets/imgs/'.Option::get('agency_logo_path', 'default-logo.png'));
$defaultLogoImagePath = 'default-logo.png';
$optionLogoImagePath = Option::get('agency_logo_path');
if (is_file(public_path('assets/imgs/'.$optionLogoImagePath))) {
return asset('assets/imgs/'.$optionLogoImagePath);
}
return asset('assets/imgs/'.$defaultLogoImagePath);
}
function monthDateArray($year, $month)

86
tests/Unit/Helpers/AppLogoImageTest.php

@ -0,0 +1,86 @@
<?php
namespace Tests\Unit\Helpers;
use Tests\TestCase;
class AppLogoImageTest extends TestCase
{
/** @test */
public function app_logo_path_function_returns_correct_logo_image_path_based_on_agency_logo_path_setting()
{
\DB::table('site_options')->insert([
'key' => 'agency_logo_path',
'value' => 'icon_user_1.png',
]);
$this->assertEquals(asset('assets/imgs/icon_user_1.png'), appLogoPath());
}
/** @test */
public function app_logo_path_function_returns_default_logo_image_path_if_no_image_logo_path_setting()
{
$this->assertEquals(asset('assets/imgs/default-logo.png'), appLogoPath());
}
/** @test */
public function app_logo_image_function_returns_default_logo_image_element_if_no_agency_logo_path_setting()
{
$logoString = '<img';
$logoString .= ' src="'.asset('assets/imgs/default-logo.png').'"';
$logoString .= ' alt="Logo Laravel">';
$this->assertEquals($logoString, appLogoImage());
}
/** @test */
public function app_logo_image_function_returns_correct_logo_image_elemet_based_on_agency_logo_path_setting()
{
\DB::table('site_options')->insert([
'key' => 'agency_logo_path',
'value' => 'icon_user_1.png',
]);
$logoString = '<img';
$logoString .= ' src="'.asset('assets/imgs/icon_user_1.png').'"';
$logoString .= ' alt="Logo Laravel">';
$this->assertEquals($logoString, appLogoImage());
}
/** @test */
public function app_logo_image_function_has_overrideable_attributes()
{
\DB::table('site_options')->insert([
'key' => 'agency_name',
'value' => 'My Agency Name',
]);
$logoString = '<img';
$logoString .= ' src="'.asset('assets/imgs/default-logo.png').'"';
$logoString .= ' class="123"';
$logoString .= ' style="display: inline"';
$logoString .= ' alt="Logo My Agency Name">';
$overrides = [
'class' => '123',
'style' => 'display: inline',
];
$this->assertEquals($logoString, appLogoImage($overrides));
}
/** @test */
public function app_logo_image_function_returns_default_logo_image_if_agency_logo_file_doesnt_exists()
{
\DB::table('site_options')->insert([
'key' => 'agency_logo_path',
'value' => 'agency_logo.jpg',
]);
$logoString = '<img';
$logoString .= ' src="'.asset('assets/imgs/default-logo.png').'"';
$logoString .= ' alt="Logo Laravel">';
$this->assertEquals($logoString, appLogoImage());
}
}
Loading…
Cancel
Save