summaryrefslogtreecommitdiff
path: root/ext/ftp/tests
diff options
context:
space:
mode:
Diffstat (limited to 'ext/ftp/tests')
-rw-r--r--ext/ftp/tests/ftp_mdtm_basic.phpt48
-rw-r--r--ext/ftp/tests/server.inc21
2 files changed, 68 insertions, 1 deletions
diff --git a/ext/ftp/tests/ftp_mdtm_basic.phpt b/ext/ftp/tests/ftp_mdtm_basic.phpt
new file mode 100644
index 0000000000..39aeb766fb
--- /dev/null
+++ b/ext/ftp/tests/ftp_mdtm_basic.phpt
@@ -0,0 +1,48 @@
+--TEST--
+Test the File Modification Time as described in http://tools.ietf.org/html/rfc3659#section-3.1
+--CREDITS--
+Nathaniel McHugh
+--SKIPIF--
+<?php
+require 'skipif.inc';
+?>
+--FILE--
+<?php
+
+require 'server.inc';
+
+$ftp = ftp_connect('127.0.0.1', $port);
+if (!$ftp) die("Couldn't connect to the server");
+
+var_dump(ftp_login($ftp, 'user', 'pass'));
+
+
+date_default_timezone_set('UTC');
+
+$time = ftp_mdtm($ftp, "A");
+echo date("F d Y H:i:s u",$time), PHP_EOL;
+
+$time = ftp_mdtm($ftp, "B");
+echo date("F d Y H:i:s u",$time), PHP_EOL;
+
+$time = ftp_mdtm($ftp, "C");
+echo date("F d Y H:i:s u",$time), PHP_EOL;
+
+$time = ftp_mdtm($ftp, "D");
+var_dump($time);
+
+$time = ftp_mdtm($ftp, "19990929043300 File6");
+echo date("F d Y H:i:s u",$time), PHP_EOL;
+
+$time = ftp_mdtm($ftp, "MdTm 19990929043300 file6");
+var_dump($time);
+
+?>
+--EXPECTF--
+bool(true)
+June 15 1998 10:00:45 000000
+June 15 1998 10:00:45 000000
+July 05 1998 13:23:16 000000
+int(-1)
+October 05 1999 21:31:02 000000
+int(-1)
diff --git a/ext/ftp/tests/server.inc b/ext/ftp/tests/server.inc
index c101c7c70f..bf11257af0 100644
--- a/ext/ftp/tests/server.inc
+++ b/ext/ftp/tests/server.inc
@@ -244,7 +244,26 @@ while($buf = fread($s, 4098)) {
} elseif (preg_match('/^USER /', $buf)) {
user_auth($buf);
- } else {
+ } elseif (preg_match('/^MDTM ([\w\h]+)/', $buf, $matches)) {
+ switch ($matches [1]){
+ case "A":
+ fputs($s, "213 19980615100045.014\r\n");
+ break;
+ case "B":
+ fputs($s, "213 19980615100045.014\r\n");
+ break;
+ case "C":
+ fputs($s, "213 19980705132316\r\n");
+ break;
+ case "19990929043300 File6":
+ fputs($s, "213 19991005213102\r\n");
+ break;
+ default :
+ fputs($s, "550 No file named \"{$matches [1]}\"\r\n");
+ break;
+ }
+ }
+ else {
fputs($s, "500 Syntax error, command unrecognized.\r\n");
dump_and_exit($buf);
}