value-dt-test-YYYY-MM-DD--HH-MM: Difference between revisions

From Microformats Wiki
Jump to navigation Jump to search
(document expected iCalendar output, note key lines that must match)
(fix upcoming link)
 
(25 intermediate revisions by 3 users not shown)
Line 1: Line 1:
One of several [[value-class-date-time-tests|value class pattern date and time value test cases]].
<div class="test-fixture">
One of several [[value-class-date-time-tests|value class pattern date and time value test cases]]. Marked up with the [[test-fixture]] [[poshformat]].
 
;author
:<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--HH-MM</span> test demonstrate the concatenation of two html elements to create one datetime value:</span>
* YYYY-MM-DD
* YYYY-MM-DD
* HH:MM
* HH:MM
in an <span class="format">[[hCalendar]]</span> event.
== markup pattern ==
Here is the markup pattern fragment (escaped, and with abstract not real values) that is being tested:
<source lang=html4strict>
<span class="dtstart">
<span class="value">YYYY-MM-DD</span>
at
<span class="value">HH:MM</span>
</span>
</source>
and variant with intermediate span
<source lang=html4strict>
<span class="dtstart">
<span>
  <span class="value">YYYY-MM-DD</span>
  at
  <span class="value">HH:MM</span>
</span>
</span>
</source>
Similarly with <code>dtend</code>.


== test ==
== test ==
[[hCalendar]] test in actual markup on the page (view or edit source to see actual hCalendar markup)
[[hCalendar]] test in actual markup on the page (view or edit source to see actual hCalendar markup)
 
<div class="test" id="uf">
<div class="event-page vevent" id="party">
<div class="vevent">
;When
;When
:<span class="dtstart"><span class="value">2009-06-26</span> at <span class="value">19:00</span></span> to <span class="dtend"><span class="value">2009-06-26</span> at <span class="value">22:00</span></span>
:<span class="dtstart"><span class="value">2009-06-26</span> at <span class="value">19:00</span></span> to <span class="dtend"><span class="value">2009-06-26</span> at <span class="value">22:00</span></span>
Line 17: Line 50:
;Web
;Web
:<span class="url">http://microformats.org/wiki/events/2009-06-26-microformats-4th-bday</span>
:<span class="url">http://microformats.org/wiki/events/2009-06-26-microformats-4th-bday</span>
:<span class="url">http://upcoming.yahoo.com/event/3010807</span>
:<span class="url">http://upcoming.org/event/3010807</span>
;Donation
;Donation
:Donation requested at the door: sliding scale $5-$20.  
:Donation requested at the door: sliding scale $5-$20.  
</div> <!-- end event-page vevent -->
</div> <!-- end vevent -->
</div> <!-- end test -->
 
 
<div class="test" id="uf2">
<div class="vevent">
;When
:<span class="dtstart"><span><span class="value">2009-06-26</span> at <span class="value">22:05</span></span></span> to <span class="dtend"><span><span class="value">2009-06-26</span> at <span class="value">23:06</span></span></span>
;Where
:<span class="location adr">Somewhere in <span class="locality">San Francisco</span>, <span class="region">CA</span>,  <span class="country-name">USA</span></span>
;What
:<span class="summary">microformats.org 4th birthday after-party!</span>
;Web
:no URL
</div> <!-- end vevent -->
</div> <!-- end test -->


== expected iCalendar output ==
== expected iCalendar output ==
<pre><nowiki>
<div class="output">
Here is the expected <span class="type">iCalendar</span> output, omitting optional "X-" properties, and implementation specific "PRODID" property:
<div class="value">
<source lang=text>
BEGIN:VCALENDAR
BEGIN:VCALENDAR
X-ORIGINAL-URL:http://microformats.org/wiki/value-dt-test-YYYY-MM-DD--HH-MM
VERSION:2.0
VERSION:2.0
METHOD:PUBLISH
METHOD:PUBLISH
Line 36: Line 86:
DTEND;VALUE=DATE-TIME:20090626T220000
DTEND;VALUE=DATE-TIME:20090626T220000
END:VEVENT
END:VEVENT
BEGIN:VEVENT
LOCATION;LANGUAGE=en;CHARSET=utf-8:Somewhere in San Francisco\, CA\, USA
SUMMARY;LANGUAGE=en;CHARSET=utf-8:microformats.org 4th birthday after-party!
DTSTART;VALUE=DATE-TIME:20090626T220500
DTEND;VALUE=DATE-TIME:20090626T230600
END:VEVENT
END:VCALENDAR
END:VCALENDAR
</nowiki></pre>
</source>
</div> <!-- value -->
</div> <!-- output -->


The key lines that an hCalendar to iCalendar converter must match in order to pass this test:
The key lines that an hCalendar to iCalendar converter must match in order to pass this test:


<pre><nowiki>
<source lang=text>
DTSTART;VALUE=DATE-TIME:20090626T190000
DTSTART;VALUE=DATE-TIME:20090626T190000
DTEND;VALUE=DATE-TIME:20090626T220000
DTEND;VALUE=DATE-TIME:20090626T220000
</nowiki></pre>
</source>
 
and
 
<source lang=text>
DTSTART;VALUE=DATE-TIME:20090626T220500
DTEND;VALUE=DATE-TIME:20090626T230600
</source>
 
Acceptable variant:
 
<source lang=text>
DTSTART:20090626T190000
DTEND:20090626T220000
</source>
 
and
 
