summaryrefslogtreecommitdiff
path: root/src/tests/ini
diff options
context:
space:
mode:
authorjvoisin2022-03-20 18:20:45 +0100
committerjvoisin2022-03-20 18:20:45 +0100
commit81dd7f2ef07af306fe83d7755cbac4529aa9fc8d (patch)
tree32cc44c6231b30db5ac7b15699297863460784aa /src/tests/ini
parent83b01942dfc80474cc05e09aeef4b44307a7120b (diff)
parentc38df1077a6c1dfbca1baca049214d053e2e7684 (diff)
Merge remote-tracking branch 'sektioneins/master'
Diffstat (limited to 'src/tests/ini')
-rw-r--r--src/tests/ini/config/sp-policy-drop.ini3
-rw-r--r--src/tests/ini/config/sp-policy-silent-fail.ini3
-rw-r--r--src/tests/ini/config/sp.ini10
-rw-r--r--src/tests/ini/ini_min_policy_drop.phpt13
-rw-r--r--src/tests/ini/ini_min_policy_silent_fail.phpt14
-rw-r--r--src/tests/ini/ini_minmax.phpt34
-rw-r--r--src/tests/ini/ini_null.phpt26
-rw-r--r--src/tests/ini/ini_regexp.phpt19
-rw-r--r--src/tests/ini/ini_regexp_drop.phpt13
-rw-r--r--src/tests/ini/ini_set.phpt12
10 files changed, 147 insertions, 0 deletions
diff --git a/src/tests/ini/config/sp-policy-drop.ini b/src/tests/ini/config/sp-policy-drop.ini
new file mode 100644
index 0000000..4b1e374
--- /dev/null
+++ b/src/tests/ini/config/sp-policy-drop.ini
@@ -0,0 +1,3 @@
1sp.ini_protection.enable();
2sp.ini_protection.policy_drop();
3sp.ini.key("max_execution_time").min("30").max("300");
diff --git a/src/tests/ini/config/sp-policy-silent-fail.ini b/src/tests/ini/config/sp-policy-silent-fail.ini
new file mode 100644
index 0000000..2123837
--- /dev/null
+++ b/src/tests/ini/config/sp-policy-silent-fail.ini
@@ -0,0 +1,3 @@
1sp.ini_protection.enable();
2sp.ini_protection.policy_silent_fail();
3sp.ini.key("max_execution_time").min("30").max("300");
diff --git a/src/tests/ini/config/sp.ini b/src/tests/ini/config/sp.ini
new file mode 100644
index 0000000..86a63a7
--- /dev/null
+++ b/src/tests/ini/config/sp.ini
@@ -0,0 +1,10 @@
1sp.ini_protection.enable();
2
3sp.ini.key("max_execution_time").min("30").max("300");
4sp.ini.key("highlight.comment").regexp("^#[0-9a-fA-F]{6}$");
5sp.ini.key("default_mimetype").set("text/plain").ro();
6
7sp.ini.key("sendmail_from").set("test@example.com").regexp(".*@example\\.com$").allow_null();
8sp.ini.key("unserialize_callback_func").set("def").regexp("^abc$");
9
10sp.ini.key("user_agent").regexp("^abc$").drop();
diff --git a/src/tests/ini/ini_min_policy_drop.phpt b/src/tests/ini/ini_min_policy_drop.phpt
new file mode 100644
index 0000000..ef40ebc
--- /dev/null
+++ b/src/tests/ini/ini_min_policy_drop.phpt
@@ -0,0 +1,13 @@
1--TEST--
2INI protection .min() + .policy_drop()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp-policy-drop.ini
7--FILE--
8<?php
9var_dump(ini_set("max_execution_time", "29") === false);
10var_dump(ini_get("max_execution_time"));
11?>
12--EXPECTF--
13Fatal error: [snuffleupagus][0.0.0.0][ini_protection][drop] INI value out of range in %a/ini_min_policy_drop.php on line 2
diff --git a/src/tests/ini/ini_min_policy_silent_fail.phpt b/src/tests/ini/ini_min_policy_silent_fail.phpt
new file mode 100644
index 0000000..d0117a7
--- /dev/null
+++ b/src/tests/ini/ini_min_policy_silent_fail.phpt
@@ -0,0 +1,14 @@
1--TEST--
2INI protection .min() + .policy_silent_fail()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp-policy-silent-fail.ini
7--FILE--
8<?php
9var_dump(ini_set("max_execution_time", "29") === false);
10var_dump(ini_get("max_execution_time"));
11?>
12--EXPECTF--
13bool(true)
14string(1) "0" \ No newline at end of file
diff --git a/src/tests/ini/ini_minmax.phpt b/src/tests/ini/ini_minmax.phpt
new file mode 100644
index 0000000..4cd6bc4
--- /dev/null
+++ b/src/tests/ini/ini_minmax.phpt
@@ -0,0 +1,34 @@
1--TEST--
2INI protection .min()/.max()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp.ini
7--FILE--
8<?php
9var_dump(ini_set("max_execution_time", "30") === false);
10var_dump(ini_get("max_execution_time"));
11
12var_dump(ini_set("max_execution_time", "300") === false);
13var_dump(ini_get("max_execution_time"));
14
15var_dump(ini_set("max_execution_time", "29") === false);
16var_dump(ini_get("max_execution_time"));
17
18var_dump(ini_set("max_execution_time", "301") === false);
19var_dump(ini_get("max_execution_time"));
20
21?>
22--EXPECTF--
23bool(false)
24string(2) "30"
25bool(false)
26string(3) "300"
27
28Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value out of range in %a/ini_minmax.php on line 8
29bool(true)
30string(3) "300"
31
32Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value out of range in %a/ini_minmax.php on line 11
33bool(true)
34string(3) "300" \ No newline at end of file
diff --git a/src/tests/ini/ini_null.phpt b/src/tests/ini/ini_null.phpt
new file mode 100644
index 0000000..32a12c1
--- /dev/null
+++ b/src/tests/ini/ini_null.phpt
@@ -0,0 +1,26 @@
1--TEST--
2INI protection .allow_null()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp.ini
7--FILE--
8<?php
9var_dump(ini_set("sendmail_from", "foo@example.com") === false);
10var_dump(ini_get("sendmail_from"));
11
12var_dump(ini_set("sendmail_from", NULL) === false);
13var_dump(ini_get("sendmail_from"));
14
15var_dump(ini_set("unserialize_callback_func", NULL) === false);
16var_dump(ini_get("unserialize_callback_func"));
17?>
18--EXPECTF--
19bool(false)
20string(15) "foo@example.com"
21bool(false)
22string(0) ""
23
24Warning: [snuffleupagus][0.0.0.0][ini_protection][log] new INI value must not be NULL or empty in %a/ini_null.php on line 8
25bool(true)
26string(3) "def" \ No newline at end of file
diff --git a/src/tests/ini/ini_regexp.phpt b/src/tests/ini/ini_regexp.phpt
new file mode 100644
index 0000000..f6c5198
--- /dev/null
+++ b/src/tests/ini/ini_regexp.phpt
@@ -0,0 +1,19 @@
1--TEST--
2INI protection .regexp()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp.ini
7--FILE--
8<?php
9ini_set("highlight.comment", "#000aBc");
10var_dump(ini_get("highlight.comment"));
11
12ini_set("highlight.comment", "xxx");
13var_dump(ini_get("highlight.comment"));
14?>
15--EXPECTF--
16string(7) "#000aBc"
17
18Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value does not match regex in %a/ini_regexp.php on line 5
19string(7) "#000aBc"
diff --git a/src/tests/ini/ini_regexp_drop.phpt b/src/tests/ini/ini_regexp_drop.phpt
new file mode 100644
index 0000000..9225470
--- /dev/null
+++ b/src/tests/ini/ini_regexp_drop.phpt
@@ -0,0 +1,13 @@
1--TEST--
2INI protection .min() + .drop()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp.ini
7--FILE--
8<?php
9var_dump(ini_set("user_agent", "Foo") === false);
10var_dump(ini_get("user_agent"));
11?>
12--EXPECTF--
13Fatal error: [snuffleupagus][0.0.0.0][ini_protection][drop] INI value does not match regex in %a/ini_regexp_drop.php on line 2
diff --git a/src/tests/ini/ini_set.phpt b/src/tests/ini/ini_set.phpt
new file mode 100644
index 0000000..bfafbe8
--- /dev/null
+++ b/src/tests/ini/ini_set.phpt
@@ -0,0 +1,12 @@
1--TEST--
2INI protection .set()
3--SKIPIF--
4<?php if (!extension_loaded("snuffleupagus")) print("skip"); ?>
5--INI--
6sp.configuration_file={PWD}/config/sp.ini
7--FILE--
8<?php
9var_dump(ini_get("default_mimetype"));
10?>
11--EXPECTF--
12string(10) "text/plain" \ No newline at end of file