1--TEST--
2Test date_sunset() function : usage variation - Passing unexpected values to second argument format.
3--SKIPIF--
4<?php if (PHP_INT_SIZE != 4) echo "skip this test is for 32-bit only"; ?>
5--FILE--
6<?php
7/* Prototype  : mixed date_sunset(mixed time [, int format [, float latitude [, float longitude [, float zenith [, float gmt_offset]]]]])
8 * Description: Returns time of sunset for a given day and location
9 * Source code: ext/date/php_date.c
10 * Alias to functions:
11 */
12
13echo "*** Testing date_sunset() : usage variation ***\n";
14
15// Initialise function arguments not being substituted (if any)
16date_default_timezone_set("Asia/Calcutta");
17$time = mktime(8, 8, 8, 8, 8, 2008);
18$latitude = 22.34;
19$longitude = 88.21;
20$zenith = 90;
21$gmt_offset = 5.5;
22
23//get an unset variable
24$unset_var = 10;
25unset ($unset_var);
26
27// define some classes
28class classWithToString
29{
30	public function __toString() {
31		return "Class A object";
32	}
33}
34
35class classWithoutToString
36{
37}
38
39// heredoc string
40$heredoc = <<<EOT
41hello world
42EOT;
43
44// add arrays
45$index_array = array (1, 2, 3);
46$assoc_array = array ('one' => 1, 'two' => 2);
47
48//array of values to iterate over
49$inputs = array(
50
51      // float data
52      'float 10.5' => 10.5,
53      'float -10.5' => -10.5,
54      'float 12.3456789000e10' => 12.3456789000e10,
55      'float -12.3456789000e10' => -12.3456789000e10,
56      'float .5' => .5,
57
58      // array data
59      'empty array' => array(),
60      'int indexed array' => $index_array,
61      'associative array' => $assoc_array,
62      'nested arrays' => array('foo', $index_array, $assoc_array),
63
64      // null data
65      'uppercase NULL' => NULL,
66      'lowercase null' => null,
67
68      // boolean data
69      'lowercase true' => true,
70      'lowercase false' =>false,
71      'uppercase TRUE' =>TRUE,
72      'uppercase FALSE' =>FALSE,
73
74      // empty data
75      'empty string DQ' => "",
76      'empty string SQ' => '',
77
78      // string data
79      'string DQ' => "string",
80      'string SQ' => 'string',
81      'mixed case string' => "sTrInG",
82      'heredoc' => $heredoc,
83
84      // object data
85      'instance of classWithToString' => new classWithToString(),
86      'instance of classWithoutToString' => new classWithoutToString(),
87
88      // undefined data
89      'undefined var' => @$undefined_var,
90
91      // unset data
92      'unset var' => @$unset_var,
93);
94
95// loop through each element of the array for format
96
97foreach($inputs as $key =>$value) {
98      echo "\n--$key--\n";
99      var_dump( date_sunset($time, $value, $latitude, $longitude, $zenith, $gmt_offset) );
100};
101
102?>
103===DONE===
104--EXPECTF--
105*** Testing date_sunset() : usage variation ***
106
107--float 10.5--
108
109Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d
110bool(false)
111
112--float -10.5--
113
114Warning: date_sunset(): Wrong return format given, pick one of SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING or SUNFUNCS_RET_DOUBLE in %s on line %d
115bool(false)
116
117--float 12.3456789000e10--
118
119Warning: date_sunset() expects parameter 2 to be integer, float given in %s on line %d
120bool(false)
121
122--float -12.3456789000e10--
123
124Warning: date_sunset() expects parameter 2 to be integer, float given in %s on line %d
125bool(false)
126
127--float .5--
128int(1218199264)
129
130--empty array--
131
132Warning: date_sunset() expects parameter 2 to be integer, array given in %s on line %d
133bool(false)
134
135--int indexed array--
136
137Warning: date_sunset() expects parameter 2 to be integer, array given in %s on line %d
138bool(false)
139
140--associative array--
141
142Warning: date_sunset() expects parameter 2 to be integer, array given in %s on line %d
143bool(false)
144
145--nested arrays--
146
147Warning: date_sunset() expects parameter 2 to be integer, array given in %s on line %d
148bool(false)
149
150--uppercase NULL--
151int(1218199264)
152
153--lowercase null--
154int(1218199264)
155
156--lowercase true--
157string(5) "18:11"
158
159--lowercase false--
160int(1218199264)
161
162--uppercase TRUE--
163string(5) "18:11"
164
165--uppercase FALSE--
166int(1218199264)
167
168--empty string DQ--
169
170Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
171bool(false)
172
173--empty string SQ--
174
175Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
176bool(false)
177
178--string DQ--
179
180Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
181bool(false)
182
183--string SQ--
184
185Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
186bool(false)
187
188--mixed case string--
189
190Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
191bool(false)
192
193--heredoc--
194
195Warning: date_sunset() expects parameter 2 to be integer, string given in %s on line %d
196bool(false)
197
198--instance of classWithToString--
199
200Warning: date_sunset() expects parameter 2 to be integer, object given in %s on line %d
201bool(false)
202
203--instance of classWithoutToString--
204
205Warning: date_sunset() expects parameter 2 to be integer, object given in %s on line %d
206bool(false)
207
208--undefined var--
209int(1218199264)
210
211--unset var--
212int(1218199264)
213===DONE===
214