summaryrefslogtreecommitdiff
path: root/src/tests/unserialize_php8
diff options
context:
space:
mode:
authorjvoisin2022-12-07 21:02:22 +0100
committerjvoisin2022-12-08 20:55:46 +0100
commitccfaf3e4713b1878241f1235a6fcb66ad0582d47 (patch)
tree97dcd84aed33b1d98095d0cf3f467e9dfb975f0c /src/tests/unserialize_php8
parent5966fefb9a291bd0eecd0fff9396b2b6cea4a62e (diff)
Add unserialize_noclass
Diffstat (limited to 'src/tests/unserialize_php8')
-rw-r--r--src/tests/unserialize_php8/config/config_serialize_noclass.ini1
-rw-r--r--src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini1
-rw-r--r--src/tests/unserialize_php8/unserialize_noclass_forced.phpt38
-rw-r--r--src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt35
4 files changed, 75 insertions, 0 deletions
diff --git a/src/tests/unserialize_php8/config/config_serialize_noclass.ini b/src/tests/unserialize_php8/config/config_serialize_noclass.ini
new file mode 100644
index 0000000..b84de51
--- /dev/null
+++ b/src/tests/unserialize_php8/config/config_serialize_noclass.ini
@@ -0,0 +1 @@
sp.unserialize_noclass.enable();
diff --git a/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini b/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini
new file mode 100644
index 0000000..0238772
--- /dev/null
+++ b/src/tests/unserialize_php8/config/config_serialize_noclass_disabled.ini
@@ -0,0 +1 @@
sp.unserialize_noclass.disable();
diff --git a/src/tests/unserialize_php8/unserialize_noclass_forced.phpt b/src/tests/unserialize_php8/unserialize_noclass_forced.phpt
new file mode 100644
index 0000000..9f276c5
--- /dev/null
+++ b/src/tests/unserialize_php8/unserialize_noclass_forced.phpt
@@ -0,0 +1,38 @@
1--TEST--
2Unserialize with noclass forced
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize_noclass.ini
7--FILE--
8<?php
9class C {
10 public $name;
11}
12$c = new C;
13$c->name = "test";
14
15$a = serialize($c);
16var_dump(unserialize($a, ['allowed_classes' => false]));
17var_dump(unserialize($a, ['allowed_classes' => true ]));
18var_dump(unserialize($a));
19?>
20--EXPECT--
21object(__PHP_Incomplete_Class)#2 (2) {
22 ["__PHP_Incomplete_Class_Name"]=>
23 string(1) "C"
24 ["name"]=>
25 string(4) "test"
26}
27object(__PHP_Incomplete_Class)#2 (2) {
28 ["__PHP_Incomplete_Class_Name"]=>
29 string(1) "C"
30 ["name"]=>
31 string(4) "test"
32}
33object(__PHP_Incomplete_Class)#2 (2) {
34 ["__PHP_Incomplete_Class_Name"]=>
35 string(1) "C"
36 ["name"]=>
37 string(4) "test"
38}
diff --git a/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt b/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt
new file mode 100644
index 0000000..2c4223a
--- /dev/null
+++ b/src/tests/unserialize_php8/unserialize_noclass_forced_disabled.phpt
@@ -0,0 +1,35 @@
1--TEST--
2Unserialize with noclass forced disabled
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize_noclass_disabled.ini
7--FILE--
8<?php
9class C {
10 public $name;
11}
12$c = new C;
13$c->name = "test";
14
15$a = serialize($c);
16var_dump(unserialize($a, ['allowed_classes' => false]));
17var_dump(unserialize($a, ['allowed_classes' => true ]));
18var_dump(unserialize($a));
19?>
20--EXPECT--
21object(__PHP_Incomplete_Class)#2 (2) {
22 ["__PHP_Incomplete_Class_Name"]=>
23 string(1) "C"
24 ["name"]=>
25 string(4) "test"
26}
27object(C)#2 (1) {
28 ["name"]=>
29 string(4) "test"
30}
31object(C)#2 (1) {
32 ["name"]=>
33 string(4) "test"
34}
35