| | |
| | | array('email@domain.name', '.name is valid Top Level Domain name'), |
| | | array('email@domain.co.jp', 'Dot in Top Level Domain name also considered valid (use co.jp as example here)'), |
| | | array('firstname-lastname@domain.com', 'Dash in address field is valid'), |
| | | array('test@xn--e1aaa0cbbbcacac.xn--p1ai', 'IDNA domain'), |
| | | ); |
| | | } |
| | | |
| | |
| | | ); |
| | | |
| | | foreach ($input as $idx => $value) { |
| | | $this->assertFalse(get_boolean($value), "Invalid result for $idx test item"); |
| | | $this->assertFalse(rcube_utils::get_boolean($value), "Invalid result for $idx test item"); |
| | | } |
| | | |
| | | $input = array( |
| | |
| | | ); |
| | | |
| | | foreach ($input as $idx => $value) { |
| | | $this->assertTrue(get_boolean($value), "Invalid result for $idx test item"); |
| | | $this->assertTrue(rcube_utils::get_boolean($value), "Invalid result for $idx test item"); |
| | | } |
| | | } |
| | | |
| | |
| | | $test = array( |
| | | '1' => 1, |
| | | '' => 0, |
| | | 'abc-555' => 0, |
| | | '2013-04-22' => 1366581600, |
| | | '2013/04/22' => 1366581600, |
| | | '2013.04.22' => 1366581600, |
| | |
| | | '22.04.2013' => 1366581600, |
| | | '22.4.2013' => 1366581600, |
| | | '20130422' => 1366581600, |
| | | '2013/06/21 12:00:00 UTC' => 1371816000, |
| | | '2013/06/21 12:00:00 Europe/Berlin' => 1371808800, |
| | | ); |
| | | |
| | | foreach ($test as $datetime => $ts) { |
| | |
| | | |
| | | 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"); |
| | | } |
| | | } |
| | | |
| | |
| | | function test_normalize_string() |
| | | { |
| | | $test = array( |
| | | '' => '', |
| | | '' => '', |
| | | 'abc def' => 'abc def', |
| | | 'ÇçäâàåæéêëèïîìÅÉöôòüûùÿøØáíóúñÑÁÂÀãÃÊËÈÍÎÏÓÔõÕÚÛÙýÝ' => 'ccaaaaaeeeeiiiaeooouuuyooaiounnaaaaaeeeiiioooouuuyy', |
| | | 'ąáâäćçčéęëěíîłľĺńňóôöŕřśšşťţůúűüźžżýĄŚŻŹĆ' => 'aaaaccceeeeiilllnnooorrsssttuuuuzzzyaszzc', |
| | | 'ß' => 'ss', |
| | | 'ae' => 'a', |
| | | 'oe' => 'o', |
| | | 'ue' => 'u', |
| | | ); |
| | | |
| | | foreach ($test as $input => $output) { |