diff options
| author | Pierre Joye <pajoye@php.net> | 2006-07-17 12:54:09 +0000 |
|---|---|---|
| committer | Pierre Joye <pajoye@php.net> | 2006-07-17 12:54:09 +0000 |
| commit | cb41a19f2827774487964b5888b7a31641b08030 (patch) | |
| tree | 3236503c81c15da06d8ec1ab806795c6f75e6a52 | |
| parent | 46c036cd4d1c8e1cf20e66d91f0f8e02952e6783 (diff) | |
| download | php-git-cb41a19f2827774487964b5888b7a31641b08030.tar.gz | |
- sync tests with HEAD
| -rw-r--r-- | ext/gd/tests/colorat.phpt | 42 | ||||
| -rw-r--r-- | ext/gd/tests/colorclosest.phpt | 127 | ||||
| -rw-r--r-- | ext/gd/tests/colorexact.phpt | 40 | ||||
| -rw-r--r-- | ext/gd/tests/colorresolve.phpt | 113 | ||||
| -rw-r--r-- | ext/gd/tests/copy.phpt | 109 | ||||
| -rw-r--r-- | ext/gd/tests/copyresized.phpt | 91 | ||||
| -rw-r--r-- | ext/gd/tests/createfromgd2.phpt | 24 | ||||
| -rw-r--r-- | ext/gd/tests/createfromwbmp.phpt | 18 | ||||
| -rw-r--r-- | ext/gd/tests/dashedlines.phpt | 79 | ||||
| -rw-r--r-- | ext/gd/tests/gif.phpt | 145 | ||||
| -rw-r--r-- | ext/gd/tests/imagewbmp.phpt | 31 | ||||
| -rw-r--r-- | ext/gd/tests/lines.phpt | 116 | ||||
| -rw-r--r-- | ext/gd/tests/src.gd2 | bin | 0 -> 423 bytes | |||
| -rw-r--r-- | ext/gd/tests/src.wbmp | bin | 0 -> 9 bytes | |||
| -rw-r--r-- | ext/gd/tests/test_gif_2.gif | bin | 0 -> 33641 bytes | |||
| -rw-r--r-- | ext/gd/tests/truecolor.phpt | 19 | ||||
| -rw-r--r-- | ext/gd/tests/types.phpt | 33 |
17 files changed, 987 insertions, 0 deletions
diff --git a/ext/gd/tests/colorat.phpt b/ext/gd/tests/colorat.phpt new file mode 100644 index 0000000000..be14873886 --- /dev/null +++ b/ext/gd/tests/colorat.phpt @@ -0,0 +1,42 @@ +--TEST-- +imagecolorat +--SKIPIF-- +<?php + if (!function_exists('imagecolorat')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php +$file = dirname(__FILE__) . '/im.wbmp'; + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imagesetpixel($im, 3,3, 0x0); + + +echo 'test colorat truecolor: '; +$c = imagecolorat($im, 3,3); +echo $c == 0x0 ? 'ok' : 'failed'; +echo "\n"; +imagedestroy($im); + +$im = imagecreate(6,6); +$c1 = imagecolorallocate($im, 255,255,255); +$c2 = imagecolorallocate($im, 0,0,0); + +imagefill($im, 0,0, $c1); +imagesetpixel($im, 3,3, $c2); +echo 'test colorat palette: '; + +$c = imagecolorsforindex($im, imagecolorat($im, 3,3)); +$failed = false; +foreach ($c as $v) { + if ($v != 0) { + $failed = true; + } +} +echo !$failed ? 'ok' : 'failed'; +echo "\n"; +?> +--EXPECT-- +test colorat truecolor: ok +test colorat palette: ok diff --git a/ext/gd/tests/colorclosest.phpt b/ext/gd/tests/colorclosest.phpt new file mode 100644 index 0000000000..7ade09478e --- /dev/null +++ b/ext/gd/tests/colorclosest.phpt @@ -0,0 +1,127 @@ +--TEST-- +imageclosest +--SKIPIF-- +<?php + if (!function_exists('imagecolorclosest')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php + +$im = imagecreatetruecolor(5,5); +$c = imagecolorclosest($im, 255,0,255); +printf("%X\n", $c); +imagedestroy($im); + +$im = imagecreate(5,5); +$c = imagecolorclosest($im, 255,0,255); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +imagecolorallocate($im, 255, 0, 255); +$c = imagecolorclosest($im, 255,0,255); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +for ($i=0; $i<255; $i++) imagecolorresolve($im, $i,0,0); +$c = imagecolorclosest($im, 255,0,0); +print_r(imagecolorsforindex($im, $c)); + + +$im = imagecreate(5,5); +for ($i=0; $i<256; $i++) { + if ($i == 246) { + imagecolorallocate($im, $i,10,10); + } else { + imagecolorallocate($im, $i,0,0); + } +} +$c = imagecolorclosest($im, 255,10,10); +print_r(imagecolorsforindex($im, $c)); + +// with alpha +$im = imagecreatetruecolor(5,5); +$c = imagecolorclosestalpha($im, 255,0,255,100); +printf("%X\n", $c); +imagedestroy($im); + +$im = imagecreate(5,5); +$c = imagecolorclosestalpha($im, 255,0,255,100); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +imagecolorallocatealpha($im, 255, 0, 255, 1); +$c = imagecolorclosestalpha($im, 255,0,255,1); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +for ($i=0; $i<255; $i++) imagecolorresolvealpha($im, $i,0,0,1); +$c = imagecolorclosestalpha($im, 255,0,0,1); +print_r(imagecolorsforindex($im, $c)); + + +$im = imagecreate(5,5); +for ($i=0; $i<256; $i++) { + if ($i == 246) { + imagecolorallocatealpha($im, $i,10,10,1); + } else { + imagecolorallocatealpha($im, $i,0,0,100); + } +} +$c = imagecolorclosestalpha($im, 255,10,10,1); +print_r(imagecolorsforindex($im, $c)); + + +?> +--EXPECTF-- +FF00FF + +Warning: imagecolorsforindex(): Color index -1 out of range in %s on line %d +Array +( + [red] => 255 + [green] => 0 + [blue] => 255 + [alpha] => 0 +) +Array +( + [red] => 254 + [green] => 0 + [blue] => 0 + [alpha] => 0 +) +Array +( + [red] => 246 + [green] => 10 + [blue] => 10 + [alpha] => 0 +) +64FF00FF + +Warning: imagecolorsforindex(): Color index -1 out of range in %s on line %d +Array +( + [red] => 255 + [green] => 0 + [blue] => 255 + [alpha] => 1 +) +Array +( + [red] => 254 + [green] => 0 + [blue] => 0 + [alpha] => 1 +) +Array +( + [red] => 246 + [green] => 10 + [blue] => 10 + [alpha] => 1 +) diff --git a/ext/gd/tests/colorexact.phpt b/ext/gd/tests/colorexact.phpt new file mode 100644 index 0000000000..e6983b7516 --- /dev/null +++ b/ext/gd/tests/colorexact.phpt @@ -0,0 +1,40 @@ +--TEST-- +imagecolorexact +--SKIPIF-- +<?php + if (!function_exists('imagecolorexact')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php + +$im = imagecreatetruecolor(5,5); +$c = imagecolorexact($im, 255,0,255); +$c2 = imagecolorexactalpha($im, 255,0,255, 100); + +printf("%X\n", $c); +printf("%X\n", $c2); + +imagedestroy($im); + +$im = imagecreate(5,5); +$c = imagecolorallocate($im, 255,0,255); +$c2 = imagecolorallocate($im, 255,200,0); +$c3 = imagecolorallocatealpha($im, 255,200,0,100); + +echo imagecolorexact($im, 255,0,255) . "\n"; +echo imagecolorexact($im, 255,200,0) . "\n"; +echo imagecolorexactalpha($im, 255,200,0,100) . "\n"; + + +// unallocated index +echo imagecolorexact($im, 12,12,12) . "\n"; + +imagedestroy($im); +?> +--EXPECTF-- +FF00FF +64FF00FF +0 +1 +2 +-1 diff --git a/ext/gd/tests/colorresolve.phpt b/ext/gd/tests/colorresolve.phpt new file mode 100644 index 0000000000..9af0f18600 --- /dev/null +++ b/ext/gd/tests/colorresolve.phpt @@ -0,0 +1,113 @@ +--TEST-- +imagecolorresolve +--SKIPIF-- +<?php + if (!function_exists('imagecolorresolve')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php + +$im = imagecreatetruecolor(5,5); +$c = imagecolorresolve($im, 255,0,255); +printf("%X\n", $c); +imagedestroy($im); + +$im = imagecreate(5,5); +$c = imagecolorresolve($im, 255,0,255); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +for ($i=0; $i<255; $i++) imagecolorresolve($im, $i,0,0); +$c = imagecolorresolve($im, 255,0,0); +print_r(imagecolorsforindex($im, $c)); + + +$im = imagecreate(5,5); +for ($i=0; $i<256; $i++) { + if ($i == 246) { + imagecolorresolve($im, $i,10,10); + } else { + imagecolorresolve($im, $i,0,0); + } +} +$c = imagecolorresolve($im, 255,10,10); +print_r(imagecolorsforindex($im, $c)); + + + +// with alpha +$im = imagecreatetruecolor(5,5); +$c = imagecolorresolvealpha($im, 255,0,255, 100); +printf("%X\n", $c); +imagedestroy($im); + +$im = imagecreate(5,5); +$c = imagecolorresolvealpha($im, 255,0,255,100); +print_r(imagecolorsforindex($im, $c)); +imagedestroy($im); + +$im = imagecreate(5,5); +for ($i=0; $i<255; $i++) imagecolorresolvealpha($im, $i,0,0,1); +$c = imagecolorresolvealpha($im, 255,0,0,1); +print_r(imagecolorsforindex($im, $c)); + + +$im = imagecreate(5,5); +for ($i=0; $i<256; $i++) { + if ($i == 246) { + imagecolorresolvealpha($im, $i,10,10,1); + } else { + imagecolorresolvealpha($im, $i,0,0,100); + } +} +$c = imagecolorresolvealpha($im, 255,10,10,0); +print_r(imagecolorsforindex($im, $c)); + + +?> +--EXPECTF-- +FF00FF +Array +( + [red] => 255 + [green] => 0 + [blue] => 255 + [alpha] => 0 +) +Array +( + [red] => 255 + [green] => 0 + [blue] => 0 + [alpha] => 0 +) +Array +( + [red] => 246 + [green] => 10 + [blue] => 10 + [alpha] => 0 +) +64FF00FF +Array +( + [red] => 255 + [green] => 0 + [blue] => 255 + [alpha] => 100 +) +Array +( + [red] => 255 + [green] => 0 + [blue] => 0 + [alpha] => 1 +) +Array +( + [red] => 246 + [green] => 10 + [blue] => 10 + [alpha] => 1 +) diff --git a/ext/gd/tests/copy.phpt b/ext/gd/tests/copy.phpt new file mode 100644 index 0000000000..5aafc31e76 --- /dev/null +++ b/ext/gd/tests/copy.phpt @@ -0,0 +1,109 @@ +--TEST-- +imagecopy +--SKIPIF-- +<?php + if (!function_exists('imagecopy')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php + +$src_tc = imagecreatetruecolor(5,5); +imagefill($src_tc, 0,0, 0xffffff); +imagesetpixel($src_tc, 3,3, 0xff0000); +imagesetpixel($src_tc, 0,0, 0x0000ff); +imagesetpixel($src_tc, 4,4, 0x00ff00); + + +$dst_tc = imagecreatetruecolor(5,5); +imagecopy($dst_tc, $src_tc, 0,0, 0,0, imagesx($src_tc), imagesy($src_tc)); +$p1 = imagecolorat($dst_tc, 3,3) == 0xff0000; +$p2 = imagecolorat($dst_tc, 0,0) == 0x0000ff; +$p3 = imagecolorat($dst_tc, 4,4) == 0x00ff00; + +if ($p1 && $p2 && $p3) { + echo "TC/TC: ok\n"; +} + +imagedestroy($src_tc); imagedestroy($dst_tc); + + +$src_tc = imagecreatetruecolor(5,5); +imagefill($src_tc, 0,0, 0xffffff); +imagesetpixel($src_tc, 3,3, 0xff0000); +imagesetpixel($src_tc, 0,0, 0x0000ff); +imagesetpixel($src_tc, 4,4, 0x00ff00); + + +$dst_tc = imagecreate(5,5); +imagecopy($dst_tc, $src_tc, 0,0, 0,0, imagesx($src_tc), imagesy($src_tc)); + +$c1 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 3,3)); +$c2 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 0,0)); +$c3 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 4,4)); + +$p1 = $c1['red'] == 0xff && $c1['blue']==0x00 && $c1['green']==0x00; +$p2 = $c2['red'] == 0x00 && $c2['blue']==0xff && $c2['green']==0x00; +$p3 = $c3['red'] == 0x00 && $c3['blue']==0x00 && $c3['green']==0xff; + +if ($p1 && $p2 && $p3) { + echo "TC/P: ok\n"; +} +imagedestroy($src_tc); imagedestroy($dst_tc); + + + +$src_tc = imagecreate(5,5); +$c0 = imagecolorallocate($src_tc, 0xff, 0xff, 0xff); +$c1 = imagecolorallocate($src_tc, 0xff, 0x00, 0x00); +$c2 = imagecolorallocate($src_tc, 0x00, 0x00, 0xff); +$c3 = imagecolorallocate($src_tc, 0x00, 0xff, 0x00); + +imagesetpixel($src_tc, 3,3, $c1); +imagesetpixel($src_tc, 0,0, $c2); +imagesetpixel($src_tc, 4,4, $c3); + + +$dst_tc = imagecreate(5,5); +imagecopy($dst_tc, $src_tc, 0,0, 0,0, imagesx($src_tc), imagesy($src_tc)); + +$c1 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 3,3)); +$c2 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 0,0)); +$c3 = imagecolorsforindex($dst_tc, imagecolorat($dst_tc, 4,4)); + +$p1 = $c1['red'] == 0xff && $c1['blue']==0x00 && $c1['green']==0x00; +$p2 = $c2['red'] == 0x00 && $c2['blue']==0xff && $c2['green']==0x00; +$p3 = $c3['red'] == 0x00 && $c3['blue']==0x00 && $c3['green']==0xff; + + +if ($p1 && $p2 && $p3) { + echo "P/P: ok\n"; +} + + + +$src_tc = imagecreate(5,5); +$c0 = imagecolorallocate($src_tc, 0xff, 0xff, 0xff); +$c1 = imagecolorallocate($src_tc, 0xff, 0x00, 0x00); +$c2 = imagecolorallocate($src_tc, 0x00, 0x00, 0xff); +$c3 = imagecolorallocate($src_tc, 0x00, 0xff, 0x00); + +imagesetpixel($src_tc, 3,3, $c1); +imagesetpixel($src_tc, 0,0, $c2); +imagesetpixel($src_tc, 4,4, $c3); + + +$dst_tc = imagecreatetruecolor(5,5); +imagecopy($dst_tc, $src_tc, 0,0, 0,0, imagesx($src_tc), imagesy($src_tc)); +$p1 = imagecolorat($dst_tc, 3,3) == 0xff0000; +$p2 = imagecolorat($dst_tc, 0,0) == 0x0000ff; +$p3 = imagecolorat($dst_tc, 4,4) == 0x00ff00; + +if ($p1 && $p2 && $p3) { + echo "P/TC: ok\n"; +} +?> +--EXPECTF-- +TC/TC: ok +TC/P: ok +P/P: ok +P/TC: ok diff --git a/ext/gd/tests/copyresized.phpt b/ext/gd/tests/copyresized.phpt new file mode 100644 index 0000000000..fe98642dbb --- /dev/null +++ b/ext/gd/tests/copyresized.phpt @@ -0,0 +1,91 @@ +--TEST-- +imagecopyresized +--SKIPIF-- +<?php + if (!function_exists('imagecopyresized')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php + +function get_hexcolor($im, $c) { + if (imageistruecolor($im)) { + return $c; + } + $colors = imagecolorsforindex($im, $c); + return ($colors['red'] << 16) + ($colors['green'] << 8) + ($colors['blue']); +} + +function check_doublesize($dst) { + $im = imagecreatetruecolor(38,38); + imagefill($im,0,0, 0xffffff); + imagefilledrectangle($im, 0,0,9,9, 0xff0000); + imagefilledrectangle($im, 0,28,9,37, 0xff0000); + imagefilledrectangle($im, 28,0,37,9, 0xff0000); + imagefilledrectangle($im, 28,28,37,37, 0xff0000); + imagefilledrectangle($im, 14,14,23,23, 0xff0000); + + for ($x = 0; $x < 38; $x++) { + for ($y = 0; $y < 38; $y++) { + $p1 = imagecolorat($im, $x, $y); + $p2 = imagecolorat($dst, $x, $y); + if (get_hexcolor($im, $p1) != get_hexcolor($dst, $p2)) { + return false; + } + } + } + return true; +} + +$src_tc = imagecreatetruecolor(19,19); +imagefill($src_tc, 0,0, 0xffffff); +imagefilledrectangle($src_tc, 0,0,4,4, 0xff0000); +imagefilledrectangle($src_tc, 14,0,18,4, 0xff0000); +imagefilledrectangle($src_tc, 0,14,4,18, 0xff0000); +imagefilledrectangle($src_tc, 14,14,18,18, 0xff0000); +imagefilledrectangle($src_tc, 7,7,11,11, 0xff0000); + +$dst_tc = imagecreatetruecolor(38,38); +imagecopyresized($dst_tc, $src_tc, 0,0, 0,0, imagesx($dst_tc), imagesy($dst_tc), 19,19); + +if (!check_doublesize($dst_tc)) exit("1 failed\n"); +echo "TC->TC: ok\n"; + +$src_tc = imagecreate(19,19); +$white = imagecolorallocate($src_tc, 255,255,255); +$red = imagecolorallocate($src_tc, 255,0,0); + +imagefilledrectangle($src_tc, 0,0,4,4, $red); +imagefilledrectangle($src_tc, 14,0,18,4, $red); +imagefilledrectangle($src_tc, 0,14,4,18, $red); +imagefilledrectangle($src_tc, 14,14,18,18, $red); +imagefilledrectangle($src_tc, 7,7,11,11, $red); + +$dst_tc = imagecreatetruecolor(38,38); +imagecopyresized($dst_tc, $src_tc, 0,0, 0,0, imagesx($dst_tc), imagesy($dst_tc), 19,19); + +if (!check_doublesize($dst_tc)) exit("2 failed\n"); +echo "P->TC: ok\n"; + +$src_tc = imagecreate(19,19); +$white = imagecolorallocate($src_tc, 255,255,255); +$red = imagecolorallocate($src_tc, 255,0,0); + +imagefilledrectangle($src_tc, 0,0,4,4, $red); +imagefilledrectangle($src_tc, 14,0,18,4, $red); +imagefilledrectangle($src_tc, 0,14,4,18, $red); +imagefilledrectangle($src_tc, 14,14,18,18, $red); +imagefilledrectangle($src_tc, 7,7,11,11, $red); + +$dst_tc = imagecreate(38,38); +$white = imagecolorallocate($src_tc, 255,255,255); +$red = imagecolorallocate($src_tc, 255,0,0); + +imagecopyresized($dst_tc, $src_tc, 0,0, 0,0, imagesx($dst_tc), imagesy($dst_tc), 19,19); + +if (!check_doublesize($dst_tc)) exit("3 failed\n"); +echo "P->P: ok\n"; +?> +--EXPECTF-- +TC->TC: ok +P->TC: ok +P->P: ok diff --git a/ext/gd/tests/createfromgd2.phpt b/ext/gd/tests/createfromgd2.phpt new file mode 100644 index 0000000000..98b078ea59 --- /dev/null +++ b/ext/gd/tests/createfromgd2.phpt @@ -0,0 +1,24 @@ +--TEST-- +imagecreatefromgd2 +--SKIPIF-- +<?php + if (!function_exists('imagecreatefromgd2')) die("skip gd extension not available\n"); + if (!GD_BUNDLED) die('skip external GD libraries always fail'); +?> +--FILE-- +<?php +$file = dirname(__FILE__) . '/src.gd2'; + +$im2 = imagecreatefromgd2($file); +echo 'test create from gd2: '; +echo imagecolorat($im2, 4,4) == 0xffffff ? 'ok' : 'failed'; +echo "\n"; + +$im3 = imagecreatefromgd2part($file, 4,4, 2,2); +echo 'test create from gd2 part: '; +echo imagecolorat($im2, 4,4) == 0xffffff ? 'ok' : 'failed'; +echo "\n"; +?> +--EXPECT-- +test create from gd2: ok +test create from gd2 part: ok diff --git a/ext/gd/tests/createfromwbmp.phpt b/ext/gd/tests/createfromwbmp.phpt new file mode 100644 index 0000000000..5e48f235e0 --- /dev/null +++ b/ext/gd/tests/createfromwbmp.phpt @@ -0,0 +1,18 @@ +--TEST-- +imagecreatefromwbmp +--SKIPIF-- +<?php + if (!function_exists('imagecreatefromwbmp')) die("skip gd extension not available\n"); + if (!GD_BUNDLED) die('skip external GD libraries always fail'); +?> +--FILE-- +<?php +$file = dirname(__FILE__) . '/src.wbmp'; + +$im2 = imagecreatefromwbmp($file); +echo 'test create from wbmp: '; +echo imagecolorat($im2, 3,3) == 0x0 ? 'ok' : 'failed'; +echo "\n"; +?> +--EXPECT-- +test create from wbmp: ok diff --git a/ext/gd/tests/dashedlines.phpt b/ext/gd/tests/dashedlines.phpt new file mode 100644 index 0000000000..30db8f1c71 --- /dev/null +++ b/ext/gd/tests/dashedlines.phpt @@ -0,0 +1,79 @@ +--TEST-- +imageline, dashed +--SKIPIF-- +<?php + if (!function_exists('imagecreatefromstring')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); + +$r = 0xff0000; +$b = 0x0000ff; + +$style = array($r, $b); +imagesetstyle($im, $style); + +// Horizontal line +imageline($im, 0,5, 5,5, IMG_COLOR_STYLED); +$p1 = imagecolorat($im, 0,5) == $r; +$p2 = imagecolorat($im, 1,5) == $b; +$p3 = imagecolorat($im, 2,5) == $r; +$p4 = imagecolorat($im, 3,5) == $b; +$p5 = imagecolorat($im, 4,5) == $r; +$p5 = imagecolorat($im, 5,5) == $b; + + +if ($p1 && $p2 && $p3 && $p4 && $p5) { + echo "Horizontal: ok\n"; +} +imagedestroy($im); + + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); + +$style = array($r, $b); +imagesetstyle($im, $style); + + +imageline($im, 2,0, 2,5, IMG_COLOR_STYLED); +$p1 = imagecolorat($im, 2,0) == $r; +$p2 = imagecolorat($im, 2,1) == $b; +$p3 = imagecolorat($im, 2,2) == $r; +$p4 = imagecolorat($im, 2,3) == $b; +$p5 = imagecolorat($im, 2,4) == $r; +$p6 = imagecolorat($im, 2,5) == $b; +imagepng($im, 'b.png'); +if ($p1 && $p2 && $p3 && $p4 && $p5 && $p6) { + echo "Vertical: ok\n"; +} +imagedestroy($im); + + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); + +$style = array($r, $b); +imagesetstyle($im, $style); + +imageline($im, 0,0, 5,5, IMG_COLOR_STYLED); +$p1 = imagecolorat($im, 0,0) == $r; +$p2 = imagecolorat($im, 1,1) == $b; +$p3 = imagecolorat($im, 2,2) == $r; +$p4 = imagecolorat($im, 3,3) == $b; +$p5 = imagecolorat($im, 4,4) == $r; +$p6 = imagecolorat($im, 5,5) == $b; + +if ($p1 && $p2 && $p3 && $p4 && $p5 && $p6) { + echo "Diagonal: ok\n"; +} +imagedestroy($im); + + +?> +--EXPECTF-- +Horizontal: ok +Vertical: ok +Diagonal: ok diff --git a/ext/gd/tests/gif.phpt b/ext/gd/tests/gif.phpt new file mode 100644 index 0000000000..e798d87728 --- /dev/null +++ b/ext/gd/tests/gif.phpt @@ -0,0 +1,145 @@ +--TEST-- +gif in/out +--SKIPIF-- +<?php +// $Id$ + if (!extension_loaded('gd')) { + die("skip gd extension not available."); + } + if (!function_exists("imagegif") || !function_exists("imagecreatefromgif") || !function_exists('imagecreatefromjpeg')) { + die("skip gif support unavailable"); + } +?> +--FILE-- +<?php + +function check_box($r,$g,$b, $error=0) { + $cwd = dirname(__FILE__); + $im2 = imagecreatefromgif($cwd . '/test_gif.gif'); + + $c = imagecolorsforindex($im2, imagecolorat($im2, 8,8)); + + if ($error>0) { + $r_min = $r - $error; $r_max = $r + $error; + $g_min = $g - $error; $g_max = $g + $error; + $b_min = $b - $error; $b_max = $b + $error; + + if ( + ($c['red'] >= $r_min || $c['red'] <= $r_max) + && + ($c['green'] >= $g_min || $c['green'] <= $g_max) + && + ($c['blue'] >= $b_min || $c['blue'] <= $b_max) + ) { + return true; + } else { + return false; + } + } else { + if ($c['red']==$r && $c['green']==$g && $c['blue']==$b) { + return true; + } else { + return false; + } + } +} +$cwd = dirname(__FILE__); + +$im = imagecreate(10,10); +$c = imagecolorallocate($im, 255,255,255); +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +if (check_box(255,255,255)) { + echo "<4 cols: ok\n"; +} + +$im = imagecreate(10,10); +for ($i=0; $i<7; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<8 cols: ok\n"; +} + + +$im = imagecreate(10,10); +for ($i=0; $i<15; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<16 cols: ok\n"; +} + + +$im = imagecreate(10,10); +for ($i=0; $i<31; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<32 cols: ok\n"; +} + + +$im = imagecreate(10,10); +for ($i=0; $i<63; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<64 cols: ok\n"; +} + +$im = imagecreate(10,10); +for ($i=0; $i<127; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<128 cols: ok\n"; +} + +$im = imagecreate(10,10); +for ($i=0; $i<255; $i++) { + $c = imagecolorallocate($im, $i,$i,$i); +} +imagefilledrectangle($im, 5,5, 10,10, $c); +imagegif($im, $cwd . '/test_gif.gif'); +$i--; +if (check_box($i,$i,$i)) { + echo "<256 cols: ok\n"; +} + + +$im = imagecreatefromjpeg($cwd . '/conv_test.jpeg'); +imagefilledrectangle($im, 5,5, 10,10, 0xffffff); +imagegif($im, $cwd . '/test_gif.gif'); +imagegif($im, $cwd . '/test_gif_2.gif'); + +if (check_box(255,255,255, 10)) { + echo ">256 cols: ok\n"; +} + +@unlink($cwd . "/test_gif.gif"); +?> +--EXPECT-- +<4 cols: ok +<8 cols: ok +<16 cols: ok +<32 cols: ok +<64 cols: ok +<128 cols: ok +<256 cols: ok +>256 cols: ok diff --git a/ext/gd/tests/imagewbmp.phpt b/ext/gd/tests/imagewbmp.phpt new file mode 100644 index 0000000000..cea464e759 --- /dev/null +++ b/ext/gd/tests/imagewbmp.phpt @@ -0,0 +1,31 @@ +--TEST-- +imagewbmp +--SKIPIF-- +<?php + if (!function_exists('imagecreatefromwbmp')) die("skip gd extension not available\n"); + if (!GD_BUNDLED) die('skip external GD libraries always fail'); +?> +--FILE-- +<?php +$file = dirname(__FILE__) . '/im.wbmp'; + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imagesetpixel($im, 3,3, 0x0); +imagewbmp($im, $file); + +$im2 = imagecreatefromwbmp($file); +echo 'test create wbmp: '; +$c = imagecolorsforindex($im2, imagecolorat($im2, 3,3)); +$failed = false; +foreach ($c as $v) { + if ($v != 0) { + $failed = true; + } +} +echo !$failed ? 'ok' : 'failed'; +echo "\n"; +unlink($file); +?> +--EXPECT-- +test create wbmp: ok diff --git a/ext/gd/tests/lines.phpt b/ext/gd/tests/lines.phpt new file mode 100644 index 0000000000..8f64e12aee --- /dev/null +++ b/ext/gd/tests/lines.phpt @@ -0,0 +1,116 @@ +--TEST-- +imageline no AA +--SKIPIF-- +<?php + if (!function_exists('imageline')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); + +// Wrong argument count +imageline($im, 0,0, 5,5); + + +// Horizontal line +imageline($im, 0,5, 5,5, 0x00ff00); + +$p1 = imagecolorat($im, 0,5)==0x00ff00; +$p2 = imagecolorat($im, 5,5)==0x00ff00; +$p3 = true; +for ($x=1; $x<5; $x++) { + $p3 = $p3 && (imagecolorat($im, $x,5)==0x00ff00); +} +if ($p1 && $p2 && $p3) { + echo "Horizontal: ok\n"; +} + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); + +imageline($im, 0,0, 0,5, 0x00ff00); +$p1 = imagecolorat($im, 0,0)==0x00ff00; +$p2 = imagecolorat($im, 0,5)==0x00ff00; +$p3 = true; +for ($y=1; $y<5; $y++) { + $p3 = $p3 && (imagecolorat($im, 0,$y)==0x00ff00); +} + +if ($p1 && $p2 && $p3) { + echo "Vertical: ok\n"; +} + + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imageline($im, 0,0, 5,5, 0x00ff00); + + +// Diagonal +$p1 = imagecolorat($im, 0,0)==0x00ff00; +$p2 = imagecolorat($im, 5,5)==0x00ff00; +$x=1; +$p3 = true; + +for ($y=1; $y<5; $y++) { + $p3 = $p3 && (imagecolorat($im, $x,$y)==0x00ff00); + $x++; +} + +if ($p1 && $p2 && $p3) { + echo "Diagonal: ok\n"; +} +imagepng($im, 'a.png'); + + +// Outside +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imageline($im, 12, 12, 23,23, 0x00ff00); +$p3 = true; +for ($x=0; $x<6; $x++) { + for ($y=0; $y<6; $y++) { + $p3 = $p3 && (imagecolorat($im, $x,$y)!=0x00ff00); + } +} +if ($p3) { + echo "Outside 1: ok\n"; +} + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imageline($im, -12, -12, -23,-23, 0x00ff00); +$p3 = true; +for ($x=0; $x<6; $x++) { + for ($y=0; $y<6; $y++) { + $p3 = $p3 && (imagecolorat($im, $x,$y)!=0x00ff00); + } +} +if ($p3) { + echo "Outside 2: ok\n"; +} + +$im = imagecreatetruecolor(6,6); +imagefill($im, 0,0, 0xffffff); +imageline($im, -1, -1, 4,4, 0x00ff00); +$p3 = true; +for ($x=0; $x<5; $x++) { + for ($y=0; $y<5; $y++) { + $p3 = $p3 && (imagecolorat($im, $x,$y)==0x00ff00); + } +} +if ($p3) { + echo "Outside 2: ok\n"; +} + + +?> +--EXPECTF-- + +Warning: Wrong parameter count for imageline() in %s on line %d +Horizontal: ok +Vertical: ok +Diagonal: ok +Outside 1: ok +Outside 2: ok diff --git a/ext/gd/tests/src.gd2 b/ext/gd/tests/src.gd2 Binary files differnew file mode 100644 index 0000000000..1c64b46d9a --- /dev/null +++ b/ext/gd/tests/src.gd2 diff --git a/ext/gd/tests/src.wbmp b/ext/gd/tests/src.wbmp Binary files differnew file mode 100644 index 0000000000..d38c74268a --- /dev/null +++ b/ext/gd/tests/src.wbmp diff --git a/ext/gd/tests/test_gif_2.gif b/ext/gd/tests/test_gif_2.gif Binary files differnew file mode 100644 index 0000000000..332ec8b41f --- /dev/null +++ b/ext/gd/tests/test_gif_2.gif diff --git a/ext/gd/tests/truecolor.phpt b/ext/gd/tests/truecolor.phpt new file mode 100644 index 0000000000..9e30cbe29c --- /dev/null +++ b/ext/gd/tests/truecolor.phpt @@ -0,0 +1,19 @@ +--TEST-- +imageistruecolor, truecolortopalette +--SKIPIF-- +<?php + if (!function_exists('imagetruecolortopalette')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php +$im = imagecreatetruecolor(1,1); +if (imageistruecolor($im)) echo "ok\n"; + +if (imagetruecolortopalette($im, 1,2)) echo "ok\n"; +if (!imageistruecolor($im)) echo "ok\n"; + +?> +--EXPECTF-- +ok +ok +ok diff --git a/ext/gd/tests/types.phpt b/ext/gd/tests/types.phpt new file mode 100644 index 0000000000..0b79e78d1b --- /dev/null +++ b/ext/gd/tests/types.phpt @@ -0,0 +1,33 @@ +--TEST-- +imagetypes +--SKIPIF-- +<?php + if (!function_exists('imagetypes')) die("skip gd extension not available\n"); +?> +--FILE-- +<?php +$flags = imagetypes(); + +if ($flags&0x1 && !function_exists("imagegif")) { + echo "gif failed\n"; +} + +if ($flags&0x2 && !function_exists("imagejpeg")) { + echo "jpeg failed\n"; +} + +if ($flags&0x4 && !function_exists("imagepng")) { + echo "png failed\n"; +} + +if ($flags&0x8 && !function_exists("imagewbmp")) { + echo "wbmp failed\n"; +} + +if ($flags&16 && !function_exists("imagecreatefromxpm")) { + echo "xom failed\n"; +} +echo "ok\n"; +?> +--EXPECTF-- +ok |
