Exif tests: checked on PHP 5.2.6, 5.3 and 6.0 (Windows, Linux and Linux 64 bit).

This commit is contained in:
Ant Phillips 2008-12-01 12:25:21 +00:00
parent 5eaaf3843f
commit ee934d356b
7 changed files with 577 additions and 0 deletions

View File

@ -0,0 +1,23 @@
--TEST--
Check for exif_imagetype default behaviour
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--INI--
output_handler=
zlib.output_compression=0
--FILE--
<?php
/* Prototype : int exif_imagetype ( string $filename )
* Description: Determine the type of an image
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_imagetype() : basic functionality ***\n";
var_dump(exif_imagetype(dirname(__FILE__).'/test2.jpg'));
?>
===Done===
--EXPECT--
*** Testing exif_imagetype() : basic functionality ***
int(2)
===Done===

View File

@ -0,0 +1,46 @@
--TEST--
Test exif_imagetype() function : error conditions
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--FILE--
<?php
/* Prototype : int exif_imagetype ( string $filename )
* Description: Determine the type of an image
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_imagetype() : error conditions ***\n";
echo "\n-- Testing exif_imagetype() function with no arguments --\n";
var_dump( exif_imagetype() );
echo "\n-- Testing exif_imagetype() function with more than expected no. of arguments --\n";
$extra_arg = 10;
var_dump( exif_imagetype(dirname(__FILE__).'/test2.jpg', $extra_arg) );
echo "\n-- Testing exif_imagetype() function with an unknown file --\n";
var_dump( exif_imagetype(dirname(__FILE__).'/foo.jpg') );
?>
===Done===
--EXPECTF--
*** Testing exif_imagetype() : error conditions ***
-- Testing exif_imagetype() function with no arguments --
Warning: exif_imagetype() expects exactly 1 parameter, 0 given in %s on line %d
NULL
-- Testing exif_imagetype() function with more than expected no. of arguments --
Warning: exif_imagetype() expects exactly 1 parameter, 2 given in %s on line %d
NULL
-- Testing exif_imagetype() function with an unknown file --
Warning: exif_imagetype(%s/foo.jpg): failed to open stream: No such file or directory in %s on line %d
bool(false)
===Done===

View File

@ -0,0 +1,199 @@
--TEST--
Test exif_imagetype() function : usage variations - different types for filename argument
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--FILE--
<?php
/* Prototype : int exif_imagetype ( string $filename )
* Description: Determine the type of an image
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_imagetype() : different types for filename argument ***\n";
// initialize all required variables
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// declaring a class
class sample {
public function __toString() {
return "obj'ct";
}
}
// Defining resource
$file_handle = fopen(__FILE__, 'r');
// array with different values
$values = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.1234567e10,
10.7654321E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// empty string
"",
'',
// undefined variable
$undefined_var,
// unset variable
$unset_var,
// objects
new sample(),
// resource
$file_handle,
NULL,
null
);
// loop through each element of the array and check the working of exif_imagetype()
// when $filename is supplied with different values
echo "\n--- Testing exif_imagetype() by supplying different values for 'filename' argument ---\n";
$counter = 1;
foreach($values as $filename) {
echo "-- Iteration $counter --\n";
var_dump( exif_imagetype($filename) );
$counter ++;
}
// closing the file
fclose($file_handle);
echo "Done\n";
?>
?>
===Done===
--EXPECTF--
*** Testing exif_imagetype() : different types for filename argument ***
Notice: Undefined variable: undefined_var in %s on line %d
Notice: Undefined variable: unset_var in %s on line %d
--- Testing exif_imagetype() by supplying different values for 'filename' argument ---
-- Iteration 1 --
Warning: exif_imagetype(0): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 2 --
Warning: exif_imagetype(1): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 3 --
Warning: exif_imagetype(12345): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 4 --
Warning: exif_imagetype(-2345): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 5 --
Warning: exif_imagetype(10.5): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 6 --
Warning: exif_imagetype(-10.5): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 7 --
Warning: exif_imagetype(101234567000): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 8 --
Warning: exif_imagetype(1.07654321E-9): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 9 --
Warning: exif_imagetype(0.5): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 10 --
Warning: exif_imagetype() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 11 --
Warning: exif_imagetype() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 12 --
Warning: exif_imagetype() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 13 --
Warning: exif_imagetype() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 14 --
Warning: exif_imagetype() expects parameter 1 to be string, array given in %s on line %d
NULL
-- Iteration 15 --
Warning: exif_imagetype(1): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 16 --
bool(false)
-- Iteration 17 --
Warning: exif_imagetype(1): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 18 --
bool(false)
-- Iteration 19 --
bool(false)
-- Iteration 20 --
bool(false)
-- Iteration 21 --
bool(false)
-- Iteration 22 --
bool(false)
-- Iteration 23 --
Warning: exif_imagetype(obj'ct): failed to open stream: No such file or directory in %s on line %d
bool(false)
-- Iteration 24 --
Warning: exif_imagetype() expects parameter 1 to be string, resource given in %s on line %d
NULL
-- Iteration 25 --
bool(false)
-- Iteration 26 --
bool(false)
Done
?>
===Done===

View File

@ -0,0 +1,62 @@
--TEST--
Check for read_exif_data default behaviour
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--INI--
output_handler=
zlib.output_compression=0
--FILE--
<?php
/* Prototype : array read_exif_data ( string $filename [, string $sections [, bool $arrays [, bool $thumbnail ]]] )
* Description: Alias of exif_read_data()
* Source code: ext/exif/exif.c
*/
echo "*** Testing read_exif_data() : basic functionality ***\n";
print_r(read_exif_data(dirname(__FILE__).'/test2.jpg'));
?>
===Done===
--EXPECTF--
*** Testing read_exif_data() : basic functionality ***
Array
(
[FileName] => test2.jpg
[FileDateTime] => %d
[FileSize] => 1240
[FileType] => 2
[MimeType] => image/jpeg
[SectionsFound] => ANY_TAG, IFD0, THUMBNAIL, COMMENT
[COMPUTED] => Array
(
[html] => width="1" height="1"
[Height] => 1
[Width] => 1
[IsColor] => 1
[ByteOrderMotorola] => 1
[UserComment] => Exif test image.
[UserCommentEncoding] => ASCII
[Copyright] => Photo (c) M.Boerger, Edited by M.Boerger.
[Copyright.Photographer] => Photo (c) M.Boerger
[Copyright.Editor] => Edited by M.Boerger.
[Thumbnail.FileType] => 2
[Thumbnail.MimeType] => image/jpeg
)
[Copyright] => Photo (c) M.Boerger
[UserComment] => ASCII
[THUMBNAIL] => Array
(
[JPEGInterchangeFormat] => 134
[JPEGInterchangeFormatLength] => 523
)
[COMMENT] => Array
(
[0] => Comment #1.
[1] => Comment #2.
[2] => Comment #3end
)
)
===Done===

