[Tͪ#n$;<:a4sX[>ڎJiwWŇPXFŹg*GrIjJ1<0濶0>Os9˓ELE:\
e)Z	w0[f1̡ti)z*D,-y&xv~L-aD<gi;jsFt*yj*gW)HPp  .vv3LtT6M4.M<ۣz!+38L9UN!d3tFBmƵ;"BF%n`b!*6O0BjCxCOҁ5G|h➊MR(EȨ;\'Ggn#8s	sQv+o4dkU3me*2<CZwgA) A^DEJkJb֩?pL2!BDj3b}ᮬ6|drv@钦(J fBG|h➊MR(Ej';X;4=엶/s@%fкA1$'u$4AOq Ju'
2/@.n[6/| u兵,.U?ͺjPbIY/}2R<M־nHyɬlJYKk❄/kN#̍b4C,\ܡ/fȖ	TWP]%gFemFl 0q?N$r&$M:ǐH7em3B7ib!yMrB4Ϗ'MQNz/ˬTPΓFqwH6^WnFX(zWtw^<4[']&3nj`0l%'wo2~,ҿ7cX"9V&.iV%3{-yU2314g#ES8y첒,ud_w.ab{gf.VwkC@%49 y_4,L^ g$UE܌NGZw~p ~γc =c3پ?\vtI09wO/V9aVp|tt'4ϑͧ,feMM16!
v!wKٝ&(8"nm0תn2OZvd(+O3x!а"WF߳o4~sMvMT1cP%oh
-?Ç-v}Φ9w(m *I1ԍF*3&}WܣʏSm3
nxX0}KҫweiDAP0*X҅^o9750ӌkyW׶qMY(|^F:;受BH +-G0tgm˺^ވf_ƗD
pE ~YŨ2޲FZQ\7ыQ#%V^Ry99=C	Ӈ3$d(N󵞥m!@N{PG,1m4v8:|E*Tԕe> zA!TO]JP=&n(jj*ECpf<_	ځ0d<Tʬ80b%ηpAs9tZvhXn唇V.[:CA*p]Jtr"^|lFFOsOO&$棄Ϗ$1VD?T"`	FRhLfUOA}s;k']ve4n<Rn9'CP zƋy95 jդo[.Aq?ZvYl=2\RACMO	:B*IO-[ɘNCI Oc	}䘔E /M[soqPFeB]SU@Qg_٠C";vK7hHw) `zWFE$e1/9tfEU@Qg_٠CCN:Zv9750ӌkyW׶qMY(|^F:;受BH +-G0tgm˺^ވf_ƗD
TZ5QbZ-:2;+~F0(>^;[~7}T}^Pج{E8UdgpÙ#rv]YMxS 7 l?԰|AvVUz7-??|L6tmM@N{PG,1m43[V/kdWE7#@XS<e%jn!	B
QҎ:H)noK_-琧\'M
26\vp` ͝ApdbͷY~\5Zg`U7=(%1
^Ry997V60S޽IQP8\3uonEK2'dNossv2&xen0ߢ<IVd+s'. `QH0Ug΃*[h%HqFVVA &tlT(ImYLX@w) `zWFEfs!pQzF<vxSZC[վu.9750ӌkyW׶qθbɆOjMP6dj ]܃Wz"AMiڧؚP5Ms&Ez6%z_o
~h \Ћ Xjూഭ8E!]aU.XfH{U}rm	c7Wk(
~ut7$[zTvӜa5FI
Ij.sH)^9|0@dל7ٹ>

^Ң-I-mi7'.c+w03:O:!Uٙ$,`!f|&(8"nm0תn]4Jq1)_8V2܏eͯn]X2γV-,9:.v*NJ0Լ)g!c=J~bF6n,Lpap 1"#тt8e4y0VDX#L2H'ѷڇ	}G(fIge*U;,AwSw87 od!x}뉞B{Is:	)ǝ3!.zlIچb<,a?nooKR#nh,
/1v^tܻ?#x?u)b[t:=@V3JZ]* 3nڞutgn#8s	sQwyնZMC"`
2f}[$)C7Jb|*#AQ~Ts<ifV𺆋ǻ&#BF -+𽂊pFzWٸ+@HNtY1DMW8L/ne,'a1NB-iiYjKP`r{hY;=?I,2TR~L(H-N7n%ISmm#Ū=۸9,whx(òihh̰%췕~M {BԄsxha͐[۹|_Ww9ъFzIeVۢm%HXik%Bܻ%e@;<6Վ'.	~pogD>EO֎U`lH0B\$ `uWrK `_6r`R>hO5U^L-t,DT?'ף̧OcKKXE6Awr\mBy㮊ucmƧT function testCheckImgPathBad()
    {
        $GLOBALS['cfg']['ThemePath'] = 'nowhere';
        $this->object->setPath('path/to/nowhere');

        $this->assertFalse($this->object->checkImgPath());
    }

    /**
     * Test for Theme::checkImgPath
     *
     * @return void
     */
    public function testCheckImgPath()
    {
        $this->object->setPath('./themes/original');
        $this->assertTrue($this->object->checkImgPath());
    }

    /**
     * Test for Theme::checkImgPath
     *
     * @return void
     */
    public function testCheckImgPathGlobals()
    {
        $this->object->setPath('/this/is/wrong/path');
        $GLOBALS['cfg']['ThemePath'] = 'themes';
        $this->assertTrue($this->object->checkImgPath());
    }

    /**
     * Test for Theme::checkImgPath
     *
     * @return void
     * @expectedException PHPUnit_Framework_Error
     */
    public function testCheckImgPathGlobalsWrongPath()
    {
        $prevThemePath = $GLOBALS['cfg']['ThemePath'];
        $GLOBALS['cfg']['ThemePath'] = 'no_themes';

        $this->object->setPath('/this/is/wrong/path');
        $this->object->checkImgPath();

        $GLOBALS['cfg']['ThemePath'] = $prevThemePath;
    }

    /**
     * Test for Theme::getPath
     *
     * @return void
     */
    public function testGetSetPath()
    {
        $this->assertEmpty($this->object->getPath());
        $this->object->setPath('./themes/original');

        $this->assertEquals('./themes/original', $this->object->getPath());
    }

    /**
     * Test for Theme::loadInfo
     *
     * @return void
     */
    public function testGetLayoutFile()
    {
        $this->assertContains('layout.inc.php', $this->object->getLayoutFile());
    }

    /**
     * Test for Theme::checkVersion
     *
     * @return void
     *
     * @depends testLoadInfo
     */
    public function testGetSetCheckVersion()
    {
        $this->assertEquals(
            '0.0.0.0',
            $this->object->getVersion(),
            'Version 0.0.0.0 by default'
        );

        $this->object->setVersion("1.2.3.4");
        $this->assertEquals('1.2.3.4', $this->object->getVersion());

        $this->assertFalse($this->object->checkVersion("0.0.1.1"));
        $this->assertTrue($this->object->checkVersion("2.0.1.1"));
    }

    /**
     * Test for Theme::getName
     *
     * @return void
     */
    public function testGetSetName()
    {
        $this->assertEmpty($this->object->getName(), 'Name is empty by default');
        $this->object->setName('New Theme Name');

        $this->assertEquals('New Theme Name', $this->object->getName());
    }

    /**
     * Test for Theme::getId
     *
     * @return void
     */
    public function testGetSetId()
    {
        $this->assertEmpty($this->object->getId(), 'ID is empty by default');
        $this->object->setId('NewID');

        $this->assertEquals('NewID', $this->object->getId());
    }

    /**
     * Test for Theme::getImgPath
     *
     * @return void
     */
    public function testGetSetImgPath()
    {
        $this->assertEmpty(
            $this->object->getImgPath(),
            'ImgPath is empty by default'
        );
        $this->object->setImgPath('/new/path');

        $this->assertEquals('/new/path', $this->object->getImgPath());
    }

    /**
     * Test for getPrintPreview().
     *
     * @return void
     */
    public function testPrintPreview()
    {
        $this->assertEquals(
            $this->object->getPrintPreview(),
            '<div class="theme_preview"><h2> (0.0.0.0) </h2><p><a class="take_'
            . 'theme" name="" href="index.php?set_theme=&amp;server=99&amp;lang=en'
            . '&amp;collation_connection=utf-8'
            . '&amp;token=token">No preview available.[ <strong>take it</strong> ]'
            . '</a></p></div>'
        );
    }

    /**
     * Test for getCssIEClearFilter
     *
     * @return void
     */
    public function testGetCssIEClearFilter()
    {
        $this->assertEquals(
            $this->object->getCssIEClearFilter(),
            ''
        );
    }

    /**
     * Test for getFontSize
     *
     * @return void
     */
    public function testGetFontSize()
    {
        $this->assertEquals(
            $this->object->getFontSize(),
            '82%'
        );

        $GLOBALS['PMA_Config']->set('fontsize', '12px');
        $this->assertEquals(
            $this->object->getFontSize(),
            '12px'
        );

    }

    /**
     * Test for getCssGradient
     *
     * @return void
     */
    public function testgetCssGradient()
    {
        $this->assertEquals(
            $this->object->getCssGradient('12345', '54321'),
            'background-image: url(./themes/svg_gradient.php?from=12345&to=54321);'
            . "\n" . 'background-size: 100% 100%;'
            . "\n" . 'background: -webkit-gradient(linear, left top, left bottom, '
            . 'from(#12345), to(#54321));'
            . "\n" . 'background: -webkit-linear-gradient(top, #12345, #54321);'
            . "\n" . 'background: -moz-linear-gradient(top, #12345, #54321);'
            . "\n" . 'background: -ms-linear-gradient(top, #12345, #54321);'
            . "\n" . 'background: -o-linear-gradient(top, #12345, #54321);'
        );
    }

    /**
     * Test for getImgPath
     *
     * @param string $file   file name for image
     * @param string $output expected output
     *
     * @return void
     *
     * @dataProvider providerForGetImgPath
     */
    public function testGetImgPath($file, $output)
    {
        $this->assertEquals(
            $this->object->getImgPath($file),
            $output
        );
    }

    /**
     * Provider for testGetImgPath
     *
     * @return array
     */
    public function providerForGetImgPath()
    {
        return array(
            array(
                null,
                ''
            ),
            array(
                'screen.png',
                './themes/pmahomme/img/screen.png'
            ),
            array(
                'arrow_ltr.png',
                './themes/pmahomme/img/arrow_ltr.png'
            )

        );
    }
}
