fix page browser test for sqlite; see #87 and #161

pull/298/head
David Goodwin 5 years ago
parent 71e7859c91
commit 29d990f5f4

@ -548,9 +548,11 @@ function create_page_browser($idxfield, $querypart, $sql_params = []) {
}
if (db_sqlite()) {
$bits = explode('.', $idxfield);
$end = $bits[1];
$query = "
WITH idx AS (SELECT * $querypart)
SELECT $idxfield AS label, (SELECT (COUNT(*) - 1) FROM idx t1 WHERE t1.$idxfield <= t2.$idxfield) AS row
SELECT $end AS label, (SELECT (COUNT(*) - 1) FROM idx t1 WHERE t1.$end <= t2.$end ) AS row
FROM idx t2
WHERE (row % $page_size) IN (0,$page_size_zerobase) OR row = $count_results";
}

@ -3,11 +3,11 @@
class CreatePageBrowserTest extends \PHPUnit\Framework\TestCase {
public function testBasic() {
global $CONF;
$CONF['page_size'] = 5;
$CONF['page_size'] = 10;
// insert some data.
foreach (range(1,10) as $i) {
$username = 'pbt' . $i;
// insert some data.
foreach (range(1,100) as $i) {
$username = md5(random_int(0, 999999));
$this->assertEquals(1,
db_insert(
@ -25,8 +25,11 @@ class CreatePageBrowserTest extends \PHPUnit\Framework\TestCase {
}
// this breaks on sqlite atm.
$b = create_page_browser('mailbox.username FROM mailbox', 'WHERE 1 = 1' );
$b = create_page_browser('mailbox.username', 'FROM mailbox WHERE 1 = 1');
$this->assertEquals(10, sizeof($b));
foreach($b as $range) {
$this->assertRegExp('/[\w]{2}\-[\w]{2}/', $range);
}
$this->assertNotEmpty($b);
}
}

Loading…
Cancel
Save