diff options
| author | Ben Fuhrmannek | 2021-08-07 15:57:30 +0200 |
|---|---|---|
| committer | Ben Fuhrmannek | 2021-08-07 15:57:30 +0200 |
| commit | 5fbb1733f67172e4111fa512961106f4733395db (patch) | |
| tree | 56ea902e1e3dab7b3f105e1e11d79d58ba870381 /src/tests | |
| parent | bd8b5bb241ca359b65c1a3717c9905d034b9703b (diff) | |
unit tests for ini protection feature
Diffstat (limited to 'src/tests')
| -rw-r--r-- | src/tests/ini/config/sp-policy-drop.ini | 3 | ||||
| -rw-r--r-- | src/tests/ini/config/sp-policy-silent-fail.ini | 3 | ||||
| -rw-r--r-- | src/tests/ini/config/sp.ini | 11 | ||||
| -rw-r--r-- | src/tests/ini/ini_min_policy_drop.phpt | 13 | ||||
| -rw-r--r-- | src/tests/ini/ini_min_policy_silent_fail.phpt | 14 | ||||
| -rw-r--r-- | src/tests/ini/ini_minmax.phpt | 34 | ||||
| -rw-r--r-- | src/tests/ini/ini_null.phpt | 26 | ||||
| -rw-r--r-- | src/tests/ini/ini_regexp.phpt | 19 | ||||
| -rw-r--r-- | src/tests/ini/ini_regexp_drop.phpt | 13 | ||||
| -rw-r--r-- | src/tests/ini/ini_set.phpt | 12 |
10 files changed, 148 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..1c28030 --- /dev/null +++ b/src/tests/ini/config/sp-policy-drop.ini | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | sp.ini_protection.enable(); | ||
| 2 | sp.ini_protection.policy_drop(); | ||
| 3 | sp.ini.key("log_errors_max_len").min("200").max("2000"); | ||
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..8236077 --- /dev/null +++ b/src/tests/ini/config/sp-policy-silent-fail.ini | |||
| @@ -0,0 +1,3 @@ | |||
| 1 | sp.ini_protection.enable(); | ||
| 2 | sp.ini_protection.policy_silent_fail(); | ||
| 3 | sp.ini.key("log_errors_max_len").min("200").max("2000"); | ||
diff --git a/src/tests/ini/config/sp.ini b/src/tests/ini/config/sp.ini new file mode 100644 index 0000000..3022e37 --- /dev/null +++ b/src/tests/ini/config/sp.ini | |||
| @@ -0,0 +1,11 @@ | |||
| 1 | sp.ini_protection.enable(); | ||
| 2 | |||
| 3 | sp.ini.key("log_errors_max_len").min("200").max("2000"); | ||
| 4 | sp.ini.key("max_execution_time").min("30").max("600"); | ||
| 5 | sp.ini.key("highlight.comment").regexp("^#[0-9a-fA-F]{6}$"); | ||
| 6 | sp.ini.key("default_mimetype").set("text/plain").ro(); | ||
| 7 | |||
| 8 | sp.ini.key("sendmail_from").set("test@example.com").regexp(".*@example\\.com$").allow_null(); | ||
| 9 | sp.ini.key("unserialize_callback_func").set("def").regexp("^abc$"); | ||
| 10 | |||
| 11 | sp.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..9dddcc4 --- /dev/null +++ b/src/tests/ini/ini_min_policy_drop.phpt | |||
| @@ -0,0 +1,13 @@ | |||
| 1 | --TEST-- | ||
| 2 | INI protection .min() + .policy_drop() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp-policy-drop.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_set("log_errors_max_len", "199") === false); | ||
| 10 | var_dump(ini_get("log_errors_max_len")); | ||
| 11 | ?> | ||
| 12 | --EXPECTF-- | ||
| 13 | Fatal 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..8ef780d --- /dev/null +++ b/src/tests/ini/ini_min_policy_silent_fail.phpt | |||
| @@ -0,0 +1,14 @@ | |||
| 1 | --TEST-- | ||
| 2 | INI protection .min() + .policy_silent_fail() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp-policy-silent-fail.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_set("log_errors_max_len", "199") === false); | ||
| 10 | var_dump(ini_get("log_errors_max_len")); | ||
| 11 | ?> | ||
| 12 | --EXPECTF-- | ||
| 13 | bool(true) | ||
| 14 | string(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..fc93075 --- /dev/null +++ b/src/tests/ini/ini_minmax.phpt | |||
| @@ -0,0 +1,34 @@ | |||
| 1 | --TEST-- | ||
| 2 | INI protection .min()/.max() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_set("log_errors_max_len", "200") === false); | ||
| 10 | var_dump(ini_get("log_errors_max_len")); | ||
| 11 | |||
| 12 | var_dump(ini_set("log_errors_max_len", "2000") === false); | ||
| 13 | var_dump(ini_get("log_errors_max_len")); | ||
| 14 | |||
| 15 | var_dump(ini_set("log_errors_max_len", "199") === false); | ||
| 16 | var_dump(ini_get("log_errors_max_len")); | ||
| 17 | |||
| 18 | var_dump(ini_set("log_errors_max_len", "2001") === false); | ||
| 19 | var_dump(ini_get("log_errors_max_len")); | ||
| 20 | |||
| 21 | ?> | ||
| 22 | --EXPECTF-- | ||
| 23 | bool(false) | ||
| 24 | string(3) "200" | ||
| 25 | bool(false) | ||
| 26 | string(4) "2000" | ||
| 27 | |||
| 28 | Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value out of range in %a/ini_minmax.php on line 8 | ||
| 29 | bool(true) | ||
| 30 | string(4) "2000" | ||
| 31 | |||
| 32 | Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value out of range in %a/ini_minmax.php on line 11 | ||
| 33 | bool(true) | ||
| 34 | string(4) "2000" \ 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-- | ||
| 2 | INI protection .allow_null() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_set("sendmail_from", "foo@example.com") === false); | ||
| 10 | var_dump(ini_get("sendmail_from")); | ||
| 11 | |||
| 12 | var_dump(ini_set("sendmail_from", NULL) === false); | ||
| 13 | var_dump(ini_get("sendmail_from")); | ||
| 14 | |||
| 15 | var_dump(ini_set("unserialize_callback_func", NULL) === false); | ||
| 16 | var_dump(ini_get("unserialize_callback_func")); | ||
| 17 | ?> | ||
| 18 | --EXPECTF-- | ||
| 19 | bool(false) | ||
| 20 | string(15) "foo@example.com" | ||
| 21 | bool(false) | ||
| 22 | string(0) "" | ||
| 23 | |||
| 24 | Warning: [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 | ||
| 25 | bool(true) | ||
| 26 | string(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-- | ||
| 2 | INI protection .regexp() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | ini_set("highlight.comment", "#000aBc"); | ||
| 10 | var_dump(ini_get("highlight.comment")); | ||
| 11 | |||
| 12 | ini_set("highlight.comment", "xxx"); | ||
| 13 | var_dump(ini_get("highlight.comment")); | ||
| 14 | ?> | ||
| 15 | --EXPECTF-- | ||
| 16 | string(7) "#000aBc" | ||
| 17 | |||
| 18 | Warning: [snuffleupagus][0.0.0.0][ini_protection][log] INI value does not match regex in %a/ini_regexp.php on line 5 | ||
| 19 | string(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-- | ||
| 2 | INI protection .min() + .drop() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_set("user_agent", "Foo") === false); | ||
| 10 | var_dump(ini_get("user_agent")); | ||
| 11 | ?> | ||
| 12 | --EXPECTF-- | ||
| 13 | Fatal 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-- | ||
| 2 | INI protection .set() | ||
| 3 | --SKIPIF-- | ||
| 4 | <?php if (!extension_loaded("snuffleupagus")) print("skip"); ?> | ||
| 5 | --INI-- | ||
| 6 | sp.configuration_file={PWD}/config/sp.ini | ||
| 7 | --FILE-- | ||
| 8 | <?php | ||
| 9 | var_dump(ini_get("default_mimetype")); | ||
| 10 | ?> | ||
| 11 | --EXPECTF-- | ||
| 12 | string(10) "text/plain" \ No newline at end of file | ||
