assertInstanceOf(\rcube_db::class, $db); } /** * Test for db_version() method */ public function test_db_version() { $v = \rcmail_utils::db_version(); $this->assertMatchesRegularExpression('/^[0-9]{10}$/', $v); } /** * Test for db_clean() method */ public function test_db_clean() { ob_start(); \rcmail_utils::db_clean(7); $output = ob_get_contents(); ob_end_clean(); $this->assertTrue(str_contains($output, '0 records deleted')); } /** * Test for indexcontacts() method */ public function test_indexcontacts() { self::initDB('contacts'); ob_start(); \rcmail_utils::indexcontacts(); $output = ob_get_contents(); ob_end_clean(); $this->assertTrue(str_starts_with($output, 'Indexing contacts for user')); } /** * Test for mod_pref() method */ public function test_mod_pref() { self::initDB('init'); $db = \rcmail::get_instance()->get_dbh(); ob_start(); \rcmail_utils::mod_pref('test', []); $output = ob_get_contents(); ob_end_clean(); $this->assertTrue(str_contains($output, 'Updating prefs for user 1')); $this->assertTrue(str_contains($output, 'saved')); $query = $db->query('SELECT preferences FROM `users` WHERE `user_id` = 1'); $result = $db->fetch_assoc($query); $prefs = unserialize($result['preferences']); $this->assertSame([], $prefs['test']); } }