VarDumperTest.php 2.15 KB
Newer Older
1 2
<?php
namespace yiiunit\framework\helpers;
Alexander Makarov committed
3

4 5
use yii\helpers\VarDumper;
use yiiunit\TestCase;
6

7 8 9
/**
 * @group helpers
 */
Alexander Makarov committed
10
class VarDumperTest extends TestCase
11
{
12 13 14 15 16 17 18 19
    public function testDumpObject()
    {
        $obj = new \StdClass();
        ob_start();
        VarDumper::dump($obj);
        $this->assertEquals("stdClass#1\n(\n)", ob_get_contents());
        ob_end_clean();
    }
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89

    /**
     * Data provider for [[testExport()]]
     * @return array test data
     */
    public function dataProviderExport()
    {
        // Regular :

        $data = [
            [
                'test string',
                var_export('test string', true)
            ],
            [
                75,
                var_export(75, true)
            ],
            [
                7.5,
                var_export(7.5, true)
            ],
            [
                null,
                'null'
            ],
            [
                true,
                'true'
            ],
            [
                false,
                'false'
            ],
            [
                [],
                '[]'
            ],
        ];

        // Arrays :

        $var = [
            'key1' => 'value1',
            'key2' => 'value2',
        ];
        $expectedResult = <<<RESULT
[
    'key1' => 'value1',
    'key2' => 'value2',
]
RESULT;
        $data[] = [$var, $expectedResult];

        $var = [
            'value1',
            'value2',
        ];
        $expectedResult = <<<RESULT
[
    'value1',
    'value2',
]
RESULT;
        $data[] = [$var, $expectedResult];

        // Objects :

        $var = new \StdClass();
        $var->testField = 'Test Value';
90
        $expectedResult = "unserialize('" . serialize($var) . "')";
91 92 93 94 95 96 97 98 99 100 101 102 103
        $data[] = [$var, $expectedResult];

        return $data;
    }

    /**
     * @dataProvider dataProviderExport
     *
     * @param mixed $var
     * @param string $expectedResult
     */
    public function testExport($var, $expectedResult)
    {
104 105 106
        $exportResult = VarDumper::export($var);
        $this->assertEquals($expectedResult, $exportResult);
        $this->assertEquals($var, eval('return ' . $exportResult . ';'));
107
    }
Zander Baldwin committed
108
}