You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
98 lines
2.4 KiB
98 lines
2.4 KiB
$:.unshift(File.dirname(__FILE__) + '/../lib')
|
|
|
|
require 'test/unit'
|
|
require 'icalendar'
|
|
|
|
require 'date'
|
|
|
|
class TestConversions < Test::Unit::TestCase
|
|
include Icalendar
|
|
|
|
RESULT = <<EOS
|
|
BEGIN:VCALENDAR
|
|
VERSION:2.0
|
|
CALSCALE:GREGORIAN
|
|
PRODID:iCalendar-Ruby
|
|
BEGIN:VEVENT
|
|
LAST-MODIFIED:19960817T133000
|
|
SEQUENCE:2
|
|
ORGANIZER:mailto:joe@example.com?subject=Ruby
|
|
UID:foobar
|
|
X-TIME-OF-DAY:111736
|
|
CATEGORIES:foo\\,bar\\,baz
|
|
GEO:46.01\\;8.57
|
|
DESCRIPTION:desc
|
|
DTSTART:20060720
|
|
DTSTAMP:20060720T174052
|
|
END:VEVENT
|
|
END:VCALENDAR
|
|
EOS
|
|
|
|
def setup
|
|
@cal = Calendar.new
|
|
end
|
|
|
|
def test_to_ical_conversions
|
|
@cal.event do
|
|
# String
|
|
description "desc"
|
|
|
|
# Fixnum
|
|
sequence 2
|
|
|
|
# Float by way of Geo class
|
|
geo(Geo.new(46.01, 8.57))
|
|
|
|
# Array
|
|
categories ["foo", "bar"]
|
|
add_category "baz"
|
|
|
|
# Last Modified
|
|
last_modified DateTime.parse("1996-08-17T13:30:00")
|
|
|
|
# URI
|
|
organizer(URI::MailTo.build(['joe@example.com', 'subject=Ruby']))
|
|
|
|
# Date
|
|
start Date.parse("2006-07-20")
|
|
|
|
# DateTime
|
|
timestamp DateTime.parse("2006-07-20T17:40:52+0200")
|
|
|
|
# Time
|
|
x_time_of_day Time.at(123456)
|
|
|
|
uid "foobar"
|
|
end
|
|
|
|
assert_equal(RESULT.gsub("\n", "\r\n"), @cal.to_ical)
|
|
end
|
|
|
|
def test_to_ical_folding
|
|
@cal.x_wr_calname = 'Test Long Description'
|
|
|
|
@cal.event do
|
|
url 'http://test.com/events/644'
|
|
dtend DateTime.parse('20061215T180000')
|
|
dtstart DateTime.parse('20061215T160000')
|
|
timestamp DateTime.parse('20061215T114034')
|
|
seq 1001
|
|
uid 'foobar'
|
|
summary 'DigiWorld 2006'
|
|
|
|
description "FULL DETAILS:\nhttp://test.com/events/570\n\n" +
|
|
"Cary Brothers walks the same musical ground as Pete Yorn, Nick Drake, " +
|
|
"Jeff Buckley and others; crafting emotional melodies, with strong vocals " +
|
|
"and thoughtful lyrics. Brett Dennen has "that thing." " +
|
|
"Inspired fans describe it: "lush shimmering vocals, an intricately " +
|
|
"groovin' guitar style, a lyrical beauty rare in a young songwriter," +
|
|
"" and "this soulful blend of everything that feels good." " +
|
|
"Rising up around him is music; transcending genres, genders and generations."
|
|
end
|
|
|
|
folded = File.read(File.join(File.dirname(__FILE__), 'fixtures/folding.ics')).gsub("\n", "\r\n")
|
|
assert_equal(folded, @cal.to_ical)
|
|
end
|
|
|
|
end
|