-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
+ */
+ }
+
+}
* @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
def parse_now(string, options={})
Chronic.parse(string, {:now => TIME_2006_08_16_14_00_00 }.merge(options))
end
+ */
}
-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));
+ }
+
+}