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