Skip to content
Snippets Groups Projects
Commit 57bd2457 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by David Siegfried
Browse files

remove extra from icons and adjust tests, re #3788

Merge request studip/studip!2871
parent 6a69943b
No related branches found
No related tags found
No related merge requests found
...@@ -338,7 +338,7 @@ class Icon ...@@ -338,7 +338,7 @@ class Icon
$classNames = 'icon-role-' . $this->role; $classNames = 'icon-role-' . $this->role;
if (!self::isStatic($this->shape)) { if (!self::isStatic($this->shape)) {
$classNames .= ' icon-shape-' . $this->shape; $classNames .= ' icon-shape-' . $this->shapeToPath($this->shape);
} }
$result['class'] = isset($result['class']) ? $result['class'] . ' ' . $classNames : $classNames; $result['class'] = isset($result['class']) ? $result['class'] . ' ' . $classNames : $classNames;
...@@ -385,8 +385,11 @@ class Icon ...@@ -385,8 +385,11 @@ class Icon
// transforms a shape w/ possible additions (`shape`) to a path `(addition/)?shape` // transforms a shape w/ possible additions (`shape`) to a path `(addition/)?shape`
private function shapeToPath() private function shapeToPath()
{ {
return self::isStatic($this->shape) if (self::isStatic($this->shape)) {
? $this->shape : return $this->shape;
join('/', array_reverse(explode('+', preg_replace('/\.svg$/', '', $this->shape)))); }
$shape = array_reverse(explode('/', $this->shape))[0];
$shape = explode('+', $shape)[0];
return $shape;
} }
} }
...@@ -27,7 +27,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -27,7 +27,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">', '<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote', 'clickable')->asImg() Icon::create('vote')->asImg()
); );
} }
...@@ -35,7 +35,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -35,7 +35,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">', '<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote', 'clickable')->asImg() Icon::create('vote')->asImg()
); );
} }
...@@ -43,7 +43,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -43,7 +43,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img width="20" height="20" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">', '<img width="20" height="20" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote', 'clickable')->asImg(20) Icon::create('vote')->asImg(20)
); );
} }
...@@ -51,7 +51,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -51,7 +51,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img title="Mit Anhang" width="20" height="20" src="images/icons/blue/vote.svg" class="icon-role-clickable icon-shape-vote">', '<img title="Mit Anhang" width="20" height="20" src="images/icons/blue/vote.svg" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote', 'clickable', ['title' => _("Mit Anhang")])->asImg(20) Icon::create('vote')->asImg(20, ['title' => _('Mit Anhang')])
); );
} }
...@@ -59,7 +59,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -59,7 +59,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img hspace="3" width="16" height="16" src="images/icons/blue/arr_2left.svg" alt="" class="icon-role-clickable icon-shape-arr_2left">', '<img hspace="3" width="16" height="16" src="images/icons/blue/arr_2left.svg" alt="" class="icon-role-clickable icon-shape-arr_2left">',
Icon::create('arr_2left', 'clickable')->asImg(['hspace' => 3]) Icon::create('arr_2left')->asImg(['hspace' => 3])
); );
} }
...@@ -67,7 +67,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -67,7 +67,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img class="text-bottom icon-role-info icon-shape-staple" width="20" height="20" src="images/icons/black/staple.svg" alt="">', '<img class="text-bottom icon-role-info icon-shape-staple" width="20" height="20" src="images/icons/black/staple.svg" alt="">',
Icon::create('staple', 'info')->asImg(20, ['class' => 'text-bottom']) Icon::create('staple', Icon::ROLE_INFO)->asImg(20, ['class' => 'text-bottom'])
); );
} }
...@@ -75,7 +75,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -75,7 +75,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img title="Datei hochladen" class="text-bottom icon-role-new icon-shape-upload" width="20" height="20" src="images/icons/red/upload.svg">', '<img title="Datei hochladen" class="text-bottom icon-role-new icon-shape-upload" width="20" height="20" src="images/icons/red/upload.svg">',
Icon::create('upload', 'new', ['title' => _("Datei hochladen")]) Icon::create('upload', Icon::ROLE_NEW, ['title' => _("Datei hochladen")])
->asImg(20, ['class' => 'text-bottom']) ->asImg(20, ['class' => 'text-bottom'])
); );
} }
...@@ -84,22 +84,22 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -84,22 +84,22 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<input type="image" class="text-bottom icon-role-clickable icon-shape-upload" width="20" height="20" src="images/icons/blue/upload.svg" alt="">', '<input type="image" class="text-bottom icon-role-clickable icon-shape-upload" width="20" height="20" src="images/icons/blue/upload.svg" alt="">',
Icon::create('upload', 'clickable')->asInput(20, ['class' => 'text-bottom']) Icon::create('upload')->asInput(20, ['class' => 'text-bottom'])
); );
} }
function testIconIsImmutable() function testIconIsImmutable()
{ {
$icon = Icon::create('upload', 'clickable', ['title' => _('a title')]); $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
$copy = $icon->copyWithRole('clickable'); $copy = $icon->copyWithRole(Icon::ROLE_CLICKABLE);
$this->assertNotSame($icon, $copy); $this->assertNotSame($icon, $copy);
} }
function testIconCopyWithRole() function testIconCopyWithRole()
{ {
$icon = Icon::create('upload', 'clickable', ['title' => _('a title')]); $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
$copy = $icon->copyWithRole('info'); $copy = $icon->copyWithRole(Icon::ROLE_INFO);
$this->assertEquals($icon->getShape(), $copy->getShape()); $this->assertEquals($icon->getShape(), $copy->getShape());
$this->assertNotEquals($icon->getRole(), $copy->getRole()); $this->assertNotEquals($icon->getRole(), $copy->getRole());
...@@ -108,7 +108,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -108,7 +108,7 @@ class IconClassTest extends \Codeception\Test\Unit
function testIconCopyWithShape() function testIconCopyWithShape()
{ {
$icon = Icon::create('upload', 'clickable', ['title' => _('a title')]); $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
$copy = $icon->copyWithShape('staple'); $copy = $icon->copyWithShape('staple');
$this->assertNotEquals($icon->getShape(), $copy->getShape()); $this->assertNotEquals($icon->getShape(), $copy->getShape());
...@@ -118,7 +118,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -118,7 +118,7 @@ class IconClassTest extends \Codeception\Test\Unit
function testIconCopyWithAttributes() function testIconCopyWithAttributes()
{ {
$icon = Icon::create('upload', 'clickable', ['title' => _('a title')]); $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
$copy = $icon->copyWithAttributes(['title' => _('another title')]); $copy = $icon->copyWithAttributes(['title' => _('another title')]);
$this->assertEquals($icon->getShape(), $copy->getShape()); $this->assertEquals($icon->getShape(), $copy->getShape());
...@@ -136,7 +136,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -136,7 +136,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'background-image:url(images/icons/blue/vote.svg);background-size:17px 17px;', 'background-image:url(images/icons/blue/vote.svg);background-size:17px 17px;',
Icon::create('vote', 'clickable')->asCSS(17) Icon::create('vote')->asCSS(17)
); );
} }
...@@ -144,7 +144,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -144,7 +144,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'images/icons/blue/vote.svg', 'images/icons/blue/vote.svg',
Icon::create('vote', 'clickable')->asImagePath() Icon::create('vote')->asImagePath()
); );
} }
...@@ -152,7 +152,7 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -152,7 +152,7 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<img src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">', '<img src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote', 'clickable')->asImg(false) Icon::create('vote')->asImg(false)
); );
} }
...@@ -160,7 +160,19 @@ class IconClassTest extends \Codeception\Test\Unit ...@@ -160,7 +160,19 @@ class IconClassTest extends \Codeception\Test\Unit
{ {
$this->assertEquals( $this->assertEquals(
'<input type="image" src="images/icons/blue/upload.svg" alt="" class="icon-role-clickable icon-shape-upload">', '<input type="image" src="images/icons/blue/upload.svg" alt="" class="icon-role-clickable icon-shape-upload">',
Icon::create('upload', 'clickable')->asInput(false) Icon::create('upload')->asInput(false)
);
}
function testIconCreateRemovedExtras()
{
$this->assertEquals(
'<img src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('add/vote')->asImg(false)
);
$this->assertEquals(
'<img src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
Icon::create('vote+add')->asImg(false)
); );
} }
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment