From a50f016991527c419595f81397f3ad67e12bea1c Mon Sep 17 00:00:00 2001 From: webchick Date: Sun, 22 Apr 2012 18:57:18 -0700 Subject: Issue #1237252 by mfb, bfroehle, drewish, Berdir, iamEAP, drumm: Fixed DB Case Sensitivity: Allow BINARY attribute in MySQL. --- modules/simpletest/tests/database_test.test | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'modules/simpletest/tests/database_test.test') diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index 7b15cf3fa..399e2d20f 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -3120,6 +3120,39 @@ class DatabaseBasicSyntaxTestCase extends DatabaseTestCase { } } +/** + * Test case sensitivity handling. + */ +class DatabaseCaseSensitivityTestCase extends DatabaseTestCase { + public static function getInfo() { + return array( + 'name' => 'Case sensitivity', + 'description' => 'Test handling case sensitive collation.', + 'group' => 'Database', + ); + } + + /** + * Test BINARY collation in MySQL. + */ + function testCaseSensitiveInsert() { + $num_records_before = db_query('SELECT COUNT(*) FROM {test}')->fetchField(); + + $john = db_insert('test') + ->fields(array( + 'name' => 'john', // <- A record already exists with name 'John'. + 'age' => 2, + 'job' => 'Baby', + )) + ->execute(); + + $num_records_after = db_query('SELECT COUNT(*) FROM {test}')->fetchField(); + $this->assertIdentical($num_records_before + 1, (int) $num_records_after, t('Record inserts correctly.')); + $saved_age = db_query('SELECT age FROM {test} WHERE name = :name', array(':name' => 'john'))->fetchField(); + $this->assertIdentical($saved_age, '2', t('Can retrieve after inserting.')); + } +} + /** * Test invalid data handling. */ -- cgit v1.2.3