From 8db459e1ea3abf3b2318f172184e4cf06da2c29d Mon Sep 17 00:00:00 2001 From: jvoisin Date: Mon, 10 Sep 2018 12:17:41 +0000 Subject: Improve a bit the coverage --- src/tests/set_custom_session_handler.phpt | 72 +++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/tests/set_custom_session_handler.phpt (limited to 'src/tests/set_custom_session_handler.phpt') diff --git a/src/tests/set_custom_session_handler.phpt b/src/tests/set_custom_session_handler.phpt new file mode 100644 index 0000000..5b46fbc --- /dev/null +++ b/src/tests/set_custom_session_handler.phpt @@ -0,0 +1,72 @@ +--TEST-- +Set a custom session handler +--SKIPIF-- + +--INI-- +sp.configuration_file={PWD}/config/config_crypt_session.ini +session.save_path = "/tmp" +--ENV-- +return <<savePath = $savePath; + if (!is_dir($this->savePath)) { + mkdir($this->savePath, 0777); + } + + return true; + } + + function close() { + return true; + } + + function read($id) { + return (string)@file_get_contents("$this->savePath/sess_$id"); + } + + function write($id, $data) { + return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true; + } + + function destroy($id) { + $file = "$this->savePath/sess_$id"; + if (file_exists($file)) { + unlink($file); + } + + return true; + } + + function gc($maxlifetime) { + foreach (glob("$this->savePath/sess_*") as $file) { + if (filemtime($file) + $maxlifetime < time() && file_exists($file)) { + unlink($file); + } + } + return true; + } +} + +$handler = new FileSessionHandler(); +session_set_save_handler( + array($handler, 'open'), + array($handler, 'close'), + array($handler, 'read'), + array($handler, 'write'), + array($handler, 'destroy'), + array($handler, 'gc') + ); + +// the following prevents unexpected effects when using objects as save handlers +register_shutdown_function('session_write_close'); + +session_start(); +// proceed to set and retrieve values by key from $_SESSION +--EXPECTF-- -- cgit v1.3