summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/tests/strings/sha1_basic.phpt70
-rw-r--r--ext/standard/tests/strings/sha1_error.phpt35
-rw-r--r--ext/standard/tests/strings/sha1_file.phpt131
-rw-r--r--ext/standard/tests/strings/sha1_variation1.phpt157
-rw-r--r--ext/standard/tests/strings/sha1_variation2.phpt160
5 files changed, 553 insertions, 0 deletions
diff --git a/ext/standard/tests/strings/sha1_basic.phpt b/ext/standard/tests/strings/sha1_basic.phpt
new file mode 100644
index 0000000000..00b764f416
--- /dev/null
+++ b/ext/standard/tests/strings/sha1_basic.phpt
@@ -0,0 +1,70 @@
+--TEST--
+sha1() with ASCII output.
+--FILE--
+<?php
+
+/* Prototype: string sha1 ( string $str [, bool $raw_output ] )
+ * Description: Calculate the sha1 hash of a string
+ */
+
+echo "*** Testing sha1() : basic functionality ***\n";
+
+echo "\n-- Without raw argument --\n";
+var_dump(sha1(""));
+var_dump(sha1("a"));
+var_dump(sha1("abc"));
+var_dump(sha1("message digest"));
+var_dump(sha1("abcdefghijklmnopqrstuvwxyz"));
+var_dump(sha1("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
+var_dump(sha1("12345678901234567890123456789012345678901234567890123456789012345678901234567890"));
+
+echo "\n-- With raw == false --\n";
+var_dump(sha1("", false));
+var_dump(sha1("a", false));
+var_dump(sha1("abc", false));
+var_dump(sha1("message digest", false));
+var_dump(sha1("abcdefghijklmnopqrstuvwxyz", false));
+var_dump(sha1("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", false));
+var_dump(sha1("12345678901234567890123456789012345678901234567890123456789012345678901234567890", false));
+
+echo "\n-- With raw == true --\n";
+var_dump(bin2hex(sha1("", true)));
+var_dump(bin2hex(sha1("a", true)));
+var_dump(bin2hex(sha1("abc", true)));
+var_dump(bin2hex(sha1("message digest", true)));
+var_dump(bin2hex(sha1("abcdefghijklmnopqrstuvwxyz", true)));
+var_dump(bin2hex(sha1("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", true)));
+var_dump(bin2hex(sha1("12345678901234567890123456789012345678901234567890123456789012345678901234567890", true)));
+
+?>
+===DONE===
+--EXPECT--
+*** Testing sha1() : basic functionality ***
+
+-- Without raw argument --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+string(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
+string(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
+string(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
+string(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
+string(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
+string(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
+
+-- With raw == false --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+string(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
+string(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
+string(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
+string(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
+string(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
+string(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
+
+-- With raw == true --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+string(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
+string(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
+string(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
+string(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
+string(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
+string(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
+===DONE=== \ No newline at end of file
diff --git a/ext/standard/tests/strings/sha1_error.phpt b/ext/standard/tests/strings/sha1_error.phpt
new file mode 100644
index 0000000000..bfc3e44fd5
--- /dev/null
+++ b/ext/standard/tests/strings/sha1_error.phpt
@@ -0,0 +1,35 @@
+--TEST--
+Test sha1() function : error conditions
+--FILE--
+<?php
+
+
+/* Prototype: string sha1 ( string $str [, bool $raw_output ] )
+ * Description: Calculate the sha1 hash of a string
+ */
+
+echo "*** Testing sha1() : error conditions ***\n";
+
+echo "\n-- Testing sha1() function with no arguments --\n";
+var_dump( sha1() );
+
+echo "\n-- Testing sha1() function with more than expected no. of arguments --\n";
+$extra_arg = 10;
+var_dump( sha1("Hello World", true, $extra_arg) );
+
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing sha1() : error conditions ***
+
+-- Testing sha1() function with no arguments --
+
+Warning: sha1() expects at least 1 parameter, 0 given in %s on line %d
+NULL
+
+-- Testing sha1() function with more than expected no. of arguments --
+
+Warning: sha1() expects at most 2 parameters, 3 given in %s on line %d
+NULL
+===DONE===
diff --git a/ext/standard/tests/strings/sha1_file.phpt b/ext/standard/tests/strings/sha1_file.phpt
new file mode 100644
index 0000000000..3013adc34c
--- /dev/null
+++ b/ext/standard/tests/strings/sha1_file.phpt
@@ -0,0 +1,131 @@
+--TEST--
+Test sha1_file() function with ASCII output and raw binary output. Based on ext/standard/tests/strings/md5_file.phpt
+--SKIPIF--
+<?php
+
+$path = dirname(__FILE__);
+$data_file = "$path/EmptyFile.txt";
+$data_file1 = "$path/DataFile.txt";
+if !(($fp = fopen($data_file, 'w')) || ($fp1 = fopen($data_file1, 'w')) {
+ echo "File could not be created ,hence exiting from testcase due to pre-requisite failure\n";
+}
+fclose( $fp );
+fclose( $fp1 );
+
+--FILE--
+<?php
+
+/* Prototype: string sha1_file( string filename[, bool raw_output] )
+ * Description: Calculate the sha1 hash of a file
+ */
+
+echo "*** Testing sha1_file() : basic functionality ***\n";
+
+/* Creating an empty file */
+if (($handle = fopen( "EmptyFile.txt", "w+")) == FALSE)
+return false;
+
+/* Creating a data file */
+if (($handle2 = fopen( "DataFile.txt", "w+")) == FALSE)
+return false;
+
+/* Writing into file */
+$filename = "DataFile.txt";
+$content = b"Add this to the file\n";
+if (is_writable($filename)) {
+ if (fwrite($handle2, $content) === FALSE) {
+ echo "Cannot write to file ($filename)";
+ exit;
+ }
+}
+
+// close the files
+fclose($handle);
+fclose($handle2);
+
+/* Testing error conditions */
+echo "\n*** Testing for error conditions ***\n";
+
+echo "\n-- No filename --\n";
+var_dump( sha1_file("") );
+
+echo "\n-- invalid filename --\n";
+var_dump( sha1_file("a") );
+
+echo "\n-- Scalar value as filename --\n";
+var_dump( sha1_file(12) );
+
+echo "\n-- NULL as filename --\n";
+var_dump( sha1_file(NULL) );
+
+echo "\n-- Zero arguments --\n";
+ var_dump ( sha1_file() );
+
+echo "\n-- More than valid number of arguments ( valid is 2) --\n";
+var_dump ( sha1_file("EmptyFile.txt", true, NULL) );
+
+echo "\n-- Hexadecimal Output for Empty file as Argument --\n";
+var_dump( sha1_file("EmptyFile.txt") );
+
+echo "\n-- Raw Binary Output for Empty file as Argument --\n";
+var_dump( bin2hex(sha1_file("EmptyFile.txt", true)));
+
+echo "\n-- Hexadecimal Output for a valid file with some contents --\n";
+var_dump( sha1_file("DataFile.txt") );
+
+echo "\n-- Raw Binary Output for a valid file with some contents --\n";
+var_dump ( bin2hex(sha1_file("DataFile.txt", true)));
+
+// remove temp files
+unlink("DataFile.txt");
+unlink("EmptyFile.txt");
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing sha1_file() : basic functionality ***
+
+*** Testing for error conditions ***
+
+-- No filename --
+
+Warning: sha1_file(): Filename cannot be empty in %s on line %d
+bool(false)
+
+-- invalid filename --
+
+Warning: sha1_file(a): failed to open stream: No such file or directory in %s on line %d
+bool(false)
+
+-- Scalar value as filename --
+
+Warning: sha1_file(12): failed to open stream: No such file or directory in %s on line %d
+bool(false)
+
+-- NULL as filename --
+
+Warning: sha1_file(): Filename cannot be empty in %s on line %d
+bool(false)
+
+-- Zero arguments --
+
+Warning: sha1_file() expects at least 1 parameter, 0 given in %s on line %d
+NULL
+
+-- More than valid number of arguments ( valid is 2) --
+
+Warning: sha1_file() expects at most 2 parameters, 3 given in %s on line %d
+NULL
+
+-- Hexadecimal Output for Empty file as Argument --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+
+-- Raw Binary Output for Empty file as Argument --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+
+-- Hexadecimal Output for a valid file with some contents --
+string(40) "d16a568ab98233deff7ec8b1668eb4b3d9e53fee"
+
+-- Raw Binary Output for a valid file with some contents --
+string(40) "d16a568ab98233deff7ec8b1668eb4b3d9e53fee"
+===DONE===
diff --git a/ext/standard/tests/strings/sha1_variation1.phpt b/ext/standard/tests/strings/sha1_variation1.phpt
new file mode 100644
index 0000000000..044be46d98
--- /dev/null
+++ b/ext/standard/tests/strings/sha1_variation1.phpt
@@ -0,0 +1,157 @@
+--TEST--
+Test sha1() function : usage variations - unexpected values for 'str' argument
+--FILE--
+<?php
+
+/* Prototype: string sha1 ( string $str [, bool $raw_output ] )
+ * Description: Calculate the sha1 hash of a string
+ */
+
+echo "*** Testing sha1() : unexpected values for 'str' ***\n";
+
+$raw = false;
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+//defining class for object variable
+class MyClass
+{
+ public function __toString()
+ {
+ return "object";
+ }
+}
+
+//resource variable
+$fp = fopen(__FILE__, 'r');
+
+//different values for 'str' argument
+$values = array(
+
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+
+ // float data
+/*5*/ 10.5,
+ -10.5,
+ 10.1234567e10,
+ 10.1234567E-10,
+ .5,
+
+ // array data
+/*10*/ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+/*15*/ NULL,
+ null,
+
+ // boolean data
+/*17*/ true,
+ false,
+ TRUE,
+ FALSE,
+
+ // empty data
+/*21*/ "",
+ '',
+
+ // object data
+/*23*/ new MyClass(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ //resource data
+/*26*/ $fp
+);
+
+// loop through each element of $values for 'str' argument
+for($count = 0; $count < count($values); $count++) {
+ echo "-- Iteration ".($count+1)." --\n";
+ var_dump( sha1($values[$count], $raw) );
+}
+
+//closing resource
+fclose($fp);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing sha1() : unexpected values for 'str' ***
+-- Iteration 1 --
+string(40) "b6589fc6ab0dc82cf12099d1c2d40ab994e8410c"
+-- Iteration 2 --
+string(40) "356a192b7913b04c54574d18c28d46e6395428ab"
+-- Iteration 3 --
+string(40) "8cb2237d0679ca88db6464eac60da96345513964"
+-- Iteration 4 --
+string(40) "bc97c643aba3b6c6abe253222f439d4002a87528"
+-- Iteration 5 --
+string(40) "1287384bc5ef3ab84a36a5ef1d888df2763567f4"
+-- Iteration 6 --
+string(40) "c9d6e1b691f17c8ae6d458984a5f56f80e62a60b"
+-- Iteration 7 --
+string(40) "39493e1e645578a655f532e1f9bcff67991f2c2f"
+-- Iteration 8 --
+string(40) "681b45cae882ad795afd54ccc2a04ad58e056b83"
+-- Iteration 9 --
+string(40) "1b390cd54a0c0d4f27fa7adf23e3c45536e9f37c"
+-- Iteration 10 --
+
+Warning: sha1() expects parameter 1 to be string, array given in %s on line %d
+NULL
+-- Iteration 11 --
+
+Warning: sha1() expects parameter 1 to be string, array given in %s on line %d
+NULL
+-- Iteration 12 --
+
+Warning: sha1() expects parameter 1 to be string, array given in %s on line %d
+NULL
+-- Iteration 13 --
+
+Warning: sha1() expects parameter 1 to be string, array given in %s on line %d
+NULL
+-- Iteration 14 --
+
+Warning: sha1() expects parameter 1 to be string, array given in %s on line %d
+NULL
+-- Iteration 15 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 16 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 17 --
+string(40) "356a192b7913b04c54574d18c28d46e6395428ab"
+-- Iteration 18 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 19 --
+string(40) "356a192b7913b04c54574d18c28d46e6395428ab"
+-- Iteration 20 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 21 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 22 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 23 --
+string(40) "1615307cc4523f183e777df67f168c86908e8007"
+-- Iteration 24 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 25 --
+string(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
+-- Iteration 26 --
+
+Warning: sha1() expects parameter 1 to be string, resource given in %s on line %d
+NULL
+===DONE===
diff --git a/ext/standard/tests/strings/sha1_variation2.phpt b/ext/standard/tests/strings/sha1_variation2.phpt
new file mode 100644
index 0000000000..a5bf5f868c
--- /dev/null
+++ b/ext/standard/tests/strings/sha1_variation2.phpt
@@ -0,0 +1,160 @@
+--TEST--
+Test sha1() function : usage variations - unexpected values for 'raw' argument
+--FILE--
+<?php
+
+/* Prototype: string sha1 ( string $str [, bool $raw_output ] )
+ * Description: Calculate the sha1 hash of a string
+ */
+
+echo "*** Testing sha1() : unexpected values for 'raw' ***\n";
+
+$string = "Hello World";
+
+//get an unset variable
+$unset_var = 10;
+unset ($unset_var);
+
+//defining class for object variable
+class MyClass
+{
+ public function __toString()
+ {
+ return "object";
+ }
+}
+
+//resource variable
+$fp = fopen(__FILE__, 'r');
+
+//different values for 'str' argument
+$values = array(
+
+ // int data
+/*1*/ 0,
+ 1,
+ 12345,
+ -2345,
+
+ // float data
+/*5*/ 10.5,
+ -10.5,
+ 10.1234567e10,
+ 10.1234567E-10,
+ .5,
+
+ // array data
+/*10*/ array(),
+ array(0),
+ array(1),
+ array(1, 2),
+ array('color' => 'red', 'item' => 'pen'),
+
+ // null data
+/*15*/ NULL,
+ null,
+
+ // string data
+/*17*/ "ABC",
+ 'abc',
+ "0abc",
+ "123abc",
+
+ // empty data
+/*21*/ "",
+ '',
+
+ // object data
+/*23*/ new MyClass(),
+
+ // undefined data
+/*24*/ @$undefined_var,
+
+ // unset data
+/*25*/ @$unset_var,
+
+ //resource data
+/*26*/ $fp
+);
+
+// loop through each element of $values for 'raw' argument
+for($count = 0; $count < count($values); $count++) {
+ echo "-- Iteration ".($count+1)." --\n";
+ // use bin2hex to catch those cases were raw is true
+ var_dump( bin2hex(sha1($string, $values[$count])) );
+}
+
+//closing resource
+fclose($fp);
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing sha1() : unexpected values for 'raw' ***
+-- Iteration 1 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 2 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 3 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 4 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 5 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 6 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 7 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 8 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 9 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 10 --
+
+Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
+string(0) ""
+-- Iteration 11 --
+
+Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
+string(0) ""
+-- Iteration 12 --
+
+Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
+string(0) ""
+-- Iteration 13 --
+
+Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
+string(0) ""
+-- Iteration 14 --
+
+Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
+string(0) ""
+-- Iteration 15 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 16 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 17 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 18 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 19 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 20 --
+string(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
+-- Iteration 21 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 22 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 23 --
+
+Warning: sha1() expects parameter 2 to be boolean, object given in %s on line %d
+string(0) ""
+-- Iteration 24 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 25 --
+string(80) "30613464353561386437373865353032326661623730313937376335643834306262633438366430"
+-- Iteration 26 --
+
+Warning: sha1() expects parameter 2 to be boolean, resource given in %s on line %d
+string(0) ""
+===DONE===