additional test suite work
authorChuck Hagenbuch <chuck@horde.org>
Mon, 4 May 2009 03:34:51 +0000 (23:34 -0400)
committerChuck Hagenbuch <chuck@horde.org>
Mon, 4 May 2009 03:34:51 +0000 (23:34 -0400)
framework/Date_Parser/test/Horde/Date/Parser/HandlerTest.php
framework/Date_Parser/test/Horde/Date/Parser/Locale/BaseTest.php
framework/Date_Parser/test/Horde/Date/Parser/ParserTest.php

index 4e36dfe..24291a7 100644 (file)
-require 'chronic'
-require 'test/unit'
-
-class TestHandler < Test::Unit::TestCase
-  
-  def setup
-    # Wed Aug 16 14:00:00 UTC 2006
-    @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
-  end
-
-  def test_handler_class_1
-    handler = Chronic::Handler.new([:repeater], :handler)
-    
+<?php
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+class Horde_Date_Parser_HandlerTest extends Horde_Test_Case
+{
+    public function setUp()
+    {
+        // Wed Aug 16 14:00:00 UTC 2006
+        $this->now = new Horde_Date('2006-08-16 14:00:00');
+    }
+
+    public function testHandlerClass1()
+    {
+        /*
+        $handler = Chronic::Handler.new([:repeater], :handler)
+
     tokens = [Chronic::Token.new('friday')]
     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('afternoon')
     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
-    
+
     assert !handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_handler_class_2
+        */
+    }
+
+    public function testHandlerClass2()
+    {
+        /*
     handler = Chronic::Handler.new([:repeater, :repeater?], :handler)
-    
+
     tokens = [Chronic::Token.new('friday')]
     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('afternoon')
     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('afternoon')
     tokens[2].tag(Chronic::RepeaterDayPortion.new(:afternoon))
-    
+
     assert !handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_handler_class_3
+        */
+    }
+
+    public function testHandlerClass3()
+    {
+        /*
     handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
-    
+
     tokens = [Chronic::Token.new('friday')]
     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('afternoon')
     tokens[1].tag(Chronic::RepeaterDayPortion.new(:afternoon))
-    
+
     assert !handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_handler_class_4
+        */
+    }
+
+    public function testHandlerClass4()
+    {
+        /*
     handler = Chronic::Handler.new([:repeater_month_name, :scalar_day, 'time?'], :handler)
-    
+
     tokens = [Chronic::Token.new('may')]
     tokens[0].tag(Chronic::RepeaterMonthName.new(:may))
-    
+
     assert !handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('27')
     tokens[1].tag(Chronic::ScalarDay.new(27))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_handler_class_5
+        */
+    }
+
+    public function testHandlerClass5()
+    {
+        /*
     handler = Chronic::Handler.new([:repeater, 'time?'], :handler)
-    
+
     tokens = [Chronic::Token.new('friday')]
     tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('5:00')
     tokens[1].tag(Chronic::RepeaterTime.new('5:00'))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-    
+
     tokens << Chronic::Token.new('pm')
     tokens[2].tag(Chronic::RepeaterDayPortion.new(:pm))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_handler_class_6
+        */
+    }
+
+    public function testHandlerClass6()
+    {
+        /*
     handler = Chronic::Handler.new([:scalar, :repeater, :pointer], :handler)
-    
+
     tokens = [Chronic::Token.new('3'),
               Chronic::Token.new('years'),
               Chronic::Token.new('past')]
-              
+
     tokens[0].tag(Chronic::Scalar.new(3))
     tokens[1].tag(Chronic::RepeaterYear.new(:year))
     tokens[2].tag(Chronic::Pointer.new(:past))
-    
+
     assert handler.match(tokens, Chronic.definitions)
-  end
-  
-  def test_constantize
-    handler = Chronic::Handler.new([], :handler)
-    assert_equal Chronic::RepeaterTime, handler.constantize(:repeater_time)
-  end
-  
-end
\ No newline at end of file
+        */
+    }
+
+}
index aae8af9..057658f 100644 (file)
  * @package    Horde_Date
  * @subpackage UnitTests
  */
