MDL-23997 re-added text comparison tests for bound query now using sql_compare_text() properly.

This commit is contained in:
Eloy Lafuente 2010-08-30 11:46:34 +00:00
parent 2a72392d59
commit c899cbeae9

View file

@ -2857,16 +2857,22 @@ class dml_test extends UnitTestCase {
$this->assertTrue($records = $DB->get_records($tablename, array('name' => '2'))); $this->assertTrue($records = $DB->get_records($tablename, array('name' => '2')));
$this->assertEqual(1, count($records)); $this->assertEqual(1, count($records));
/* TODO: we need param type hints to make this work // Conditions in TEXT columns always must be performed with the sql_compare_text
$this->assertTrue($records = $DB->get_records($tablename, array('content' => '1'))); // helper function on both sides of the condition
$sqlqm = "SELECT *
FROM {{$tablename}}
WHERE " . $DB->sql_compare_text('content') . " = " . $DB->sql_compare_text('?');
$this->assertTrue($records = $DB->get_records_sql($sqlqm, array('1')));
$this->assertEqual(1, count($records)); $this->assertEqual(1, count($records));
$this->assertTrue($records = $DB->get_records($tablename, array('content' => 1))); $this->assertTrue($records = $DB->get_records_sql($sqlqm, array(1)));
$this->assertEqual(1, count($records)); $this->assertEqual(1, count($records));
$this->assertTrue($records = $DB->get_records($tablename, array('content' => 2))); $sqlnamed = "SELECT *
FROM {{$tablename}}
WHERE " . $DB->sql_compare_text('content') . " = " . $DB->sql_compare_text(':content');
$this->assertTrue($records = $DB->get_records_sql($sqlnamed, array('content' => 2)));
$this->assertEqual(1, count($records)); $this->assertEqual(1, count($records));
$this->assertTrue($records = $DB->get_records($tablename, array('content' => '2'))); $this->assertTrue($records = $DB->get_records_sql($sqlnamed, array('content' => '2')));
$this->assertEqual(1, count($records)); $this->assertEqual(1, count($records));
*/
} }
} }