summaryrefslogtreecommitdiff
path: root/src/tests/unserialize
diff options
context:
space:
mode:
Diffstat (limited to 'src/tests/unserialize')
-rw-r--r--src/tests/unserialize/config/config_serialize.ini2
-rw-r--r--src/tests/unserialize/config/config_serialize_sim.ini2
-rw-r--r--src/tests/unserialize/config/dump_unserialize.ini2
-rw-r--r--src/tests/unserialize/dump_unserialize.phpt39
-rw-r--r--src/tests/unserialize/serialize.phpt13
-rw-r--r--src/tests/unserialize/unserialize.phpt13
-rw-r--r--src/tests/unserialize/unserialize_fail.phpt15
-rw-r--r--src/tests/unserialize/unserialize_sim.phpt18
-rw-r--r--src/tests/unserialize/unserialize_wrong_call.phpt14
9 files changed, 118 insertions, 0 deletions
diff --git a/src/tests/unserialize/config/config_serialize.ini b/src/tests/unserialize/config/config_serialize.ini
new file mode 100644
index 0000000..f2c1699
--- /dev/null
+++ b/src/tests/unserialize/config/config_serialize.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable(); \ No newline at end of file
diff --git a/src/tests/unserialize/config/config_serialize_sim.ini b/src/tests/unserialize/config/config_serialize_sim.ini
new file mode 100644
index 0000000..7f015e0
--- /dev/null
+++ b/src/tests/unserialize/config/config_serialize_sim.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable().simulation();
diff --git a/src/tests/unserialize/config/dump_unserialize.ini b/src/tests/unserialize/config/dump_unserialize.ini
new file mode 100644
index 0000000..4352a3e
--- /dev/null
+++ b/src/tests/unserialize/config/dump_unserialize.ini
@@ -0,0 +1,2 @@
1sp.global.secret_key("abcdef");
2sp.unserialize_hmac.enable().dump("/tmp/dump_result/");
diff --git a/src/tests/unserialize/dump_unserialize.phpt b/src/tests/unserialize/dump_unserialize.phpt
new file mode 100644
index 0000000..4b54cbb
--- /dev/null
+++ b/src/tests/unserialize/dump_unserialize.phpt
@@ -0,0 +1,39 @@
1--TEST--
2Dump unserialize
3--SKIPIF--
4<?php
5if (!extension_loaded("snuffleupagus")) {
6 print "skip";
7}
8?>
9--POST--
10post_a=data_post_a&post_b=data_post_b
11--GET--
12get_a=data_get_a&get_b=data_get_b
13--COOKIE--
14cookie_a=data_cookie_a&cookie_b=data_cookie_b
15--INI--
16sp.configuration_file={PWD}/config/dump_unserialize.ini
17--FILE--
18<?php
19@mkdir("/tmp/dump_result/");
20foreach (glob("/tmp/dump_result/sp_dump.*") as $dump) {
21 @unlink($dump);
22}
23
24echo "1\n";
25var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdhflkasjdf'));
26$filename = glob('/tmp/dump_result/sp_dump.*')[0];
27$res = file($filename);
28if ($res[2] != "GET:get_a='data_get_a' get_b='data_get_b' \n") {
29 echo "1\n";
30} elseif ($res[3] != "POST:post_a='data_post_a' post_b='data_post_b' \n") {
31 echo "2\n";
32} elseif ($res[4] != "COOKIE:cookie_a='data_cookie_a&cookie_b=data_cookie_b' \n") {
33 echo "3\n";
34}
35?>
36--EXPECTF--
371
38
39Fatal error: [snuffleupagus][unserialize] Invalid HMAC for s:1:"a";alyualskdufyhalkdjsfh in %a/dump_unserialize.php on line 8
diff --git a/src/tests/unserialize/serialize.phpt b/src/tests/unserialize/serialize.phpt
new file mode 100644
index 0000000..e93dbaf
--- /dev/null
+++ b/src/tests/unserialize/serialize.phpt
@@ -0,0 +1,13 @@
1--TEST--
2Test serialize hmac
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9echo serialize("a");
10?>
11--EXPECT--
12s:1:"a";650609b417904d0d9bbf1fc44a975d13ecdf6b02b715c1a06271fb3b673f25b1
13
diff --git a/src/tests/unserialize/unserialize.phpt b/src/tests/unserialize/unserialize.phpt
new file mode 100644
index 0000000..b1db915
--- /dev/null
+++ b/src/tests/unserialize/unserialize.phpt
@@ -0,0 +1,13 @@
1--TEST--
2Unserialize ok
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9$a=serialize("a");
10var_dump(unserialize($a));
11?>
12--EXPECT--
13string(1) "a"
diff --git a/src/tests/unserialize/unserialize_fail.phpt b/src/tests/unserialize/unserialize_fail.phpt
new file mode 100644
index 0000000..c6411a5
--- /dev/null
+++ b/src/tests/unserialize/unserialize_fail.phpt
@@ -0,0 +1,15 @@
1--TEST--
2Unserialize fail
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9var_dump(unserialize('s:1:"a";'));
10var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdhflkasjdf'));
11var_dump(unserialize('s:1:"a";dslfjklfjfkjfdjffjfjads'));
12var_dump(unserialize(1,2,3,4));
13?>
14--EXPECTF--
15Fatal error: [snuffleupagus][unserialize] The serialized object is too small. in %a/unserialize_fail.php on line 2 \ No newline at end of file
diff --git a/src/tests/unserialize/unserialize_sim.phpt b/src/tests/unserialize/unserialize_sim.phpt
new file mode 100644
index 0000000..d919af1
--- /dev/null
+++ b/src/tests/unserialize/unserialize_sim.phpt
@@ -0,0 +1,18 @@
1--TEST--
2Unserialize ok
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize_sim.ini
7--FILE--
8<?php
9$a=serialize("a");
10echo $a;
11var_dump(unserialize($a));
12var_dump(unserialize('s:1:"a";alyualskdufyhalkdjsfhalkjdhflaksjdfhlkasdhflkahdawkuerylksjdfhlkssjgdflaksjdh1337sjdf'));
13?>
14--EXPECTF--
15s:1:"a";650609b417904d0d9bbf1fc44a975d13ecdf6b02b715c1a06271fb3b673f25b1string(1) "a"
16
17Warning: [snuffleupagus][unserialize] Invalid HMAC for s:1:"a";alyualskdufyhalkdjsfh in %a/unserialize_sim.php on line 5
18string(1) "a"
diff --git a/src/tests/unserialize/unserialize_wrong_call.phpt b/src/tests/unserialize/unserialize_wrong_call.phpt
new file mode 100644
index 0000000..729d020
--- /dev/null
+++ b/src/tests/unserialize/unserialize_wrong_call.phpt
@@ -0,0 +1,14 @@
1--TEST--
2Unserialize ok, but called with the wrong numeber of aguments
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print "skip"; ?>
5--INI--
6sp.configuration_file={PWD}/config/config_serialize.ini
7--FILE--
8<?php
9$a=serialize("a");
10var_dump(unserialize($a, "too", "many", "aaaaaaaarguments!"));
11?>
12--EXPECTF--
13Warning: unserialize() expects at most 2 parameters, 4 given in %a/unserialize_wrong_call.php on line %d
14bool(false)