value-dt-test-YYYY-MM-DD--H-MMam-Epm: Difference between revisions
(→expected iCalendar output: fixed up expected iCalendar output for fields other than dtstart and dtend) |
(→history: note origin of test case as another example to check once an implementation has these tests working) |
||
(8 intermediate revisions by 2 users not shown) | |||
Line 5: | Line 5: | ||
:<span class="author vcard"><span class="fn">[[User:Tantek|Tantek Çelik]]</span></span> | :<span class="author vcard"><span class="fn">[[User:Tantek|Tantek Çelik]]</span></span> | ||
== testing == | == testing == | ||
<span class="description">The <span class="summary">value-dt-test-YYYY-MM-DD--H-MMam-Epm</span> test demonstrate the concatenation of two html elements to create one datetime value. The time element contains text demarking the use of 12 hour clock i.e. "am and pm". The date for dtend is implied from the dtstart date:</span> | |||
* YYYY-MM-DD | * YYYY-MM-DD | ||
* H:MMam | * H:MMam | ||
* | * Epm | ||
* hCalendar dtend implied date | * hCalendar dtend implied date | ||
* H:MM AM | |||
* E PM | |||
in an <span class="format">[[hCalendar]]</span> event. | in an <span class="format">[[hCalendar]]</span> event. | ||
== markup pattern == | == markup pattern == | ||
Line 32: | Line 33: | ||
</source> | </source> | ||
< | and with a space before an uppercase AM/PM: | ||
<source lang=html4strict> | |||
<span class="dtstart"> | |||
<span class="value">YYYY-MM-DD</span> | |||
from | |||
<span class="value">H:MM AM</span> | |||
</span> | |||
to | |||
<span class="dtend"> | |||
<span class="value">E PM</span> | |||
</span> | |||
</source> | |||
or just with nesting the dtend inside the dtstart | |||
<source lang=html4strict> | |||
<span class="dtstart"> | |||
<span class="value">YYYY-MM-DD</span> | |||
from | |||
<span class="value">H:MMam</span> | |||
to | |||
<span class="dtend">EE:MMam</span> | |||
</span> | |||
</source> | |||
== test == | == test == | ||
Line 49: | Line 76: | ||
;How much | ;How much | ||
:$20 suggested donation (gets you a t-shirt in the mail). <em style="display:block">No one turned away for lack of funds.</em> | :$20 suggested donation (gets you a t-shirt in the mail). <em style="display:block">No one turned away for lack of funds.</em> | ||
</div> <!-- end vevent --> | |||
</div> <!-- end test --> | |||
<div class="test" id="uf1"> | |||
<div class="vevent"> | |||
;When | |||
:<span class="dtstart"><span class="value">2009-07-26</span> from <span class="value">8:30 AM</span></span> to <span class="dtend"><span class="value">7 PM</span></span> | |||
;Where | |||
:<span class="location vcard"><span class="org fn">Automattic</span>, <span class="adr"><span class="street-address"><em style="border-bottom:dotted 1px" title="Pier 38 is NOWHERE NEAR Pier 39, just to be clear. Pier 38 is SOUTH of the Bay Bridge.">Pier 38</em>, The Embarcadero between Brannan and Townsend</span>, <span class="locality">San Francisco</span>, <span class="region">CA</span>, <span class="postal-code">94107</span></span>. <span style="display:block" class="geo">[http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&view=map&q=%2BAutomattic,+The+Embarcadero,+San+Francisco,+CA+94107&sll=37.752736,-122.402826&sspn=0.13844,0.217667&gl=us&ie=UTF8&t=h&layer=c&cbll=37.782877,-122.388062&panoid=kB1DhzPP5DYl5pgHBRxdPg&cbp=12,123.84,,0,2.44&ll=37.783053,-122.388044&spn=0,359.996599&z=18 View location at latitude:<span class="latitude">37.782769</span>, longitude:<span class="longitude">-122.387837</span>]</span></span> | |||
;What | |||
:<span class="summary">organizers day two of microformatsDevCamp!</span> <span class="description">The first ever microformatsDevCamp, for authors, designers, publishers, developers, engineers building pages, sites, and tools with microformats.</span> | |||
;URLs | |||
:no URL | |||
</div> <!-- end vevent --> | |||
</div> <!-- end test --> | |||
<div class="test" id="uf2"> | |||
<div class="vevent"> | |||
;When | |||
:<span class="dtstart"><span class="value">2009-07-26</span> from <span class="value">8:15am</span> to <span class="dtend">10:30am</span></span> | |||
;Where | |||
:<span class="location vcard"><span class="org fn">Automattic</span>, <span class="adr"><span class="street-address"><em style="border-bottom:dotted 1px" title="Pier 38 is NOWHERE NEAR Pier 39, just to be clear. Pier 38 is SOUTH of the Bay Bridge.">Pier 38</em>, The Embarcadero between Brannan and Townsend</span>, <span class="locality">San Francisco</span>, <span class="region">CA</span>, <span class="postal-code">94107</span></span>. <span style="display:block" class="geo">[http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&view=map&q=%2BAutomattic,+The+Embarcadero,+San+Francisco,+CA+94107&sll=37.752736,-122.402826&sspn=0.13844,0.217667&gl=us&ie=UTF8&t=h&layer=c&cbll=37.782877,-122.388062&panoid=kB1DhzPP5DYl5pgHBRxdPg&cbp=12,123.84,,0,2.44&ll=37.783053,-122.388044&spn=0,359.996599&z=18 View location at latitude:<span class="latitude">37.782769</span>, longitude:<span class="longitude">-122.387837</span>]</span></span> | |||
;What | |||
:<span class="summary">facilities day two of microformatsDevCamp!</span> <span class="description">The first ever microformatsDevCamp, for authors, designers, publishers, developers, engineers building pages, sites, and tools with microformats.</span> | |||
;URLs | |||
:no URL | |||
</div> <!-- end vevent --> | </div> <!-- end vevent --> | ||
</div> <!-- end test --> | </div> <!-- end test --> | ||
Line 70: | Line 124: | ||
GEO:37.782769;-122.387837 | GEO:37.782769;-122.387837 | ||
END:VEVENT | END:VEVENT | ||
BEGIN:VEVENT | |||
DESCRIPTION;LANGUAGE=en:The first ever microformatsDevCamp\, for authors\, designers\, publishers\, developers\, engineers building pages\, sites\, and tools with microformats. | |||
LOCATION;LANGUAGE=en:Automattic\, Pier 38\, The Embarcadero between Brannan and Townsend\, San Francisco\, CA\, 94107. View location at latitude:37.782769\, longitude:-122.387837 | |||
SUMMARY;LANGUAGE=en:organizers day two of microformatsDevCamp! | |||
DTSTART;VALUE=DATE-TIME:20090726T083000 | |||
DTEND;VALUE=DATE-TIME:20090726T190000 | |||
GEO:37.782769;-122.387837 | |||
END:VEVENT | |||
BEGIN:VEVENT | |||
DESCRIPTION;LANGUAGE=en:The first ever microformatsDevCamp\, for authors\, designers\, publishers\, developers\, engineers building pages\, sites\, and tools with microformats. | |||
LOCATION;LANGUAGE=en:Automattic\, Pier 38\, The Embarcadero between Brannan and Townsend\, San Francisco\, CA\, 94107. View location at latitude:37.782769\, longitude:-122.387837 | |||
SUMMARY;LANGUAGE=en:facilities day two of microformatsDevCamp! | |||
DTSTART;VALUE=DATE-TIME:20090726T081500 | |||
DTEND;VALUE=DATE-TIME:20090726T103000 | |||
GEO:37.782769;-122.387837 | |||
END:VEVENT | |||
END:VCALENDAR | END:VCALENDAR | ||
</source> | </source> | ||
Line 80: | Line 153: | ||
DTSTART;VALUE=DATE-TIME:20090726T093000 | DTSTART;VALUE=DATE-TIME:20090726T093000 | ||
DTEND;VALUE=DATE-TIME:20090726T180000 | DTEND;VALUE=DATE-TIME:20090726T180000 | ||
</source> | |||
and | |||
<source lang=text> | |||
DTSTART;VALUE=DATE-TIME:20090726T083000 | |||
DTEND;VALUE=DATE-TIME:20090726T190000 | |||
</source> | |||
and | |||
<source lang=text> | |||
DTSTART;VALUE=DATE-TIME:20090726T081500 | |||
DTEND;VALUE=DATE-TIME:20090726T103000 | |||
</source> | </source> | ||
Line 88: | Line 175: | ||
DTEND:20090726T180000 | DTEND:20090726T180000 | ||
</source> | </source> | ||
and | |||
<source lang=text> | |||
DTSTART:20090726T083000 | |||
DTEND:20090726T190000 | |||
</source> | |||
and | |||
<source lang=text> | |||
DTSTART:20090726T081500 | |||
DTEND:20090726T103000 | |||
</source> | |||
== Asserts == | |||
<table cellpadding="0" cellspacing="0" summary="Testing framework assertions used to test the parsed data against the expected data."> | |||
<caption>A set of programming tests for xUnit testing frameworks</caption> | |||
<tr> | |||
<th>Test</th> | |||
<th>Result</th> | |||
<th>Comment</th> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[0].dtstart</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T09:30")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[0].dtend</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T18")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[1].dtstart</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T08:30")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[1].dtend</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T19")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[2].dtstart</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T08:15")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
<tr class="assert"> | |||
<td class="test">vevent[2].dtend</td> | |||
<td class="result">IsEqualToISODate("2009-07-26T10:30")</td> | |||
<td class="comment">With the value class pattern the results should contain a time</td> | |||
</tr> | |||
</table> | |||
== results == | == results == | ||
Line 93: | Line 235: | ||
</div><!--history --> | </div><!--history --> | ||
</div> <!-- test-fixture --> | </div> <!-- test-fixture --> | ||
== history == | |||
* 2012-01-04 additional test cases with leading space before an uppercase AM/PM, or with simple dtend nested inside dtstart (based on real world case on [https://wiki.mozilla.org/SEO Mozilla wiki]). | |||
** 2nd test: leading space before uppercase AM/PM fails in both X2V 0.9.7 and Operator 0.9.5.6 [[User:Tantek|Tantek]] 01:17, 5 January 2012 (UTC) | |||
** 3rd test: simple dtend nested inside dtstart works in Operator 0.9.5.6 but fails in X2V 0.9.7 (output DTEND has 0 instead of date with 'T' before time) [[User:Tantek|Tantek]] 01:17, 5 January 2012 (UTC) | |||
== derivation == | == derivation == |
Latest revision as of 01:20, 5 January 2012
One of several value class pattern date and time value test cases. Marked up with the test-fixture poshformat.
- author
testing
The value-dt-test-YYYY-MM-DD--H-MMam-Epm test demonstrate the concatenation of two html elements to create one datetime value. The time element contains text demarking the use of 12 hour clock i.e. "am and pm". The date for dtend is implied from the dtstart date:
- YYYY-MM-DD
- H:MMam
- Epm
- hCalendar dtend implied date
- H:MM AM
- E PM
in an hCalendar event.
markup pattern
Here is the markup pattern fragment (escaped, and with abstract not real values) that is being tested:
<span class="dtstart">
<span class="value">YYYY-MM-DD</span>
from
<span class="value">H:MMam</span>
</span>
to
<span class="dtend">
<span class="value">Epm</span>
</span>
and with a space before an uppercase AM/PM:
<span class="dtstart">
<span class="value">YYYY-MM-DD</span>
from
<span class="value">H:MM AM</span>
</span>
to
<span class="dtend">
<span class="value">E PM</span>
</span>
or just with nesting the dtend inside the dtstart
<span class="dtstart">
<span class="value">YYYY-MM-DD</span>
from
<span class="value">H:MMam</span>
to
<span class="dtend">EE:MMam</span>
</span>
test
hCalendar test in actual markup on the page (view or edit source to see actual hCalendar markup)
- When
- 2009-07-26 from 9:30am to 6pm
- Where
- Automattic, Pier 38, The Embarcadero between Brannan and Townsend, San Francisco, CA, 94107. View location at latitude:37.782769, longitude:-122.387837
- What
- day two of microformatsDevCamp! The first ever microformatsDevCamp, for authors, designers, publishers, developers, engineers building pages, sites, and tools with microformats.
- URLs
- http://microformats.org/wiki/events/2009-07-25-dev-camp
- http://upcoming.yahoo.com/event/2888376/
- How much
- $20 suggested donation (gets you a t-shirt in the mail). No one turned away for lack of funds.
- When
- 2009-07-26 from 8:30 AM to 7 PM
- Where
- Automattic, Pier 38, The Embarcadero between Brannan and Townsend, San Francisco, CA, 94107. View location at latitude:37.782769, longitude:-122.387837
- What
- organizers day two of microformatsDevCamp! The first ever microformatsDevCamp, for authors, designers, publishers, developers, engineers building pages, sites, and tools with microformats.
- URLs
- no URL
- When
- 2009-07-26 from 8:15am to 10:30am
- Where
- Automattic, Pier 38, The Embarcadero between Brannan and Townsend, San Francisco, CA, 94107. View location at latitude:37.782769, longitude:-122.387837
- What
- facilities day two of microformatsDevCamp! The first ever microformatsDevCamp, for authors, designers, publishers, developers, engineers building pages, sites, and tools with microformats.
- URLs
- no URL
expected iCalendar output
Here is the expected iCalendar output. Note that properties may appear in a different order inside the BEGIN:VEVENT END:VEVENT block, and optional "X-" properties, implementation specific "PRODID" property, and "CHARSET" parameter have been omitted (and thus implementation may include those and still pass this test):
BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
DESCRIPTION;LANGUAGE=en:The first ever microformatsDevCamp\, for authors\, designers\, publishers\, developers\, engineers building pages\, sites\, and tools with microformats.
LOCATION;LANGUAGE=en:Automattic\, Pier 38\, The Embarcadero between Brannan and Townsend\, San Francisco\, CA\, 94107. View location at latitude:37.782769\, longitude:-122.387837
SUMMARY;LANGUAGE=en:day two of microformatsDevCamp!
URL:http://microformats.org/wiki/events/2009-07-25-dev-camp
DTSTART;VALUE=DATE-TIME:20090726T093000
DTEND;VALUE=DATE-TIME:20090726T180000
GEO:37.782769;-122.387837
END:VEVENT
BEGIN:VEVENT
DESCRIPTION;LANGUAGE=en:The first ever microformatsDevCamp\, for authors\, designers\, publishers\, developers\, engineers building pages\, sites\, and tools with microformats.
LOCATION;LANGUAGE=en:Automattic\, Pier 38\, The Embarcadero between Brannan and Townsend\, San Francisco\, CA\, 94107. View location at latitude:37.782769\, longitude:-122.387837
SUMMARY;LANGUAGE=en:organizers day two of microformatsDevCamp!
DTSTART;VALUE=DATE-TIME:20090726T083000
DTEND;VALUE=DATE-TIME:20090726T190000
GEO:37.782769;-122.387837
END:VEVENT
BEGIN:VEVENT
DESCRIPTION;LANGUAGE=en:The first ever microformatsDevCamp\, for authors\, designers\, publishers\, developers\, engineers building pages\, sites\, and tools with microformats.
LOCATION;LANGUAGE=en:Automattic\, Pier 38\, The Embarcadero between Brannan and Townsend\, San Francisco\, CA\, 94107. View location at latitude:37.782769\, longitude:-122.387837
SUMMARY;LANGUAGE=en:facilities day two of microformatsDevCamp!
DTSTART;VALUE=DATE-TIME:20090726T081500
DTEND;VALUE=DATE-TIME:20090726T103000
GEO:37.782769;-122.387837
END:VEVENT
END:VCALENDAR
The key lines that an hCalendar to iCalendar converter must match in order to pass this test:
DTSTART;VALUE=DATE-TIME:20090726T093000
DTEND;VALUE=DATE-TIME:20090726T180000
and
DTSTART;VALUE=DATE-TIME:20090726T083000
DTEND;VALUE=DATE-TIME:20090726T190000
and
DTSTART;VALUE=DATE-TIME:20090726T081500
DTEND;VALUE=DATE-TIME:20090726T103000
Acceptable variant:
DTSTART:20090726T093000
DTEND:20090726T180000
and
DTSTART:20090726T083000
DTEND:20090726T190000
and
DTSTART:20090726T081500
DTEND:20090726T103000
Asserts
Test | Result | Comment |
---|---|---|
vevent[0].dtstart | IsEqualToISODate("2009-07-26T09:30") | With the value class pattern the results should contain a time |
vevent[0].dtend | IsEqualToISODate("2009-07-26T18") | With the value class pattern the results should contain a time |
vevent[1].dtstart | IsEqualToISODate("2009-07-26T08:30") | With the value class pattern the results should contain a time |
vevent[1].dtend | IsEqualToISODate("2009-07-26T19") | With the value class pattern the results should contain a time |
vevent[2].dtstart | IsEqualToISODate("2009-07-26T08:15") | With the value class pattern the results should contain a time |
vevent[2].dtend | IsEqualToISODate("2009-07-26T10:30") | With the value class pattern the results should contain a time |
results
history
- 2012-01-04 additional test cases with leading space before an uppercase AM/PM, or with simple dtend nested inside dtstart (based on real world case on Mozilla wiki).
- 2nd test: leading space before uppercase AM/PM fails in both X2V 0.9.7 and Operator 0.9.5.6 Tantek 01:17, 5 January 2012 (UTC)
- 3rd test: simple dtend nested inside dtstart works in Operator 0.9.5.6 but fails in X2V 0.9.7 (output DTEND has 0 instead of date with 'T' before time) Tantek 01:17, 5 January 2012 (UTC)
derivation
This test was derived from value-dt-test-YYYY-MM-DD--Hpm-EEpm and events/2009-07-25-dev-camp.