You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

118 lines
3.5 KiB

<?php
namespace Tests\Unit\Helpers;
use App\User;
use Tests\TestCase;
use Illuminate\Foundation\Testing\RefreshDatabase;
class UserPhotoHelperTest extends TestCase
{
use RefreshDatabase;
/** @test */
public function user_photo_path_function_exists()
{
$this->assertTrue(function_exists('userPhotoPath'));
}
/** @test */
public function user_photo_path_function_returns_default_photo_path_based_on_gender_if_photo_path_is_null()
{
$genderId = 1; // Male
$this->assertEquals(
asset('images/icon_user_1.png'), userPhotoPath(null, $genderId)
);
$genderId = 2; // Female
$this->assertEquals(
asset('images/icon_user_2.png'), userPhotoPath(null, $genderId)
);
}
/** @test */
public function user_photo_function_exists()
{
$this->assertTrue(function_exists('userPhoto'));
}
/** @test */
public function user_photo_function_returns_default_image_photo_element_if_no_agency_image_path_setting()
{
$user = factory(User::class)->create(['gender_id' => 1]);
$photoFile = 'images/icon_user_1.png';
$imageString = '<img';
$imageString .= ' src="'.asset($photoFile).'"';
$imageString .= '>';
$this->assertEquals($imageString, userPhoto($user));
}
/** @test */
public function user_photo_function_returns_correct_photo_element_based_on_user_photo_path()
{
$photoPath = 'images/user_photo_path.jpg';
if (!is_dir(storage_path('app/public/images'))) {
mkdir(storage_path('app/public/images'), 0700);
}
copy(public_path('images/icon_user_1.png'), storage_path('app/public/images/user_photo_path.jpg'));
$this->assertFileExists(storage_path('app/public/images/user_photo_path.jpg'));
$user = factory(User::class)->create([
'gender_id' => 2,
'photo_path' => $photoPath,
]);
$imageString = '<img';
$imageString .= ' src="'.asset('storage/'.$photoPath).'"';
$imageString .= '>';
$this->assertEquals($imageString, userPhoto($user));
$this->assertFileExists(storage_path('app/public/images/user_photo_path.jpg'));
unlink(storage_path('app/public/images/user_photo_path.jpg'));
$this->assertFileNotExists(storage_path('app/public/images/user_photo_path.jpg'));
}
/** @test */
public function user_photo_function_has_overrideable_attributes()
{
$user = factory(User::class)->create([
'gender_id' => 1,
]);
$photoFile = 'images/icon_user_1.png';
$imageString = '<img';
$imageString .= ' src="'.asset($photoFile).'"';
$imageString .= ' class="123"';
$imageString .= ' style="display: inline"';
$imageString .= '>';
$overrides = [
'class' => '123',
'style' => 'display: inline',
];
$this->assertEquals($imageString, userPhoto($user, $overrides));
}
/** @test */
public function user_photo_function_returns_default_gender_logo_image_if_user_photo_file_doesnt_exists()
{
$user = factory(User::class)->create([
'gender_id' => 2,
'photo_path' => 'images/non_exists_photo_path.jpg',
]);
$photoFile = 'images/icon_user_2.png';
$imageString = '<img';
$imageString .= ' src="'.asset($photoFile).'"';
$imageString .= '>';
$this->assertEquals($imageString, userPhoto($user));
}
}