summaryrefslogtreecommitdiff
path: root/ext/session/tests
diff options
context:
space:
mode:
authorChristoph M. Becker <cmbecker69@gmx.de>2021-03-22 22:14:01 +0100
committerChristoph M. Becker <cmbecker69@gmx.de>2021-03-22 22:17:35 +0100
commit838951c2d6612efbf6adeb5b1abc7fced808dc39 (patch)
tree4c67398ff8c3101fa99d1d278dc9678e73ffb097 /ext/session/tests
parentbc7ea73da59dde1c205859b73768593cc37de31d (diff)
downloadphp-git-838951c2d6612efbf6adeb5b1abc7fced808dc39.tar.gz
Fix #80889: amendment
`session_set_save_handler()` may be called with callables instead of an object; we need to cater to that as well. We also extract a set_user_save_handler_ini() function to avoid code duplication. Closes GH-6796.
Diffstat (limited to 'ext/session/tests')
-rw-r--r--ext/session/tests/bug80889a.phpt35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/session/tests/bug80889a.phpt b/ext/session/tests/bug80889a.phpt
new file mode 100644
index 0000000000..ff0c025382
--- /dev/null
+++ b/ext/session/tests/bug80889a.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Bug #80889 (Cannot set save handler when save_handler is invalid)
+--SKIPIF--
+<?php include('skipif.inc'); ?>
+--INI--
+session.save_handler=whatever
+--FILE--
+<?php
+$initHandler = ini_get('session.save_handler');
+session_set_save_handler(
+ function ($savePath, $sessionName) {
+ return true;
+ },
+ function () {
+ return true;
+ },
+ function ($id) {
+ return '';
+ },
+ function ($id, $data) {
+ return true;
+ },
+ function ($id) {
+ return true;
+ },
+ function ($maxlifetime) {
+ return true;
+ }
+);
+$setHandler = ini_get('session.save_handler');
+var_dump($initHandler, $setHandler);
+?>
+--EXPECT--
+string(8) "whatever"
+string(4) "user"