Files
php-src/ext/sqlite3/tests/sqlite3_trampoline_setauthorizer.phpt
NickSdot 1da3a6398b Applied fixers to improve test robustness to extensions with no code owners (#23018)
* ext/bz2: applied fixers to improve test robustness

* ext/calendar: applied fixers to improve test robustness

* ext/exif: applied fixers to improve test robustness

* ext/fileinfo: applied fixers to improve test robustness

* ext/filter: applied fixers to improve test robustness

* ext/ftp: applied fixers to improve test robustness

* ext/hash: applied fixers to improve test robustness

* ext/iconv: applied fixers to improve test robustness

* ext/ldap: applied fixers to improve test robustness

* ext/pcre: applied fixers to improve test robustness

* ext/posix: applied fixers to improve test robustness

* ext/readline: applied fixers to improve test robustness

* ext/shmop: applied fixers to improve test robustness

* ext/snmp: applied fixers to improve test robustness

* ext/sodium: applied fixers to improve test robustness

* ext/sqlite3: applied fixers to improve test robustness

* ext/sysvmsg: applied fixers to improve test robustness

* ext/sysvsem: applied fixers to improve test robustness

* ext/sysvshm: applied fixers to improve test robustness

* ext/tidy: applied fixers to improve test robustness

* ext/tokenizer: applied fixers to improve test robustness

* ext/zend_test: applied fixers to improve test robustness

* ext/zlib: applied fixers to improve test robustness
2026-08-04 13:10:07 +01:00

42 lines
890 B
PHP

--TEST--
SQLite3 user authorizer trampoline callback
--EXTENSIONS--
sqlite3
--FILE--
<?php
class TrampolineTest {
public function __call(string $name, array $arguments) {
echo 'Trampoline for ', $name, PHP_EOL;
if ($arguments[0] == SQLite3::SELECT) {
return SQLite3::OK;
}
return SQLite3::DENY;
}
}
$o = new TrampolineTest();
$callback = [$o, 'authorizer'];
$db = new SQLite3(':memory:');
$db->enableExceptions(true);
$db->setAuthorizer($callback);
// This query should be accepted
var_dump($db->querySingle('SELECT 1;'));
try {
// This one should fail
var_dump($db->querySingle('CREATE TABLE test (a, b);'));
} catch (\Exception $e) {
echo $e::class, ': ', $e->getMessage(), "\n";
}
?>
--EXPECT--
Trampoline for authorizer
int(1)
Trampoline for authorizer
SQLite3Exception: Unable to prepare statement: not authorized