]> granicus.if.org Git - php/commitdiff
Basic tests for strftime(). Tested on Windows (all tests skip), Linux and Liinux...
authorandy wharmby <wharmby@php.net>
Thu, 18 Jun 2009 21:14:14 +0000 (21:14 +0000)
committerandy wharmby <wharmby@php.net>
Thu, 18 Jun 2009 21:14:14 +0000 (21:14 +0000)
ext/standard/tests/time/strptime_basic.phpt [new file with mode: 0644]
ext/standard/tests/time/strptime_error.phpt [new file with mode: 0644]

diff --git a/ext/standard/tests/time/strptime_basic.phpt b/ext/standard/tests/time/strptime_basic.phpt
new file mode 100644 (file)
index 0000000..8f11003
--- /dev/null
@@ -0,0 +1,102 @@
+--TEST--
+Test strptime() function : basic functionality 
+--SKIPIF--
+<?php 
+       if (!function_exists('strptime')) { 
+               die("skip - strptime() function not available in this build"); 
+       }        
+?>
+
+--FILE--
+<?php
+/* Prototype  : array strptime  ( string $date  , string $format  )
+ * Description:  Parse a time/date generated with strftime()
+ * Source code: ext/standard/datetime.c
+*/
+
+$orig = setlocale(LC_ALL, 'C');
+date_default_timezone_set("GMT"); 
+
+echo "*** Testing strptime() : basic functionality ***\n";
+
+$input = "10:00:00 AM July 2 1963";
+$tstamp = strtotime($input);
+$str = strftime("%r %B%e %Y %Z", $tstamp);
+var_dump(strptime($str, '%H:%M:%S %p %B %d %Y %Z'));
+
+$str = strftime("%T %D", $tstamp);
+var_dump(strptime($str, '%H:%M:%S %m/%d/%y'));
+
+$str = strftime("%A %B %e %R", $tstamp);
+var_dump(strptime($str, '%A %B %e %R'));
+
+setlocale(LC_ALL, $orig);
+?>
+===DONE===
+--EXPECTF--
+Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d
+*** Testing strptime() : basic functionality ***
+array(9) {
+  [u"tm_sec"]=>
+  int(0)
+  [u"tm_min"]=>
+  int(0)
+  [u"tm_hour"]=>
+  int(10)
+  [u"tm_mday"]=>
+  int(2)
+  [u"tm_mon"]=>
+  int(6)
+  [u"tm_year"]=>
+  int(63)
+  [u"tm_wday"]=>
+  int(2)
+  [u"tm_yday"]=>
+  int(182)
+  [u"unparsed"]=>
+  unicode(3) "GMT"
+}
+array(9) {
+  [u"tm_sec"]=>
+  int(0)
+  [u"tm_min"]=>
+  int(0)
+  [u"tm_hour"]=>
+  int(10)
+  [u"tm_mday"]=>
+  int(2)
+  [u"tm_mon"]=>
+  int(6)
+  [u"tm_year"]=>
+  int(163)
+  [u"tm_wday"]=>
+  int(1)
+  [u"tm_yday"]=>
+  int(182)
+  [u"unparsed"]=>
+  unicode(0) ""
+}
+array(9) {
+  [u"tm_sec"]=>
+  int(0)
+  [u"tm_min"]=>
+  int(0)
+  [u"tm_hour"]=>
+  int(10)
+  [u"tm_mday"]=>
+  int(2)
+  [u"tm_mon"]=>
+  int(6)
+  [u"tm_year"]=>
+  int(0)
+  [u"tm_wday"]=>
+  int(2)
+  [u"tm_yday"]=>
+  int(182)
+  [u"unparsed"]=>
+  unicode(0) ""
+}
+
+Deprecated: setlocale(): deprecated in Unicode mode, please use ICU locale functions in %s on line %d
+===DONE===
diff --git a/ext/standard/tests/time/strptime_error.phpt b/ext/standard/tests/time/strptime_error.phpt
new file mode 100644 (file)
index 0000000..92c7ca3
--- /dev/null
@@ -0,0 +1,55 @@
+--TEST--
+Test localtime() function : error conditions
+--SKIPIF--
+<?php 
+if (!function_exists('strptime')) {
+       echo "SKIP strptime function not available in build";
+}       
+?> 
+--FILE--
+<?php
+/* Prototype  : array strptime  ( string $date  , string $format  )
+ * Description: Parse a time/date generated with strftime()
+ * Source code: ext/standard/datetime.c
+ * Alias to functions: 
+ */
+
+//Set the default time zone 
+date_default_timezone_set("Europe/London");
+
+echo "*** Testing strptime() : error conditions ***\n";
+
+echo "\n-- Testing strptime() function with Zero arguments --\n";
+var_dump( strptime() );
+
+echo "\n-- Testing strptime() function with less than expected no. of arguments --\n";
+$format = '%b %d %Y %H:%M:%S';
+$timestamp = mktime(8, 8, 8, 8, 8, 2008);
+$date = strftime($format, $timestamp);
+var_dump( strptime($date) );
+
+echo "\n-- Testing strptime() function with more than expected no. of arguments --\n";
+$extra_arg = 10;
+var_dump( strptime($date, $format, $extra_arg) );
+
+?>
+===DONE===
+--EXPECTF--
+*** Testing strptime() : error conditions ***
+
+-- Testing strptime() function with Zero arguments --
+
+Warning: strptime() expects exactly 2 parameters, 0 given in %s on line %d
+NULL
+
+-- Testing strptime() function with less than expected no. of arguments --
+
+Warning: strptime() expects exactly 2 parameters, 1 given in %s on line %d
+NULL
+
+-- Testing strptime() function with more than expected no. of arguments --
+
+Warning: strptime() expects exactly 2 parameters, 3 given in %s on line %d
+NULL
+===DONE===
+