From b0e2635675e0da64c53ec3230a0debcb4259e176 Mon Sep 17 00:00:00 2001 From: Angie Byron Date: Sat, 8 Nov 2008 07:06:03 +0000 Subject: #331737 by Crell: Fix nested conditions (plus test) --- modules/simpletest/tests/database_test.test | 17 +++++++++++++++++ 1 file changed, 17 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 752b772f8..5656dc740 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1416,6 +1416,23 @@ class DatabaseSelectComplexTestCase extends DatabaseTestCase { $this->assertTrue(FALSE, $e->getMessage()); } } + + /** + * Confirm that we can properly nest conditional clauses. + */ + function testNestedConditions() { + // This query should translate to: + // "SELECT job FROM {test} WHERE name = 'Paul' AND (age = 26 OR age = 27)" + // That should find only one record. Yes it's a non-optimal way of writing + // that query but that's not the point! + $query = db_select('test'); + $query->addField('test', 'job'); + $query->condition('name', 'Paul'); + $query->condition(db_or()->condition('age', 26)->condition('age', 27)); + + $job = $query->execute()->fetchField(); + $this->assertEqual($job, 'Songwriter', t('Correct data retrieved.')); + } } /** -- cgit v1.2.3