-class Horde_Date_Parser_Locale_BaseTest extends PHPUnit_Framework_TestCase
+class Horde_Date_Parser_Locale_BaseTest extends Horde_Test_Case
 {
-    public function testToday()
+    public function setUp()
     {
-        var_dump((string)Horde_Date_Parser::parse('today at 11'));
-        var_dump((string)Horde_Date_Parser::parse('tomorrow'));
-        var_dump((string)Horde_Date_Parser::parse('may 27'));
-        var_dump((string)Horde_Date_Parser::parse('thursday'));
-        var_dump((string)Horde_Date_Parser::parse('next month'));
-        var_dump((string)Horde_Date_Parser::parse('last week tuesday'));
-        var_dump((string)Horde_Date_Parser::parse('3 years ago'));
-        var_dump((string)Horde_Date_Parser::parse('6 in the morning'));
-        var_dump((string)Horde_Date_Parser::parse('afternoon yesterday'));
-        var_dump((string)Horde_Date_Parser::parse('3rd wednesday in november'));
-        var_dump((string)Horde_Date_Parser::parse('4th day last week'));
+        // Wed Aug 16 14:00:00 UTC 2006
+        $this->now = new Horde_Date('2006-08-16 14:00:00');
+        $this->parser = Horde_Date_Parser::factory(array('now' => $this->now));
     }
 
-class TestParsing < Test::Unit::TestCase
-  # Wed Aug 16 14:00:00 UTC 2006
-  TIME_2006_08_16_14_00_00 = Time.local(2006, 8, 16, 14, 0, 0, 0)
+    public function testTodayAt11()
+    {
+        $this->assertEquals('2006-08-16 11:00:00', (string)$this->parser->parse('today at 11'));
+    }
 
-  def setup
-    @time_2006_08_16_14_00_00 = TIME_2006_08_16_14_00_00
-  end
+    public function testTomorrow()
+    {
+        $this->assertEquals('2006-08-17 12:00:00', (string)$this->parser->parse('tomorrow'));
+    }
+
+    public function testMay27()
+    {
+        $this->assertEquals('2007-05-27 12:00:00', (string)$this->parser->parse('may 27'));
+    }
+
+    public function testThursday()
+    {
+        $this->assertEquals('2006-08-17 12:00:00', (string)$this->parser->parse('thursday'));
+    }
+
+    public function testNextMonth()
+    {
+        $this->assertEquals('2006-09-15 12:00:00', (string)$this->parser->parse('next month'));
+    }
+
+    public function testLastWeekTuesday()
+    {
+        $this->assertEquals('2006-08-08 12:00:00', (string)$this->parser->parse('last week tuesday'));
+    }
+
+    public function test3YearsAgo()
+    {
+        $this->assertEquals('2003-08-16 14:00:00', (string)$this->parser->parse('3 years ago'));
+        $this->assertEquals('2003-08-16 14:00:00', (string)$this->parser->parse('three years ago'));
+    }
+
+    public function test6InTheMorning()
+    {
+        $this->assertEquals('2006-08-16 06:00:00', (string)$this->parser->parse('6 in the morning'));
+    }
+
+    public function testAfternoonYesterday()
+    {
+        $this->assertEquals('2006-08-15 17:30:00', (string)$this->parser->parse('afternoon yesterday'));
+    }
+
+    public function test3rdWednesdayInNovember()
+    {
+        $this->assertEquals('2006-11-15 12:00:00', (string)$this->parser->parse('3rd wednesday in november'));
+    }
+
+    public function test4thDayLastWeek()
+    {
+        $this->assertEquals('2006-08-09 12:00:00', (string)$this->parser->parse('4th day last week'));
+    }
 
+    /*
   def test_parse_guess_dates
     # rm_sd
 
@@ -636,5 +677,6 @@ class TestParsing < Test::Unit::TestCase
   def parse_now(string, options={})
     Chronic.parse(string, {:now => TIME_2006_08_16_14_00_00 }.merge(options))
   end
+    */
 
 }
