New sha1f() tests. Tested on Windows. Linux and Linux 64 bit

This commit is contained in:
andy wharmby 2009-01-18 19:37:43 +00:00
parent 784801cdbd
commit ef6e2c572e
5 changed files with 567 additions and 0 deletions

View File

@ -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(b""));
var_dump(sha1(b"a"));
var_dump(sha1(b"abc"));
var_dump(sha1(b"message digest"));
var_dump(sha1(b"abcdefghijklmnopqrstuvwxyz"));
var_dump(sha1(b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"));
var_dump(sha1(b"12345678901234567890123456789012345678901234567890123456789012345678901234567890"));
echo "\n-- With raw == false --\n";
var_dump(sha1(b"", false));
var_dump(sha1(b"a", false));
var_dump(sha1(b"abc", false));
var_dump(sha1(b"message digest", false));
var_dump(sha1(b"abcdefghijklmnopqrstuvwxyz", false));
var_dump(sha1(b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", false));
var_dump(sha1(b"12345678901234567890123456789012345678901234567890123456789012345678901234567890", false));
echo "\n-- With raw == true --\n";
var_dump(bin2hex(sha1(b"", true)));
var_dump(bin2hex(sha1(b"a", true)));
var_dump(bin2hex(sha1(b"abc", true)));
var_dump(bin2hex(sha1(b"message digest", true)));
var_dump(bin2hex(sha1(b"abcdefghijklmnopqrstuvwxyz", true)));
var_dump(bin2hex(sha1(b"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", true)));
var_dump(bin2hex(sha1(b"12345678901234567890123456789012345678901234567890123456789012345678901234567890", true)));
?>
===DONE===
--EXPECT--
*** Testing sha1() : basic functionality ***
-- Without raw argument --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
unicode(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
unicode(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
unicode(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
unicode(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
unicode(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
unicode(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
-- With raw == false --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
unicode(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
unicode(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
unicode(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
unicode(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
unicode(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
unicode(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
-- With raw == true --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
unicode(40) "86f7e437faa5a7fce15d1ddcb9eaeaea377667b8"
unicode(40) "a9993e364706816aba3e25717850c26c9cd0d89d"
unicode(40) "c12252ceda8be8994d5fa0290a47231c1d16aae3"
unicode(40) "32d10c7b8cf96570ca04ce37f2a19d84240d3a89"
unicode(40) "761c457bf73b14d27e9e9265c46f4b4dda11f940"
unicode(40) "50abf5706a150990a08b2c5ea40fa0e585554732"
===DONE===

View File

@ -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===

View File

@ -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 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Raw Binary Output for Empty file as Argument --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Hexadecimal Output for a valid file with some contents --
unicode(40) "d16a568ab98233deff7ec8b1668eb4b3d9e53fee"
-- Raw Binary Output for a valid file with some contents --
unicode(40) "d16a568ab98233deff7ec8b1668eb4b3d9e53fee"
===DONE===

View File

@ -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
0,
1,
12345,
-2345,
// float data
10.5,
-10.5,
10.1234567e10,
10.1234567E-10,
.5,
// array data
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// null data
NULL,
null,
// boolean data
true,
false,
TRUE,
FALSE,
// empty data
"",
'',
// object data
new MyClass(),
// undefined data
@$undefined_var,
// unset data
@$unset_var,
//resource data
$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 --
unicode(40) "b6589fc6ab0dc82cf12099d1c2d40ab994e8410c"
-- Iteration 2 --
unicode(40) "356a192b7913b04c54574d18c28d46e6395428ab"
-- Iteration 3 --
unicode(40) "8cb2237d0679ca88db6464eac60da96345513964"
-- Iteration 4 --
unicode(40) "bc97c643aba3b6c6abe253222f439d4002a87528"
-- Iteration 5 --
unicode(40) "1287384bc5ef3ab84a36a5ef1d888df2763567f4"
-- Iteration 6 --
unicode(40) "c9d6e1b691f17c8ae6d458984a5f56f80e62a60b"
-- Iteration 7 --
unicode(40) "39493e1e645578a655f532e1f9bcff67991f2c2f"
-- Iteration 8 --
unicode(40) "681b45cae882ad795afd54ccc2a04ad58e056b83"
-- Iteration 9 --
unicode(40) "1b390cd54a0c0d4f27fa7adf23e3c45536e9f37c"
-- Iteration 10 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
-- Iteration 11 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
-- Iteration 12 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
-- Iteration 13 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
-- Iteration 14 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), array given in %s on line %d
NULL
-- Iteration 15 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 16 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 17 --
unicode(40) "356a192b7913b04c54574d18c28d46e6395428ab"
-- Iteration 18 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 19 --
unicode(40) "356a192b7913b04c54574d18c28d46e6395428ab"
-- Iteration 20 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 21 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 22 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 23 --
unicode(40) "1615307cc4523f183e777df67f168c86908e8007"
-- Iteration 24 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 25 --
unicode(40) "da39a3ee5e6b4b0d3255bfef95601890afd80709"
-- Iteration 26 --
Warning: sha1() expects parameter 1 to be string (Unicode or binary), resource given in %s on line %d
NULL
===DONE===

View File

@ -0,0 +1,174 @@
--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 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 2 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 3 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 4 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 5 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 6 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 7 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 8 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 9 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 10 --
Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
unicode(0) ""
-- Iteration 11 --
Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
unicode(0) ""
-- Iteration 12 --
Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
unicode(0) ""
-- Iteration 13 --
Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
unicode(0) ""
-- Iteration 14 --
Warning: sha1() expects parameter 2 to be boolean, array given in %s on line %d
unicode(0) ""
-- Iteration 15 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 16 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 17 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 18 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 19 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 20 --
unicode(40) "0a4d55a8d778e5022fab701977c5d840bbc486d0"
-- Iteration 21 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 22 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 23 --
Warning: sha1() expects parameter 2 to be boolean, object given in %s on line %d
unicode(0) ""
-- Iteration 24 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 25 --
Warning: bin2hex() expects parameter 1 to be strictly a binary string, Unicode string given in %s on line %d
NULL
-- Iteration 26 --
Warning: sha1() expects parameter 2 to be boolean, resource given in %s on line %d
unicode(0) ""
===DONE===