HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/gggg.komma.nl/vendor/komma/kms/tests/Unit/ReadOnlyAttributeTest.php
<?php

namespace Tests\Unit;

use Komma\KMS\Core\Attributes\TextField;
use Komma\KMS\Users\Models\KmsUser;
use Komma\KMS\Users\Models\KmsUserRole;
use Tests\TestCase;

class ReadOnlyAttributeTest extends TestCase
{
    /**
     * @group ReadOnlyAttributeTest
     * @test
     */
    public function testSingleRoleReadOnly()
    {
        $adminUser = new KmsUser(['role' => KmsUserRole::Admin]);
        $superAdminUser = new KmsUser(['role' => KmsUserRole::SuperAdmin]);

        //Test single role
        $textfield = new TextField();
        $textfield->setLabelText('Test');
        $textfield->setReadOnlyFor(false, KmsUserRole::Admin);
        $this->assertFalse($textfield->getReadOnly('role', $adminUser));
        $textfield->setReadOnlyFor(true, KmsUserRole::Admin);
        $this->assertTrue($textfield->getReadOnly('role', $adminUser));
    }

    /**
     * @group ReadOnlyAttributeTest
     * @test
     */
    public function testMultiRoleReadOnly()
    {
        $adminUser = new KmsUser(['role' => KmsUserRole::Admin]);
        $superAdminUser = new KmsUser(['role' => KmsUserRole::SuperAdmin]);

        //Test multi role
        $textfield = new TextField();
        $textfield->setLabelText('Test');
        $textfield->setReadOnlyFor(false, [KmsUserRole::Admin, KmsUserRole::SuperAdmin]);
        $this->assertFalse($textfield->getReadOnly('role', $adminUser));
        $this->assertFalse($textfield->getReadOnly('role', $superAdminUser));
        $textfield->setReadOnlyFor(true, [KmsUserRole::Admin, KmsUserRole::SuperAdmin]);
        $this->assertTrue($textfield->getReadOnly('role', $adminUser));
        $this->assertTrue($textfield->getReadOnly('role', $superAdminUser));
        $textfield->setReadOnlyFor(false, [KmsUserRole::Admin]);
        $this->assertFalse($textfield->getReadOnly('role', $adminUser));
        $this->assertTrue($textfield->getReadOnly('role', $superAdminUser));
    }

    /**
     * @group ReadOnlyAttributeTest
     * @test
     */
    public function testSimpleReadOnly()
    {
        $textfield = new TextField();
        $textfield->setLabelText('Test');
        $this->assertFalse($textfield->getReadOnly());
        $textfield->setReadOnly(true);
        $this->assertTrue($textfield->getReadOnly());
    }
}