Ignore:
Timestamp:
11/22/08 11:11:26 (4 years ago)
Author:
CrawfordCurrie
Message:

Item240: recoded interval parser and added unit tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/UnitTestContrib/test/unit/TimeTests.pm

    r816 r848  
    9898} 
    9999 
     100sub test_checkInterval { 
     101    my $this = shift; 
     102 
     103    my $basetime = 1000000000; 
     104    my $start = Foswiki::Time::formatTime($basetime, 'iso'); 
     105    my $end = Foswiki::Time::formatTime($basetime+500000, 'iso'); 
     106    my $gap = 31556925+2592000+604800+86400+3600+60+1; 
     107    my $gap2 = 2*31556925+2*2592000+2*604800+2*86400+2*3600+2*60+2; 
     108 
     109    my $interval = "$start/$end"; 
     110    my ($s, $e) = Foswiki::Time::parseInterval($interval); 
     111    $this->assert_equals($basetime, $s); 
     112    $this->assert_equals($basetime+500000, $e); 
     113 
     114    $interval = "$start/P1y1m1w1d1h1M1s"; 
     115    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     116    $this->assert_equals($basetime, $s); 
     117    $this->assert_equals($basetime+$gap, $e); 
     118 
     119    $interval = "$start/P2s2M2h2d2w2m2y"; 
     120    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     121    $this->assert_equals($basetime, $s); 
     122    $this->assert_equals($basetime+$gap2, $e); 
     123    $interval = "$start/P1y1m1w1d1h1M1s"; 
     124    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     125    $this->assert_equals($basetime, $s); 
     126    $this->assert_equals($basetime+$gap, $e); 
     127 
     128    $interval = "$start/P2s2M2h2d2w2m2y"; 
     129    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     130    $this->assert_equals($basetime, $s); 
     131    $this->assert_equals($basetime+$gap2, $e); 
     132 
     133    $interval = "P1y1m1w1d1h1M1s/$start"; 
     134    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     135    $this->assert_equals($basetime-$gap, $s); 
     136    $this->assert_equals($basetime, $e); 
     137 
     138    $interval = "2006/2007"; 
     139    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     140    $this->assert_str_equals("2006-01-01T00:00:00Z", 
     141                             Foswiki::Time::formatTime($s, 'iso')); 
     142    $this->assert_str_equals("2007-12-31T23:59:59Z", 
     143                             Foswiki::Time::formatTime($e, 'iso')); 
     144    $interval = "2006/2007-02"; 
     145    ($s, $e) = Foswiki::Time::parseInterval($interval); 
     146    $this->assert_str_equals("2006-01-01T00:00:00Z", 
     147                             Foswiki::Time::formatTime($s, 'iso')); 
     148    $this->assert_str_equals("2007-02-28T23:59:59Z", 
     149                             Foswiki::Time::formatTime($e, 'iso')); 
     150} 
     151 
    1001521; 
Note: See TracChangeset for help on using the changeset viewer.