1--TEST--
2Test imagecolorallocate() function : usage variations  - passing RED, GREEN, BLUE values more than 255
3--SKIPIF--
4<?php
5if(!extension_loaded('gd')) {
6    die('skip gd extension is not loaded');
7}
8if(!function_exists('imagecreatetruecolor')) {
9    die('skip imagecreatetruecolor function is not available');
10}
11?>
12--FILE--
13<?php
14require  __DIR__ . '/func.inc';
15
16echo "*** Testing imagecolorallocate() : usage variations ***\n";
17
18$values = array(
19      //Decimal integera data
20      "Decimal 256" => 256,
21
22      // octal integer data
23      "Octal 0400" => 0400,
24
25      // hexa-decimal integer data
26      "Hexa-decimal 0x100" => 0x100
27);
28
29// loop through each element of the array for blue
30foreach($values as $key => $value) {
31      echo "\n--$key--\n";
32      //Need to be created every time to get expected return value
33      $im_palette = imagecreate(200, 200);
34      $im_true_color = imagecreatetruecolor(200, 200);
35
36      trycatch_dump(
37          fn() => imagecolorallocate($im_palette, $value, 0, 0),
38          fn() => imagecolorallocate($im_true_color, $value, 0, 0),
39          fn() => imagecolorallocate($im_palette, 0, $value, 0),
40          fn() => imagecolorallocate($im_true_color, 0, $value, 0),
41          fn() => imagecolorallocate($im_palette, 0, 0, $value),
42          fn() => imagecolorallocate($im_true_color, 0, 0, $value)
43      );
44};
45?>
46--EXPECT--
47*** Testing imagecolorallocate() : usage variations ***
48
49--Decimal 256--
50!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
51!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
52!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
53!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
54!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
55!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
56
57--Octal 0400--
58!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
59!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
60!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
61!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
62!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
63!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
64
65--Hexa-decimal 0x100--
66!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
67!! [ValueError] imagecolorallocate(): Argument #2 ($red) must be between 0 and 255 (inclusive)
68!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
69!! [ValueError] imagecolorallocate(): Argument #3 ($green) must be between 0 and 255 (inclusive)
70!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
71!! [ValueError] imagecolorallocate(): Argument #4 ($blue) must be between 0 and 255 (inclusive)
72