phpmyadmin/test/libraries/PMA_GIS_modifyQuery_test.php

96 lines
3.5 KiB
PHP

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
* Tests for PMA_GIS_modifyQuery method
*
* @package PhpMyAdmin-test
*/
require_once 'libraries/sqlparser.lib.php';
require_once 'libraries/Util.class.php';
/*
* Include to test
*/
require_once 'libraries/gis_visualization.lib.php';
class PMA_GIS_modifyQueryTest extends PHPUnit_Framework_TestCase
{
/**
* Test PMA_GIS_modifyQuery method
*
* @param string $sql_query query to modify
* @param array $settings visualization settings
* @param string $modified_query modified query
*
* @dataProvider provider
* @return void
*/
public function testModifyQuery($sql_query, $settings, $modified_query)
{
$this->assertEquals(
PMA_GIS_modifyQuery($sql_query, $settings),
$modified_query
);
}
/**
* data provider for testModifyQuery
*
* @return data for testModifyQuery
*/
public function provider()
{
return array(
// select *
array(
'SELECT * FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `noo`, ASTEXT(`moo`) AS `moo`, SRID(`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// select * with no label column
array(
'SELECT * FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo'),
'SELECT ASTEXT(`moo`) AS `moo`, SRID(`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// more columns
array(
'SELECT `aaa`, `moo`, `bbb`, `noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `noo`, ASTEXT(`moo`) AS `moo`, SRID(`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// no labelColumn defined
array(
'SELECT `moo`, `noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo'),
'SELECT ASTEXT(`moo`) AS `moo`, SRID(`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// alias for spatialColumn
array(
'SELECT `aaa` AS `moo`, `noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `noo`, ASTEXT(`aaa`) AS `moo`, SRID(`aaa`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// alias for labelColumn
array(
'SELECT `moo`, `bbb` AS `noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `bbb` AS `noo`, ASTEXT(`moo`) AS `moo`, SRID(`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// with database names
array(
'SELECT `db`.`moo`, `db`.`noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `db`.`noo`, ASTEXT(`db`.`moo`) AS `moo`, SRID(`db`.`moo`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
// database names plus alias
array(
'SELECT `db`.`aaa` AS `moo`, `noo` FROM `foo` WHERE `bar` = `zoo`',
array('spatialColumn' => 'moo', 'labelColumn' => 'noo'),
'SELECT `noo`, ASTEXT(`db`.`aaa`) AS `moo`, SRID(`db`.`aaa`) AS `srid` FROM `foo` WHERE `bar` = `zoo`'
),
);
}
}
?>