index c195d39..ad30392 100644 (file)
@@ -1,50 +1,64 @@
-require 'chronic'
-require 'test/unit'
-
-class TestChronic < Test::Unit::TestCase
-
-  def setup
-    # Wed Aug 16 14:00:00 UTC 2006
-    @now = Time.local(2006, 8, 16, 14, 0, 0, 0)
-  end
-
-  def test_post_normalize_am_pm_aliases
-    # affect wanted patterns
-
-    tokens = [Chronic::Token.new("5:00"), Chronic::Token.new("morning")]
-    tokens[0].tag(Chronic::RepeaterTime.new("5:00"))
-    tokens[1].tag(Chronic::RepeaterDayPortion.new(:morning))
-
-    assert_equal :morning, tokens[1].tags[0].type
-
-    tokens = Chronic.dealias_and_disambiguate_times(tokens, {})
-
-    assert_equal :am, tokens[1].tags[0].type
-    assert_equal 2, tokens.size
-
-    # don't affect unwanted patterns
-
-    tokens = [Chronic::Token.new("friday"), Chronic::Token.new("morning")]
-    tokens[0].tag(Chronic::RepeaterDayName.new(:friday))
-    tokens[1].tag(Chronic::RepeaterDayPortion.new(:morning))
-
-    assert_equal :morning, tokens[1].tags[0].type
-
-    tokens = Chronic.dealias_and_disambiguate_times(tokens, {})
-
-    assert_equal :morning, tokens[1].tags[0].type
-    assert_equal 2, tokens.size
-  end
-
-  def test_guess
-    span = Chronic::Span.new(Time.local(2006, 8, 16, 0), Time.local(2006, 8, 17, 0))
-    assert_equal Time.local(2006, 8, 16, 12), Chronic.guess(span)
-
-    span = Chronic::Span.new(Time.local(2006, 8, 16, 0), Time.local(2006, 8, 17, 0, 0, 1))
-    assert_equal Time.local(2006, 8, 16, 12), Chronic.guess(span)
-
-    span = Chronic::Span.new(Time.local(2006, 11), Time.local(2006, 12))
-    assert_equal Time.local(2006, 11, 16), Chronic.guess(span)
-  end
-
-end
+<?php
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+
+/**
+ * @category   Horde
+ * @package    Horde_Date
+ * @subpackage UnitTests
+ */
+class Horde_Date_Parser_ParserTest extends Horde_Test_Case
+{
+    public function setUp()
+    {
+        // Wed Aug 16 14:00:00 UTC 2006
+        $this->now = new Horde_Date('2006-08-16 14:00:00');
+    }
+
+    public function testPostNormalizeAmPmAliases()
+    {
+        // affect wanted patterns
+        $tokens = array(new Horde_Date_Parser_Token('5:00'), new Horde_Date_Parser_Token('morning'));
+        $tokens[0]->tag('repeater_time', new Horde_Date_Repeater_Time('5:00'));
+        $tokens[1]->tag('repeater_day_portion', new Horde_Date_Repeater_DayPortion('morning'));
+
+        $this->assertEquals('morning', $tokens[1]->tags[0][1]->type);
+
+        $parser = Horde_Date_Parser::factory();
+        $tokens = $parser->dealiasAndDisambiguateTimes($tokens, array());
+
+        $this->assertEquals('am', $tokens[1]->tags[0][1]->type);
+        $this->assertEquals(2, count($tokens));
+
+        // don't affect unwanted patterns
+        $tokens = array(new Horde_Date_Parser_Token('friday'), new Horde_Date_Parser_Token('morning'));
+        $tokens[0]->tag('repeater_day_name', 'friday');
+        $tokens[1]->tag('repeater_day_portion', 'morning');
+
+        $this->assertEquals('morning', $tokens[1]->tags[0][1]);
+
+        $parser = Horde_Date_Parser::factory();
+        $tokens = $parser->dealiasAndDisambiguateTimes($tokens, array());
+
+        $this->assertEquals('morning', $tokens[1]->tags[0][1]);
+        $this->assertEquals(2, count($tokens));
+    }
+
+    public function testGuess()
+    {
+        $parser = Horde_Date_Parser::factory();
+
+        $span = new Horde_Date_Span(new Horde_Date('2006-08-16 00:00:00'), new Horde_Date('2006-08-17 00:00:00'));
+        $this->assertEquals(new Horde_Date('2006-08-16 12:00:00'), $parser->guess($span));
+
+        $span = new Horde_Date_Span(new Horde_Date('2006-08-16 00:00:00'), new Horde_Date('2006-08-17 00:00:01'));
+        $this->assertEquals(new Horde_Date('2006-08-16 12:00:00'), $parser->guess($span));
+
+        $span = new Horde_Date_Span(new Horde_Date('2006-11-01 00:00:00'), new Horde_Date('2006-12-01 00:00:00'));
+        $this->assertEquals(new Horde_Date('2006-11-16 00:00:00'), $parser->guess($span));
+    }
+
+}