1<?php
2/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4: */
3/**
4 * ColourTest.php
5 *
6 * PHP Version 5
7 *
8 * @category  Test
9 * @package   PHP_Shell
10 * @author    Jesús Espino <jespinog@gmail.com>
11 * @copyright 2010 Jesús Espino
12 * @license   MIT <http://www.opensource.org/licenses/mit-license.php>
13 * @version   SVN: $Id:$
14 * @link      http://pear.php.net/package/PHP_Shell
15 */
16
17
18require_once 'PHPUnit/Framework/TestCase.php';
19require_once 'PHP/Shell.php';
20require_once "PHP/Shell/Extensions/Colour.php";
21
22/**
23 * ColourTest
24 *
25 * @uses      PHPUnit_Framework_TestCase
26 * @category  Test
27 * @package   PHP_Shell
28 * @author    Jesús Espino <jespinog@gmail.com>
29 * @copyright 2010 Jesús Espino
30 * @license   MIT <http://www.opensource.org/licenses/mit-license.php>
31 * @version   Release: @package_version@
32 * @link      http://pear.php.net/package/PHP_Shell
33 */
34class ColourTest extends PHPUnit_Framework_TestCase
35{
36    private $_vars;
37    private $_shell_exts;
38
39    /**
40     * setUp
41     *
42     * @access public
43     * @return void
44     */
45    public function setUp()
46    {
47        /* create a fresh shell extensions object */
48        $this->_shell_exts = PHP_Shell_Extensions::getInstance();
49        $this->_shell_exts->registerExtensions(
50            array(
51                "options"        => PHP_Shell_Options::getInstance(),
52                "colour"         => new PHP_Shell_Extensions_Colour(),
53            )
54        );
55    }
56
57    /**
58     * testSetBackground
59     *
60     * @access public
61     * @return void
62     */
63    public function testSetBackground()
64    {
65        // Check that enable the colour on valid enable string
66        ob_start();
67        $this->_shell_exts->colour->optSetBackground('colour', null);
68        $this->assertEquals(
69            ob_get_clean(),
70            ":set colour needs a colour-scheme, e.g. :set colour=dark"
71        );
72
73        ob_start();
74        $this->_shell_exts->colour->optSetBackground('colour', "notvalid");
75        $this->assertEquals(
76            ob_get_clean(),
77            "setting colourscheme failed: colourscheme notvalid is unknown"
78        );
79
80        $this->_shell_exts->colour->optSetBackground('colour', "dark");
81        $this->assertEquals("\033[1;33m", $this->_shell_exts->colour->getColour('default'));
82        $this->assertEquals("\033[1;37m", $this->_shell_exts->colour->getColour('value'));
83        $this->assertEquals("\033[0;35m", $this->_shell_exts->colour->getColour('exception'));
84    }
85}
86
87