[Tͪ#n$;<:a4sX[2ܝΤxk>2:(^:+8խ.zhEidCI!-x{?{jst^Fxφw~p5մ@w8Y=&IF~?3*.N&A}z~"003:pzԄmcvhIzTcpF#*ݟ@+O@}z0%/!8FO!k۔}T/a
M7[v׈It1߽$zU6LՍ!qyk=ҵ?2@$!p?Qp
߳UɄ7+]9n}=qF3*.N&A}UX2]
EJ;7IޒbH'K*FMk>2:(^:м
[-ƓNIjJ1<0濶00j<>Є'6H(",X<d58~'^,.|}Z'!i'H}8)RwaV7,<3@9#]ƿdcbd-Co2dĳxDEe+g6yI6c(3Cեt`^J fBi4+1:,ގῇ`+ 
WV{p$$78qSA@`A99y1(½l{?UCQܗƬM]fyr=.^ l(T#:zBob(	0[xIuF
a 6gN}Ok<)W
E$)WE0Lv-^{$)WE{
`T%#céc7Hrk$Z`]A(Ml,4%(热/'@bgA<'A/X}6A~Ǖ-mS(U&J(уC62=D:TƘoݗ7֚N4ϓI鍓I*|oajXS0vl\7,jLGk_3󕭢{yҗUjJ?iwGJXa>B'hȽbǗ~`FPRLE"-fdq9]m285{pO~eg	4A6ޠDrGOmp;A-w59|K׵D݊1t[  a,	;刲x.uarMTr""[֬꧳lN&ϝ~?ShH79˫xT8=^{RHfd368|IrؤZE =&ucN!<V-LW	ф%=9ܚlSXf܉䃽?~K^VlLe72	/&{+W'}ż8T#is_Uۢ쏊WL8Fwm+O@\&FYW~"u+\kG8^UsoiA~}~@/xՖ!jMAM/Xl5M`]CHWbV\dװgeq5Ǖ&*wV3fDJ$-О N7>(b0~)M ٪;`rmkƩnxwϔ?|jM8myK&&oԚME:#f_7qgȂ+]vѓVU%zZG.ДpS3Nᾣ1#Ɏz7&B./(
~v{	ϗm7፟Geugl}ձ8ʸ^mkmYGi)NM$lhO[,l+RP/ckQFE>6mK.dVO#wU>/(S{ؒ^~SJ*gK%d.ߍvѓVU%7) K*"moXPMm*Mƚns߱^4rahjLcA@8Iqz*P GHe@$N!GfۦfA6c$Gb`RmX$2b<r@,AVkp'&ӈp.ܭjR\S^+TRR'Lr;@в3(=KA%f@9i~Fp10-<*44.k\Jx&1̶&>+}Gz>4ՐDєY1SPڱ+Xzv
YnCß%K,|d}1{	!gL77$WbSa'/sW-BEPBJoW)8X9DZǌJw6ԌڰxV3ګ
@tKqdA_	&v0Xu 'J|OirpJe5NގGL^7a5FI
Ia)}i]kaq'_+ lPƽctoD-or^֭!ɤt,oI</sq3|-$jJ?jVR9xrCnMX-r3ƫ2<ΑpQo]pNT˖|ܑ#@+P-ʔ {*^eUyIw[/gސ<ׯqʧ<eny
+⢪QuN2CR $`-ia[7of2u='_6+lk&)Wħk}vF̊zj(#sDhe;jĂW^])f7a=pSVг-Qiap"OD<RNYpscaP4L&tUu*=B\;nc:^Z	XVnc@ Q6[șpF\qEԵ5}PHY@
 &lVGdM07}]dW98481"U	ERy+\,X0jW >.ekRK Mb^{ f<yZxϏZy҆ :aK9c%nʬ;Dq ~QAZs]״
ZZm@k>2:(^:sw4NFY0܅|x-Tƫ:#w_4=+v,x4H(YK5⠿tWs࿴nѭ`ƚHZwf$4G|d<VgX#c!aX|XdtkKƍPD}fUVؒBFե72c2؄%yVW'R6d돻.zCp´0-q6]c=؃ٍa?f{XƜ3
e0
F6pB#d5L[Y	oS^QlH44 / US~yv\,J)Tڈ;EFiWfb6Iu' 겥_{=vG!uGty%JXE0JؑF?Te6a)$m鵓ol_~xח|y[z
%;elȄD3\?{	lQMJ$o?d-<[1GLE4qw_4
sc_WJukIl%U^6eJV`l='	Ym\IQ"ϏJ\Yl6?HWMY,ڒVZ\ 'value',
            $method->invoke($ctrl, $name_for_value_not_num, "value")
        );
    }

    /**
     * Test for _getHtmlForLinkTemplates()
     *
     * @return void
     */
    public function testGetHtmlForLinkTemplates()
    {
        $class = new ReflectionClass(
            '\PMA\libraries\controllers\server\ServerVariablesController'
        );
        $method = $class->getMethod('_getHtmlForLinkTemplates');
        $method->setAccessible(true);

        $container = Container::getDefaultContainer();
        $container->factory(
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $container->alias(
            'ServerVariablesController',
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $ctrl = $container->get('ServerVariablesController');

        //Call the test function
        $html = $method->invoke($ctrl);
        $url = 'server_variables.php' . PMA_URL_getCommon(array());

        //validate 1: URL
        $this->assertContains(
            $url,
            $html
        );
        //validate 2: images
        $this->assertContains(
            PMA\libraries\Util::getIcon('b_save.png', __('Save')),
            $html
        );
        $this->assertContains(
            PMA\libraries\Util::getIcon('b_close.png', __('Cancel')),
            $html
        );
    }

    /**
     * Test for PMA_getHtmlForServerVariables()
     *
     * @return void
     */
    public function testPMAGetHtmlForServerVariables()
    {

        $class = new ReflectionClass(
            '\PMA\libraries\controllers\server\ServerVariablesController'
        );
        $method = $class->getMethod('_getHtmlForServerVariables');
        $method->setAccessible(true);

        $container = Container::getDefaultContainer();
        $container->factory(
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $container->alias(
            'ServerVariablesController',
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $ctrl = $container->get('ServerVariablesController');

        $_REQUEST['filter'] = "auto-commit";
        $serverVarsSession
            = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1);
        $serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1);

        $html = $method->invoke($ctrl, $serverVars, $serverVarsSession);

        //validate 1: Filters
        $this->assertContains(
            '<legend>' . __('Filters') . '</legend>',
            $html
        );
        $this->assertContains(
            __('Containing the word:'),
            $html
        );
        $this->assertContains(
            $_REQUEST['filter'],
            $html
        );

        //validate 2: Server Variables
        $this->assertContains(
            '<table id="serverVariables" class="data filteredData noclick">',
            $html
        );
        $this->assertContains(
            __('Variable'),
            $html
        );
        $this->assertContains(
            __('Global value'),
            $html
        );
    }

    /**
     * Test for _getHtmlForServerVariablesItems()
     *
     * @return void
     */
    public function testGetHtmlForServerVariablesItems()
    {
        $class = new ReflectionClass(
            '\PMA\libraries\controllers\server\ServerVariablesController'
        );
        $method = $class->getMethod('_getHtmlForServerVariablesItems');
        $method->setAccessible(true);

        $container = Container::getDefaultContainer();
        $container->factory(
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $container->alias(
            'ServerVariablesController',
            'PMA\libraries\controllers\server\ServerVariablesController'
        );
        $ctrl = $container->get('ServerVariablesController');

        $serverVarsSession
            = $GLOBALS['dbi']->fetchResult('SHOW SESSION VARIABLES;', 0, 1);
        $serverVars = $GLOBALS['dbi']->fetchResult('SHOW GLOBAL VARIABLES;', 0, 1);

        $html = $method->invoke($ctrl, $serverVars, $serverVarsSession);

        //validate 1: variable: auto_increment_increment
        $name = "auto_increment_increment";
        $value = htmlspecialchars(str_replace('_', ' ', $name));
        $this->assertContains(
            $value,
            $html
        );

        //validate 2: variable: auto_increment_offset
        $name = "auto_increment_offset";
        $value = htmlspecialchars(str_replace('_', ' ', $name));
        $this->assertContains(
            $value,
            $html
        );

        $formatVariable = $class->getMethod('_formatVariable');
        $formatVariable->setAccessible(true);

        $value = $formatVariable->invoke($ctrl, $name, "12");
        $this->assertContains(
            $value,
            $html
        );

        //validate 3: variables
        $this->assertContains(
            __('Session value'),
            $html
        );

        $value = $formatVariable->invoke($ctrl, $name, "13");
        $this->assertContains(
            $value,
            $html
        );
    }
}