<source lang=text>
DTSTART:20090626T220500
DTEND:20090626T230600
</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-06-26T19:00")</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-06-26T22:00")</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-06-26T22:05")</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-06-26T23:06")</td>
            <td class="comment">With the value class pattern the results should contain a time</td>
        </tr>
</table>
 
== results ==
<div class="history">
* 2009-06-26: Brian Suda's [[X2V]] has been updated (as of X2V 0.9.3) to pass this test! See [http://suda.co.uk/projects/X2V/#H2I Brian Suda's X2V hCalendar-2-iCalendar converter on his site] to re-run and verify this test case for yourself. Or use this converter link to produce results from this test case page directly:
** http://suda.co.uk/projects/microformats/hcalendar/get-cal.php?uri=http://microformats.org/wiki/value-dt-test-YYYY-MM-DD--HH-MM%23uf
** verified by [[User:Tantek]] 2009-07-06.
 
* 2009-11-03: UfXtract has been updated to pass this test. To re-run and verify this test case try:
** http://ufxtract.com/api/?url=http://microformats.org/wiki/value-dt-test-YYYY-MM-DD--HH-MM&format=hcalendar&output=text
 
* 2012-01-04: Added second test case to test intermediate span.
** second test case appears to work in X2V 0.9.7, but FAIL (no time given) in Operator 0.9.5.6. [[User:Tantek|Tantek]] 20:40, 4 January 2012 (UTC)
 
</div><!--history -->
</div> <!-- test-fixture -->
 
== derivation ==
This test was derived from [[events/2009-06-26-microformats-4th-bday]] which used the [[hCard]] defined [[value-excerption-pattern]] to provide more readable and accessible date and time information.


== see also ==
== see also ==

Latest revision as of 05:57, 4 April 2017

One of several value class pattern date and time value test cases. Marked up with the test-fixture poshformat.

author
Tantek Çelik

testing

The value-dt-test-YYYY-MM-DD--HH-MM test demonstrate the concatenation of two html elements to create one datetime value:

  • YYYY-MM-DD
  • HH:MM

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> 
 at
 <span class="value">HH:MM</span>
</span>

and variant with intermediate span

<span class="dtstart">
 <span>
  <span class="value">YYYY-MM-DD</span> 
  at
  <span class="value">HH:MM</span>
 </span>
</span>

Similarly with dtend.


test

hCalendar test in actual markup on the page (view or edit source to see actual hCalendar markup)

When
2009-06-26 at 19:00 to 2009-06-26 at 22:00
Where
B Restaurant and Bar, 720 Howard Street, Yerba Buena Upper Terrace, San Francisco, CA 94103 USA
What
microformats.org 4th birthday party!
Web
http://microformats.org/wiki/events/2009-06-26-microformats-4th-bday
http://upcoming.org/event/3010807
Donation
Donation requested at the door: sliding scale $5-$20.


When
2009-06-26 at 22:05 to 2009-06-26 at 23:06
Where
Somewhere in San Francisco, CA, USA
What
microformats.org 4th birthday after-party!
Web
no URL

expected iCalendar output

Here is the expected iCalendar output, omitting optional "X-" properties, and implementation specific "PRODID" property:

BEGIN:VCALENDAR
VERSION:2.0
METHOD:PUBLISH
CALSCALE:GREGORIAN
BEGIN:VEVENT
LOCATION;LANGUAGE=en;CHARSET=utf-8:B Restaurant and Bar\, 720 Howard Street\, Yerba Buena Upper Terrace\, San Francisco\, CA 94103 USA
SUMMARY;LANGUAGE=en;CHARSET=utf-8:microformats.org 4th birthday party!
URL:http://microformats.org/wiki/events/2009-06-26-microformats-4th-bday
DTSTART;VALUE=DATE-TIME:20090626T190000
DTEND;VALUE=DATE-TIME:20090626T220000
END:VEVENT

BEGIN:VEVENT
LOCATION;LANGUAGE=en;CHARSET=utf-8:Somewhere in San Francisco\, CA\, USA
SUMMARY;LANGUAGE=en;CHARSET=utf-8:microformats.org 4th birthday after-party!
DTSTART;VALUE=DATE-TIME:20090626T220500
DTEND;VALUE=DATE-TIME:20090626T230600
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:20090626T190000
DTEND;VALUE=DATE-TIME:20090626T220000

and

DTSTART;VALUE=DATE-TIME:20090626T220500
DTEND;VALUE=DATE-TIME:20090626T230600

Acceptable variant:

DTSTART:20090626T190000
DTEND:20090626T220000

and

DTSTART:20090626T220500
DTEND:20090626T230600

Asserts

A set of programming tests for xUnit testing frameworks
Test Result Comment
vevent[0].dtstart IsEqualToISODate("2009-06-26T19:00") With the value class pattern the results should contain a time
vevent[0].dtend IsEqualToISODate("2009-06-26T22:00") With the value class pattern the results should contain a time
vevent[1].dtstart IsEqualToISODate("2009-06-26T22:05") With the value class pattern the results should contain a time
vevent[1].dtend IsEqualToISODate("2009-06-26T23:06") With the value class pattern the results should contain a time

results

  • 2012-01-04: Added second test case to test intermediate span.
    • second test case appears to work in X2V 0.9.7, but FAIL (no time given) in Operator 0.9.5.6. Tantek 20:40, 4 January 2012 (UTC)

derivation

This test was derived from events/2009-06-26-microformats-4th-bday which used the hCard defined value-excerption-pattern to provide more readable and accessible date and time information.

see also