From 2965a981b7ec22866fbdf2d567d87e2d068d3617 Mon Sep 17 00:00:00 2001
From: Thomas Bruederli <thomas@roundcube.net>
Date: Fri, 31 Jul 2015 16:04:08 -0400
Subject: [PATCH] Allow to search and import missing PGP pubkeys from keyservers using Publickey.js
---
tests/Framework/Utils.php | 80 +++++++++++++++++++++++++++++++++-------
1 files changed, 66 insertions(+), 14 deletions(-)
diff --git a/tests/Framework/Utils.php b/tests/Framework/Utils.php
index 10c90fb..b881cea 100644
--- a/tests/Framework/Utils.php
+++ b/tests/Framework/Utils.php
@@ -275,17 +275,23 @@
*/
function test_strtotime()
{
+ // this test depends on system timezone if not set
+ date_default_timezone_set('UTC');
+
$test = array(
'1' => 1,
'' => 0,
- '2013-04-22' => 1366581600,
- '2013/04/22' => 1366581600,
- '2013.04.22' => 1366581600,
- '22-04-2013' => 1366581600,
- '22/04/2013' => 1366581600,
- '22.04.2013' => 1366581600,
- '22.4.2013' => 1366581600,
- '20130422' => 1366581600,
+ 'abc-555' => 0,
+ '2013-04-22' => 1366588800,
+ '2013/04/22' => 1366588800,
+ '2013.04.22' => 1366588800,
+ '22-04-2013' => 1366588800,
+ '22/04/2013' => 1366588800,
+ '22.04.2013' => 1366588800,
+ '22.4.2013' => 1366588800,
+ '20130422' => 1366588800,
+ '2013/06/21 12:00:00 UTC' => 1371816000,
+ '2013/06/21 12:00:00 Europe/Berlin' => 1371808800,
);
foreach ($test as $datetime => $ts) {
@@ -316,7 +322,46 @@
foreach ($test as $datetime => $ts) {
$result = rcube_utils::anytodatetime($datetime);
- $this->assertSame($ts, $result ? $result->format('Y-m-d') : '', "Error parsing date: $datetime");
+ $this->assertSame($ts, $result ? $result->format('Y-m-d') : false, "Error parsing date: $datetime");
+ }
+ }
+
+ /**
+ * rcube:utils::anytodatetime()
+ */
+ function test_anytodatetime_timezone()
+ {
+ $tz = new DateTimeZone('Europe/Helsinki');
+ $test = array(
+ 'Jan 1st 2014 +0800' => '2013-12-31 18:00', // result in target timezone
+ 'Jan 1st 14 45:42' => '2014-01-01 00:00', // force fallback to rcube_utils::strtotime()
+ 'Jan 1st 2014 UK' => '2014-01-01 00:00',
+ 'Invalid date' => false,
+ );
+
+ foreach ($test as $datetime => $ts) {
+ $result = rcube_utils::anytodatetime($datetime, $tz);
+ if ($result) $result->setTimezone($tz); // move to target timezone for comparison
+ $this->assertSame($ts, $result ? $result->format('Y-m-d H:i') : false, "Error parsing date: $datetime");
+ }
+ }
+
+ /**
+ * rcube:utils::tokenize_string()
+ */
+ function test_tokenize_string()
+ {
+ $test = array(
+ '' => array(),
+ 'abc d' => array('abc'),
+ 'abc de' => array('abc','de'),
+ 'äàé;êöü-xyz' => array('äàé','êöü','xyz'),
+ '日期格式' => array('日期格式'),
+ );
+
+ foreach ($test as $input => $output) {
+ $result = rcube_utils::tokenize_string($input);
+ $this->assertSame($output, $result);
}
}
@@ -330,15 +375,22 @@
'abc def' => 'abc def',
'ÇçäâàåæéêëèïîìÅÉöôòüûùÿøØáíóúñÑÁÂÀãÃÊËÈÍÎÏÓÔõÕÚÛÙýÝ' => 'ccaaaaaeeeeiiiaeooouuuyooaiounnaaaaaeeeiiioooouuuyy',
'ąáâäćçčéęëěíîłľĺńňóôöŕřśšşťţůúűüźžżýĄŚŻŹĆ' => 'aaaaccceeeeiilllnnooorrsssttuuuuzzzyaszzc',
- 'ß' => 'ss',
- 'ae' => 'a',
- 'oe' => 'o',
- 'ue' => 'u',
+ 'ßs' => 'sss',
+ 'Xae' => 'xa',
+ 'Xoe' => 'xo',
+ 'Xue' => 'xu',
+ '项目' => '项目',
);
+
+ // this test fails on PHP 5.3.3
+ if (PHP_VERSION_ID > 50303) {
+ $test['ß'] = '';
+ $test['日'] = '';
+ }
foreach ($test as $input => $output) {
$result = rcube_utils::normalize_string($input);
- $this->assertSame($output, $result);
+ $this->assertSame($output, $result, "Error normalizing '$input'");
}
}
--
Gitblit v1.9.1