summaryrefslogtreecommitdiff
path: root/ext/gd/tests/imagecolorallocate_variation5.phpt
blob: 1451af5a83bd714e5a2ec1bc314e2c685f7a5aea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
--TEST--
Test imagecolorallocate() function : usage variations  - passing octal and hexa-decimal values
--SKIPIF--
<?php
if(!extension_loaded('gd')) {
    die('skip gd extension is not loaded');
}
if(!function_exists('imagecreatetruecolor')) {
    die('skip imagecreatetruecolor function is not available');
}
?>
--FILE--
<?php
require __DIR__ . '/func.inc';

/* Prototype  : int imagecolorallocate(resource im, int red, int green, int blue)
 * Description:  Allocate a color for an image
 * Source code: ext/gd/gd.c
 */
echo "*** Testing imagecolorallocate() : usage variations ***\n";

$im = imagecreatetruecolor(200, 200);
$red = 10;
$green = 10;
$blue = 10;

$values = array(
      // octal integer data
      "Octal 000" => 000,
      "Octal 012" => 012,
      "Octal -012" => -012,
      "Octal 0377" => 0377,

      // hexa-decimal integer data
      "Hexa-decimal 0x0" => 0x0,
      "Hexa-decimal 0xA" => 0xA,
      "Hexa-decimal -0xA" => -0xA,
      "Hexa-decimal 0xFF" => 0xFF,
);

// loop through each element of the array for blue
foreach($values as $key => $value) {
    echo "\n--$key--\n";

    trycatch_dump(
        fn() => imagecolorallocate($im, $value, $green, $blue),
        fn() => imagecolorallocate($im, $red, $value, $blue),
        fn() => imagecolorallocate($im, $red, $green, $value)
    );
};
?>
--EXPECT--
*** Testing imagecolorallocate() : usage variations ***

--Octal 000--
int(2570)
int(655370)
int(657920)

--Octal 012--
int(657930)
int(657930)
int(657930)

--Octal -012--
!! [ValueError] Red component is out of range, must be between 0 and 255 (inclusive)
!! [ValueError] Green component is out of range, must be between 0 and 255 (inclusive)
!! [ValueError] Blue component is out of range, must be between 0 and 255 (inclusive)

--Octal 0377--
int(16714250)
int(720650)
int(658175)

--Hexa-decimal 0x0--
int(2570)
int(655370)
int(657920)

--Hexa-decimal 0xA--
int(657930)
int(657930)
int(657930)

--Hexa-decimal -0xA--
!! [ValueError] Red component is out of range, must be between 0 and 255 (inclusive)
!! [ValueError] Green component is out of range, must be between 0 and 255 (inclusive)
!! [ValueError] Blue component is out of range, must be between 0 and 255 (inclusive)

--Hexa-decimal 0xFF--
int(16714250)
int(720650)
int(658175)