1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
|
#!/usr/bin/perl
# Tests date patterns
use strict;
use lib "lib";
use HTML::Microformats;
# Uses VTODO for components which are *supposed* to fail.
my $html = <<HTML;
<p class="vevent">
<i class="dtstart">2001-02-03T01:02:03+0100</i>
<i class="summary">basic</i>
</p>
<p class="vevent">
<i class="dtstart"><b class="value-title" title="2001-02-03T01:02:03+0100"></b> 3 Feb</i>
<i class="summary">value-title</i>
</p>
<p class="vevent">
<i class="dtstart"> <b class="value-title" title="2001-02-03T01:02:03+0100"></b> 3 Feb</i>
<i class="summary">value-title with space</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">2001-02-03</b>
<b class="value">01:02:03</b>
<b class="value">+0100</b>
</i>
<i class="summary">splitting things up</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">01:02:03</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">mixing them up</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">Z</b>
<b class="value">01:02:03</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">testing 'Z' timezone</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">1am</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">test 1am</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">1 pm</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">test 1pm</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">01.02 p. M.</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">test 01.02 p.M.</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">01.02.03 p.M.</b>
<b class="value">2001-02-03</b>
</i>
<i class="summary">test 01.02.03 p.M.</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">01.02.03 p.M.</b>
<b class="value">2001-02-03</b>
</i>
<i class="dtend">
<b class="value">1.7.3 pm</b>
</i>
<i class="summary">dtend feedthrough from dtstart (with 'value')</i>
</p>
<p class="vevent">
<i class="dtstart">
<b class="value">+0100</b>
<b class="value">01.02.03 p.M.</b>
<b class="value">2001-02-03</b>
</i>
<i class="dtend">13:07:03</i>
<i class="summary">dtend feedthrough from dtstart (no 'value')</i>
</p>
<p class="vtodo">
<i class="dtstart">XXX <b class="value-title" title="2001-02-03T01:02:03+0100"></b> 3 Feb</i>
<i class="summary">invalid value-title</i>
</p>
HTML
my $doc = HTML::Microformats->new_document($html, 'http://example.net/');
$doc->assume_profile('hCalendar');
print $doc->json(pretty=>1,canonical=>1)."\n";
|