/home/techb158/ileadtechnology.com/vendor/laravolt/avatar/tests
Edit: /home/techb158/ileadtechnology.com/vendor/laravolt/avatar/tests/AvatarPhpTest.php (17312B)
false,
'shape' => 'circle',
'width' => 200,
'height' => 200,
'chars' => 2,
'fontSize' => 48,
'fonts' => ['arial.ttf'],
'foregrounds' => ['#FFFFFF'],
'backgrounds' => ['#000000'],
'border' => ['size' => 1, 'color' => '#999999', 'radius' => 15],
];
$avatar = new \Laravolt\Avatar\Avatar($config);
$this->assertAttributeEquals(2, 'chars', $avatar);
$this->assertAttributeEquals('circle', 'shape', $avatar);
$this->assertAttributeEquals(200, 'width', $avatar);
$this->assertAttributeEquals(200, 'height', $avatar);
$this->assertAttributeEquals(['#000000'], 'availableBackgrounds', $avatar);
$this->assertAttributeEquals(['#FFFFFF'], 'availableForegrounds', $avatar);
$this->assertAttributeEquals(['arial.ttf'], 'fonts', $avatar);
$this->assertAttributeEquals(48, 'fontSize', $avatar);
$this->assertAttributeEquals(1, 'borderSize', $avatar);
$this->assertAttributeEquals('#999999', 'borderColor', $avatar);
$this->assertAttributeEquals(15, 'borderRadius', $avatar);
$this->assertAttributeEquals(false, 'ascii', $avatar);
}
/**
* @test
*/
public function it_can_override_attributes_after_set_name()
{
$config = ['backgrounds' => ['#000000', '#111111'], 'foregrounds' => ['#EEEEEE', '#FFFFFF']];
$avatar = new \Laravolt\Avatar\Avatar($config);
$avatar->create('A');
$this->assertAttributeEquals('#FFFFFF', 'foreground', $avatar);
}
/**
* @test
*/
public function it_has_correct_random_background()
{
$config = [
'foregrounds' => ['#000000', '#111111'],
'backgrounds' => ['#111111', '#000000'],
];
$avatar = new \Laravolt\Avatar\Avatar($config);
$name = 'A';
$avatar->create($name)->buildAvatar();
$this->assertAttributeEquals('#000000', 'background', $avatar);
$this->assertAttributeEquals('#111111', 'foreground', $avatar);
}
/**
* @test
*/
public function it_has_different_random_background()
{
$config = [
'backgrounds' => ['#000000', '#111111'],
];
$name1 = 'AA';
$name2 = 'AAA';
$avatar1 = new \Laravolt\Avatar\Avatar($config);
$avatar1->create($name1)->buildAvatar();
$avatar2 = new \Laravolt\Avatar\Avatar($config);
$avatar2->create($name2)->buildAvatar();
$this->assertAttributeEquals('#000000', 'background', $avatar1);
$this->assertAttributeEquals('#111111', 'background', $avatar2);
}
/**
* @test
*/
public function it_can_resolve_random_themes_and_then_overrides()
{
$config = [
'theme' => '*',
'themes' => [
'dark' => [
'backgrounds' => ['#000000', '#111111'],
'foregrounds' => ['#EEEEEE', '#FFFFFF'],
],
'light' => [
'backgrounds' => ['#FFFFFF', '#EEEEEE'],
'foregrounds' => ['#000000', '#111111'],
],
]
];
$name1 = 'Bay';
$avatar1 = new \Laravolt\Avatar\Avatar($config);
$avatar1->create($name1)->buildAvatar();
$this->assertAttributeEquals('#000000', 'background', $avatar1);
$this->assertAttributeEquals('#EEEEEE', 'foreground', $avatar1);
$avatar1->setTheme('light')->buildAvatar();
$this->assertAttributeEquals('#FFFFFF', 'background', $avatar1);
$this->assertAttributeEquals('#000000', 'foreground', $avatar1);
}
/**
* @test
*/
public function it_can_handle_invalid_theme()
{
$config = [
'foregrounds' => ['#000000', '#111111'],
'backgrounds' => ['#111111', '#000000'],
];
$avatar = new \Laravolt\Avatar\Avatar($config);
$name = 'A';
$avatar->create($name)->setTheme('zombie')->buildAvatar();
$this->assertAttributeEquals('#000000', 'background', $avatar);
$this->assertAttributeEquals('#111111', 'foreground', $avatar);
$avatar->setTheme(new stdClass())->buildAvatar();
$avatar->setTheme(['satu', 'dua'])->buildAvatar();
}
/**
* @test
*/
public function it_can_create_initials_from_name()
{
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->create('Bayu Hendra')->buildAvatar();
$this->assertAttributeEquals('Bayu Hendra', 'name', $avatar);
$this->assertAttributeEquals('BH', 'initials', $avatar);
}
/**
* @test
*/
public function it_can_set_chars_length()
{
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->create('Bayu Hendra Winata')->setChars(1)->buildAvatar();
$this->assertAttributeEquals('B', 'initials', $avatar);
$avatar->create('Bayu Hendra Winata')->setChars(3)->buildAvatar();
$this->assertAttributeEquals('BHW', 'initials', $avatar);
}
/**
* @test
*/
public function it_accept_valid_font_file()
{
$font = __DIR__.'/fonts/rockwell.ttf';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setFont($font);
$this->assertAttributeEquals($font, 'font', $avatar);
}
/**
* @test
*/
public function it_cannot_accept_invalid_font_file()
{
$font = __DIR__.'/fonts/invalid-font.ttf';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setFont($font);
$this->assertAttributeNotEquals($font, 'font', $avatar);
}
/**
* @test
*/
public function it_can_generate_base64()
{
$expected = $this->sampleBase64String();
$avatar = new \Laravolt\Avatar\Avatar();
$result = (string)$avatar->create('Citra')->setDimension(5, 5)->toBase64();
$this->assertEquals($expected, $result);
}
/**
* @test
*/
public function it_can_generate_base64_from_cache()
{
$cachedAvatar = 'data:image/png;base64,iVBO';
$cache = Mockery::mock('Illuminate\Contracts\Cache\Repository');
$cache->shouldReceive('get')->andReturn($cachedAvatar);
$avatar = new \Laravolt\Avatar\Avatar([], $cache);
$result = (string)$avatar->create('Citra')->setDimension(5, 5)->toBase64();
$this->assertEquals($cachedAvatar, $result);
}
/**
* @test
*/
public function it_can_generate_file()
{
$file = __DIR__.'/avatar.png';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->create('Citra')->setDimension(5, 5)->save($file);
$this->assertFileExists($file);
unlink($file);
}
/**
* @test
*/
public function it_can_generate_circle_svg()
{
$expected = '
';
$avatar = new \Laravolt\Avatar\Avatar();
$svg = $avatar->create('Andi Budiman')
->setShape('circle')
->setFontSize(24)
->setDimension(100, 100)
->setForeground('white')
->setBorder(10, 'yellow')
->setBackground('red')
->toSvg();
$this->assertEquals($expected, $svg);
}
/**
* @test
*/
public function it_can_generate_rectangle_svg()
{
$expected = '
';
$avatar = new \Laravolt\Avatar\Avatar();
$svg = $avatar->create('Andi Budiman')
->setShape('square')
->setFontSize(24)
->setDimension(100, 100)
->setForeground('white')
->setBorder(10, 'yellow')
->setBorderRadius(15)
->setBackground('red')
->toSvg();
$this->assertEquals($expected, $svg);
}
/**
* @test
*/
public function it_can_generate_svg_with_custom_font_family()
{
$expected = '
';
$avatar = new \Laravolt\Avatar\Avatar();
$svg = $avatar->create('Andi Budiman')
->setShape('circle')
->setFontSize(24)
->setFontFamily('Lato')
->setDimension(100, 100)
->setForeground('white')
->setBorder(10, 'yellow')
->setBackground('red')
->toSvg();
$this->assertEquals($expected, $svg);
}
/**
* @test
*/
public function it_can_generate_gravatar()
{
$expected = 'https://www.gravatar.com/avatar/0dcae7d6d76f9a3b14588e9671c45879';
$avatar = new \Laravolt\Avatar\Avatar();
$url = $avatar
->setDimension(null)
->create('uyab.exe@gmail.com')
->toGravatar();
$this->assertEquals($expected, $url);
}
/**
* @test
*/
public function it_can_generate_gravatar_with_size()
{
$expected = 'https://www.gravatar.com/avatar/0dcae7d6d76f9a3b14588e9671c45879?s=100';
$avatar = new \Laravolt\Avatar\Avatar();
$url = $avatar->create('uyab.exe@gmail.com')
->setDimension(100)
->toGravatar();
$this->assertEquals($expected, $url);
}
/**
* @test
*/
public function it_can_generate_gravatar_with_default()
{
$expected = 'https://www.gravatar.com/avatar/0dcae7d6d76f9a3b14588e9671c45879?d=identicon&s=100';
$avatar = new \Laravolt\Avatar\Avatar();
$url = $avatar->create('uyab.exe@gmail.com')
->setDimension(100)
->toGravatar(['d' => 'identicon']);
$this->assertEquals($expected, $url);
}
/**
* @test
*/
public function it_can_generate_gravatar_with_default_and_rating()
{
$expected = 'https://www.gravatar.com/avatar/0dcae7d6d76f9a3b14588e9671c45879?d=identicon&r=pg&s=100';
$avatar = new \Laravolt\Avatar\Avatar();
$url = $avatar->create('uyab.exe@gmail.com')
->setDimension(100)
->toGravatar(['d' => 'identicon', 'r' => 'pg']);
$this->assertEquals($expected, $url);
}
/**
* @test
*/
public function it_can_generate_gravatar_with_size_overriden()
{
$expected = 'https://www.gravatar.com/avatar/0dcae7d6d76f9a3b14588e9671c45879?s=300';
$avatar = new \Laravolt\Avatar\Avatar();
$url = $avatar->create('uyab.exe@gmail.com')
->setDimension(100)
->toGravatar(['s' => 300]);
$this->assertEquals($expected, $url);
}
/**
* @test
*/
public function it_can_set_background()
{
$hex = '#ffffff';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setBackground($hex);
$this->assertAttributeEquals($hex, 'background', $avatar);
}
/**
* @test
*/
public function it_can_set_foreground()
{
$hex = '#ffffff';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setForeground($hex);
$this->assertAttributeEquals($hex, 'foreground', $avatar);
}
/**
* @test
*/
public function it_can_set_dimension()
{
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setDimension(4, 5);
$this->assertAttributeEquals(4, 'width', $avatar);
$this->assertAttributeEquals(5, 'height', $avatar);
$avatar->setDimension(10);
$this->assertAttributeEquals(10, 'width', $avatar);
$this->assertAttributeEquals(10, 'height', $avatar);
}
/**
* @test
*/
public function it_can_set_font_size()
{
$size = 12;
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setFontSize($size);
$this->assertAttributeEquals($size, 'fontSize', $avatar);
}
/**
* @test
*/
public function it_can_set_font_family()
{
$font = 'Lato';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setFontFamily($font);
$this->assertAttributeEquals($font, 'fontFamily', $avatar);
}
/**
* @test
*/
public function it_can_set_border()
{
$borderSize = 1;
$borderColors = ['#ffffff', 'foreground', 'background'];
$avatar = new \Laravolt\Avatar\Avatar();
foreach ($borderColors as $color) {
$avatar->setBorder($borderSize, $color)->buildAvatar();
$this->assertAttributeEquals($borderSize, 'borderSize', $avatar);
$this->assertAttributeEquals($color, 'borderColor', $avatar);
$this->assertAttributeEquals(0, 'borderRadius', $avatar);
}
}
/**
* @test
*/
public function it_can_set_border_radius()
{
$borderSize = 1;
$borderColors = ['#ffffff', 'foreground', 'background'];
$avatar = new \Laravolt\Avatar\Avatar();
foreach ($borderColors as $color) {
$avatar->setBorder($borderSize, $color, 10)->buildAvatar();
$this->assertAttributeEquals($borderSize, 'borderSize', $avatar);
$this->assertAttributeEquals($color, 'borderColor', $avatar);
$this->assertAttributeEquals(10, 'borderRadius', $avatar);
}
}
/**
* @test
*/
public function it_can_accept_valid_shape()
{
$shapes = ['circle', 'square'];
$avatar = new \Laravolt\Avatar\Avatar();
foreach ($shapes as $shape) {
$avatar->setShape($shape)->buildAvatar();
$this->assertAttributeEquals($shape, 'shape', $avatar);
}
}
/**
* @test
*/
public function it_throw_exception_for_invalid_shape()
{
$this->expectException(InvalidArgumentException::class);
$shape = 'triangle';
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setShape($shape)->buildAvatar();
}
/**
* @test
*/
public function it_can_get_raw_image_object()
{
$avatar = new \Laravolt\Avatar\Avatar();
$imageObject = $avatar->buildAvatar()->getImageObject();
$this->assertInstanceOf(\Intervention\Image\Image::class, $imageObject);
}
/**
* @test
*/
public function it_can_get_initial()
{
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->create('Citra Kirana')->buildAvatar();
$this->assertEquals('CK', $avatar->getInitial());
}
/**
* @test
*/
public function it_can_cast_to_string()
{
$expected = $this->sampleBase64String();
$avatar = new \Laravolt\Avatar\Avatar();
$result = $avatar->create('Citra')->setDimension(5, 5)->__toString();
$this->assertEquals($expected, $result);
}
/**
* @test
*/
public function it_can_set_custom_generator()
{
$avatar = new \Laravolt\Avatar\Avatar();
$avatar->setGenerator(new FooGenerator());
$this->assertEquals('foo', $avatar->buildAvatar()->getInitial());
}
protected function sampleBase64String()
{
if (version_compare(phpversion(), '7.2', '>=')) {
return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAALUlEQVQImU2MsQ0AAAjCiv+/xk24qJGlhKQoCZMAAqg3HGuL7TM0+n0AWl2fDaErDmjZIJEtAAAAAElFTkSuQmCC';
} else {
return 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAALUlEQVQImU2MsQ0AAAjCiv+/xk24qJGlhKQoCZMAAqg3HGuL7TM0+n0AWl2fDaErDmjZIJEtAAAAAElFTkSuQmCC';
}
}
}
class FooGenerator implements \Laravolt\Avatar\Generator\GeneratorInterface
{
public function make($name, $length, $uppercase, $ascii)
{
return 'foo';
}
}