From 800f2d9aa461bf65c7e971de388d5367af1996bf Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 22 May 2009 07:08:15 +0000 Subject: - Patch #467984 by Berdir: fixed some database glitches and extended the tests. --- modules/simpletest/tests/database_test.test | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 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 da3add21a..590e9c102 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -1689,6 +1689,46 @@ class DatabaseSelectPagerDefaultTestCase extends DatabaseTestCase { $this->assertEqual(count($data->names), $correct_number, t('Correct number of records returned by pager: @number', array('@number' => $correct_number))); } } + + /** + * Confirm that a pager query with inner pager query returns valid results. + * + * This is a regression test for #467984. + */ + function testInnerPagerQuery() { + $query = db_select('test', 't')->extend('PagerDefault'); + $query + ->fields('t', array('age')) + ->orderBy('age') + ->limit(5); + + $outer_query = db_select($query); + $outer_query->addField('subquery', 'age'); + + $ages = $outer_query + ->execute() + ->fetchCol(); + $this->assertEqual($ages, array(25, 26, 27, 28), 'Inner pager query returned the correct ages.'); + } + + /** + * Confirm that a paging query with a having expression returns valid results. + * + * This is a regression test for #467984. + */ + function testHavingPagerQuery() { + $query = db_select('test', 't')->extend('PagerDefault'); + $query + ->fields('t', array('age')) + ->orderBy('age') + ->having('COUNT(age) > :count', array(':count' => 1)) + ->limit(5); + + $ages = $query + ->execute() + ->fetchCol(); + $this->assertEqual($ages, array(25), ' pager query with having expression returned the correct ages.'); + } } -- cgit v1.2.3