diff options
Diffstat (limited to 'modules/simpletest/tests/database_test.test')
-rw-r--r-- | modules/simpletest/tests/database_test.test | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index b80f55231e90..65d84c18075f 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -776,6 +776,25 @@ class DatabaseUpdateTestCase extends DatabaseTestCase { $this->assertIdentical($num_matches, '1', t('Updated fields successfully.')); } + /** + * Test updating with expressions. + */ + function testExpressionUpdate() { + // Set age = 1 for a single row for this test to work. + db_update('test') + ->condition('id', 1) + ->fields(array('age' => 1)) + ->execute(); + + // Ensure that expressions are handled properly. This should set every + // record's age to a square of itself, which will change only three of the + // four records in the table since 1*1 = 1. That means only three records + // are modified, so we should get back 3, not 4, from execute(). + $num_rows = db_update('test') + ->expression('age', 'age * age') + ->execute(); + $this->assertIdentical($num_rows, 3, t('Number of affected rows are returned.')); + } } /** |