Skip to content
Snippets Groups Projects
Select Git revision
  • 830ead71e21d660a7b2c93d882fd1adc4b20984d
  • main default protected
  • step-3263
  • feature/plugins-cli
  • feature/vite
  • step-2484-peerreview
  • biest/issue-5051
  • tests/simplify-jsonapi-tests
  • fix/typo-in-1a70031
  • feature/broadcasting
  • database-seeders-and-factories
  • feature/peer-review-2
  • feature-feedback-jsonapi
  • feature/peerreview
  • feature/balloon-plus
  • feature/stock-images-unsplash
  • tic-2588
  • 5.0
  • 5.2
  • biest/unlock-blocks
  • biest-1514
21 results

vue.js

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    IconClassTest.php 6.04 KiB
    <?php
    /*
     * Copyright (C) 2015 <mlunzena@uos.de>
     *
     * This program is free software; you can redistribute it and/or
     * modify it under the terms of the GNU General Public License as
     * published by the Free Software Foundation; either version 2 of
     * the License, or (at your option) any later version.
     */
    
    class IconClassTest extends \Codeception\Test\Unit
    {
        private $memo_assets_url;
    
        function setUp(): void
        {
            $this->memo_assets_url = Assets::url();
            Assets::set_assets_url('');
        }
    
        function tearDown(): void
        {
            Assets::set_assets_url($this->memo_assets_url);
        }
    
        function testIconCreateAsImg()
        {
            $this->assertEquals(
                '<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
                Icon::create('vote')->asImg()
            );
        }
    
        function testIconCreateAsImgWithAddition()
        {
            $this->assertEquals(
                '<img width="16" height="16" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
                Icon::create('vote')->asImg()
            );
        }
    
        function testIconCreateAsImgWithSize()
        {
            $this->assertEquals(
                '<img width="20" height="20" src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
                Icon::create('vote')->asImg(20)
            );
        }
    
        function testIconCreateAsImgWithTitle()
        {
            $this->assertEquals(
                '<img title="Mit Anhang" width="20" height="20" src="images/icons/blue/vote.svg" class="icon-role-clickable icon-shape-vote">',
                Icon::create('vote')->asImg(20, ['title' => _('Mit Anhang')])
            );
        }
    
        function testIconCreateAsImgWithHspace()
        {
            $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">',
                Icon::create('arr_2left')->asImg(['hspace' => 3])
            );
        }
    
        function testIconCreateAsImgWithClass()
        {
            $this->assertEquals(
                '<img class="text-bottom icon-role-info icon-shape-staple" width="20" height="20" src="images/icons/black/staple.svg" alt="">',
                Icon::create('staple', Icon::ROLE_INFO)->asImg(20, ['class' => 'text-bottom'])
            );
        }
    
        function testIconCreateAsImgWithClassAndTitle()
        {
            $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">',
                Icon::create('upload', Icon::ROLE_NEW, ['title' => _("Datei hochladen")])
                    ->asImg(20, ['class' => 'text-bottom'])
            );
        }
    
        function testIconCreateAsInput()
        {
            $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="">',
                Icon::create('upload')->asInput(20, ['class' => 'text-bottom'])
            );
        }
    
        function testIconIsImmutable()
        {
            $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
            $copy = $icon->copyWithRole(Icon::ROLE_CLICKABLE);
    
            $this->assertNotSame($icon, $copy);
        }
    
        function testIconCopyWithRole()
        {
            $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
            $copy = $icon->copyWithRole(Icon::ROLE_INFO);
    
            $this->assertEquals($icon->getShape(),      $copy->getShape());
            $this->assertNotEquals($icon->getRole(),    $copy->getRole());
            $this->assertEquals($icon->getAttributes(), $copy->getAttributes());
        }
    
        function testIconCopyWithShape()
        {
            $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
            $copy = $icon->copyWithShape('staple');
    
            $this->assertNotEquals($icon->getShape(),   $copy->getShape());
            $this->assertEquals($icon->getRole(),       $copy->getRole());
            $this->assertEquals($icon->getAttributes(), $copy->getAttributes());
        }
    
        function testIconCopyWithAttributes()
        {
            $icon = Icon::create('upload', Icon::ROLE_CLICKABLE, ['title' => _('a title')]);
            $copy = $icon->copyWithAttributes(['title' => _('another title')]);
    
            $this->assertEquals($icon->getShape(),         $copy->getShape());
            $this->assertEquals($icon->getRole(),          $copy->getRole());
            $this->assertNotEquals($icon->getAttributes(), $copy->getAttributes());
        }
    
        function testStaticIcon()
        {
            $icon = Icon::create('https://i.imgur.com/kpTtTh.gif');
            $this->assertEquals($icon->asImagePath(), 'https://i.imgur.com/kpTtTh.gif');
        }
    
        function testIconCreateAsCSSWithSize()
        {
            $this->assertEquals(
                'background-image:url(images/icons/blue/vote.svg);background-size:17px 17px;',
                Icon::create('vote')->asCSS(17)
            );
        }
    
        function testIconCreateAsImagePath()
        {
            $this->assertEquals(
                'images/icons/blue/vote.svg',
                Icon::create('vote')->asImagePath()
            );
        }
    
        function testIconCreateAsImgWithoutSize()
        {
            $this->assertEquals(
                '<img src="images/icons/blue/vote.svg" alt="" class="icon-role-clickable icon-shape-vote">',
                Icon::create('vote')->asImg(false)
            );
        }
    
        function testIconCreateAsInputWithoutSize()
        {
            $this->assertEquals(
                '<input type="image" src="images/icons/blue/upload.svg" alt="" class="icon-role-clickable icon-shape-upload">',
                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)
            );
        }
    }