Leitgedanken/#pma/test/libraries/PMA_js_escape_test.php
2022-11-21 09:47:28 +01:00

76 lines
1.7 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* tests for JS variable formatting
*
* @package PhpMyAdmin-test
*/
/*
* Include to test.
*/
require_once 'libraries/js_escape.lib.php';
/**
* tests for JS variable formatting
*
* @package PhpMyAdmin-test
*/
class PMA_JS_Escape_Test extends PHPUnit_Framework_TestCase
{
/**
* Test for PMA_getJsValue
*
* @param string $key Key
* @param string $value Value
* @param string $expected Expected output
*
* @dataProvider variables
*
* @return void
*/
public function testFormat($key, $value, $expected)
{
$this->assertEquals($expected, PMA_getJsValue($key, $value));
$this->assertEquals('foo = 100', PMA_getJsValue('foo', '100', false));
$array = array('1','2','3');
$this->assertEquals(
"foo = [\"1\",\"2\",\"3\",];\n",
PMA_getJsValue('foo', $array)
);
$this->assertEquals(
"foo = \"bar\\\"baz\";\n",
PMA_getJsValue('foo', 'bar"baz')
);
}
/**
* Test for PMA_jsFormat
*
* @return void
*/
public function testJsFormat()
{
$this->assertEquals("`foo`", PMA_jsFormat('foo'));
}
/**
* Provider for testFormat
*
* @return array
*/
public function variables()
{
return array(
array('foo', true, "foo = true;\n"),
array('foo', false, "foo = false;\n"),
array('foo', 100, "foo = 100;\n"),
array('foo', 0, "foo = 0;\n"),
array('foo', 'text', "foo = \"text\";\n"),
array('foo', 'quote"', "foo = \"quote\\\"\";\n"),
array('foo', 'apostroph\'', "foo = \"apostroph\\'\";\n"),
);
}
}