summaryrefslogtreecommitdiff
path: root/ext/standard/tests/strings/str_pad_variation2.phpt
diff options
context:
space:
mode:
Diffstat (limited to 'ext/standard/tests/strings/str_pad_variation2.phpt')
-rw-r--r--ext/standard/tests/strings/str_pad_variation2.phpt70
1 files changed, 70 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/str_pad_variation2.phpt b/ext/standard/tests/strings/str_pad_variation2.phpt
new file mode 100644
index 0000000000..1ebf1b2825
--- /dev/null
+++ b/ext/standard/tests/strings/str_pad_variation2.phpt
@@ -0,0 +1,70 @@
+--TEST--
+str_pad() function: usage variations - Non printable chars
+--INI--
+precision=14
+--FILE--
+<?php
+// Split from str_pad for NUL Bytes
+// 7-bit ASCII
+$string = chr(0).chr(255).chr(128).chr(234).chr(143);
+
+/* different pad_lengths */
+$pad_lengths = [
+ -PHP_INT_MAX, // huge negative value
+ -1, // negative value
+ 0, // pad_length < sizeof(input_string)
+ 9, // pad_length <= sizeof(input_string)
+ 10, // pad_length > sizeof(input_string)
+ 16, // pad_length > sizeof(input_string)
+];
+
+$pad_string = "=";
+
+/*loop through to use each variant of $pad_length on
+ each element of $input_strings array */
+foreach ($pad_lengths as $pad_length ) {
+ // default pad_string & pad_type
+ var_dump( bin2hex( str_pad($string, $pad_length) ) );
+ // default pad_type
+ var_dump( bin2hex( str_pad($string, $pad_length, $pad_string) ) );
+ var_dump( bin2hex( str_pad($string, $pad_length, $pad_string, STR_PAD_LEFT) ) );
+ var_dump( bin2hex( str_pad($string, $pad_length, $pad_string, STR_PAD_RIGHT) ) );
+ var_dump( bin2hex( str_pad($string, $pad_length, $pad_string, STR_PAD_BOTH) ) );
+}
+
+?>
+
+DONE
+--EXPECT--
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(10) "00ff80ea8f"
+string(18) "00ff80ea8f20202020"
+string(18) "00ff80ea8f3d3d3d3d"
+string(18) "3d3d3d3d00ff80ea8f"
+string(18) "00ff80ea8f3d3d3d3d"
+string(18) "3d3d00ff80ea8f3d3d"
+string(20) "00ff80ea8f2020202020"
+string(20) "00ff80ea8f3d3d3d3d3d"
+string(20) "3d3d3d3d3d00ff80ea8f"
+string(20) "00ff80ea8f3d3d3d3d3d"
+string(20) "3d3d00ff80ea8f3d3d3d"
+string(32) "00ff80ea8f2020202020202020202020"
+string(32) "00ff80ea8f3d3d3d3d3d3d3d3d3d3d3d"
+string(32) "3d3d3d3d3d3d3d3d3d3d3d00ff80ea8f"
+string(32) "00ff80ea8f3d3d3d3d3d3d3d3d3d3d3d"
+string(32) "3d3d3d3d3d00ff80ea8f3d3d3d3d3d3d"
+
+DONE