View File

@ -0,0 +1,29 @@
--TEST--
Test exif_tagname() function : basic functionality
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--INI--
output_handler=
zlib.output_compression=0
--FILE--
<?php
/* Prototype :string exif_tagname ( string $index )
* Description: Get the header name for an index
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_tagname() : basic functionality ***\n";
var_dump(exif_tagname(0x10E));
var_dump(exif_tagname(0x10F));
var_dump(exif_tagname(0x110));
?>
===Done===
--EXPECT--
*** Testing exif_tagname() : basic functionality ***
string(16) "ImageDescription"
string(4) "Make"
string(5) "Model"
===Done===

View File

@ -0,0 +1,37 @@
--TEST--
Test exif_tagname() function : error conditions
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--FILE--
<?php
/* Prototype :string exif_tagname ( string $index )
* Description: Get the header name for an index
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_tagname() : error conditions ***\n";
echo "\n-- Testing exif_tagname() function with no arguments --\n";
var_dump( exif_tagname() );
echo "\n-- Testing exif_tagname() function with more than expected no. of arguments --\n";
$extra_arg = 10;
var_dump( exif_tagname(0x10E, $extra_arg) );
?>
===Done===
--EXPECTF--
*** Testing exif_tagname() : error conditions ***
-- Testing exif_tagname() function with no arguments --
Warning: exif_tagname() expects exactly 1 parameter, 0 given in %s on line %d
NULL
-- Testing exif_tagname() function with more than expected no. of arguments --
Warning: exif_tagname() expects exactly 1 parameter, 2 given in %s on line %d
NULL
===Done===

View File

@ -0,0 +1,181 @@
--TEST--
Test exif_tagname() function : usage variations - different types for index argument
--SKIPIF--
<?php if (!extension_loaded('exif')) print 'skip exif extension not available';?>
--FILE--
<?php
/* Prototype : string exif_tagname ( string $index )
* Description: Get the header name for an index
* Source code: ext/exif/exif.c
*/
echo "*** Testing exif_tagname() : different types for index argument ***\n";
// initialize all required variables
// get an unset variable
$unset_var = 'string_val';
unset($unset_var);
// declaring a class
class sample {
public function __toString() {
return "obj'ct";
}
}
// Defining resource
$file_handle = fopen(__FILE__, 'r');
// array with different values
$values = array (
// integer values
0,
1,
12345,
-2345,
// float values
10.5,
-10.5,
10.1234567e10,
10.7654321E-10,
.5,
// array values
array(),
array(0),
array(1),
array(1, 2),
array('color' => 'red', 'item' => 'pen'),
// boolean values
true,
false,
TRUE,
FALSE,
// empty string
"",
'',
// undefined variable
$undefined_var,
// unset variable
$unset_var,
// objects
new sample(),
// resource
$file_handle,
NULL,
null
);
// loop through each element of the array and check the working of exif_tagname()
// when $index arugment is supplied with different values
echo "\n--- Testing exif_tagname() by supplying different values for 'index' argument ---\n";
$counter = 1;
foreach($values as $index) {
echo "-- Iteration $counter --\n";
var_dump( exif_tagname($index) );
$counter ++;
}
// closing the file
fclose($file_handle);
echo "Done\n";
?>
?>
===Done===
--EXPECTF--
*** Testing exif_tagname() : different types for index argument ***
Notice: Undefined variable: undefined_var in %s on line %d
Notice: Undefined variable: unset_var in %s on line %d
--- Testing exif_tagname() by supplying different values for 'index' argument ---
-- Iteration 1 --
bool(false)
-- Iteration 2 --
bool(false)
-- Iteration 3 --
bool(false)
-- Iteration 4 --
bool(false)
-- Iteration 5 --
bool(false)
-- Iteration 6 --
bool(false)
-- Iteration 7 --
bool(false)
-- Iteration 8 --
bool(false)
-- Iteration 9 --
bool(false)
-- Iteration 10 --
Warning: exif_tagname() expects parameter 1 to be long, array given in %s on line %d
NULL
-- Iteration 11 --
Warning: exif_tagname() expects parameter 1 to be long, array given in %s on line %d
NULL
-- Iteration 12 --
Warning: exif_tagname() expects parameter 1 to be long, array given in %s on line %d
NULL
-- Iteration 13 --
Warning: exif_tagname() expects parameter 1 to be long, array given in %s on line %d
NULL
-- Iteration 14 --
Warning: exif_tagname() expects parameter 1 to be long, array given in %s on line %d
NULL
-- Iteration 15 --
bool(false)
-- Iteration 16 --
bool(false)
-- Iteration 17 --
bool(false)
-- Iteration 18 --
bool(false)
-- Iteration 19 --
Warning: exif_tagname() expects parameter 1 to be long, string given in %s on line %d
NULL
-- Iteration 20 --
Warning: exif_tagname() expects parameter 1 to be long, string given in %s on line %d
NULL
-- Iteration 21 --
bool(false)
-- Iteration 22 --
bool(false)
-- Iteration 23 --
Warning: exif_tagname() expects parameter 1 to be long, object given in %s on line %d
NULL
-- Iteration 24 --
Warning: exif_tagname() expects parameter 1 to be long, resource given in %s on line %d
NULL
-- Iteration 25 --
bool(false)
-- Iteration 26 --
bool(false)
Done
?>
===Done===