test/test_vcard.rb in vpim-0.604 vs test/test_vcard.rb in vpim-0.619
- old
+ new
@@ -14,11 +14,11 @@
got = expected.gsub(/\s+/,'')
assert_equal(expected, got)
end
-# Test cases: multiple occurences of type
+# Test cases: multiple occurrences of type
=begin
begin:VCARD
version:2.1
v;x1=a;x2=,a;x3=a,;x4=a,,a;x5=,a,:
source:ldap://cn=bjorn%20Jensen, o=university%20of%20Michigan, c=US
@@ -741,9 +741,68 @@
assert_equal(card.telephone('HOME'), nil)
assert_equal([], card.telephones)
end
+ def test_slash_in_field_name
+ cin = <<___
+BEGIN:VCARD
+X-messaging/xmpp-All:some@jabber.id
+END:VCARD
+___
+
+ card = Vpim::Vcard.decode(cin).first
+ assert_equal(card.value("X-messaging/xmpp-All"), "some@jabber.id")
+ assert_equal(card["X-messaging/xmpp-All"], "some@jabber.id")
+ end
+
+ def test_url_decode
+ cin=<<'---'
+BEGIN:VCARD
+URL:www.email.com
+URL:www.work.com
+END:VCARD
+---
+ card = Vpim::Vcard.decode(cin).first
+
+ assert_equal("www.email.com", card.url.uri)
+ assert_equal("www.email.com", card.url.uri.to_s)
+ assert_equal("www.email.com", card.urls.first.uri)
+ assert_equal("www.work.com", card.urls.last.uri)
+ end
+
+ def test_bday_decode
+ cin=<<'---'
+BEGIN:VCARD
+BDAY:1970-07-14
+END:VCARD
+---
+ card = Vpim::Vcard.decode(cin).first
+
+ card.birthday
+
+ assert_equal(Date.new(1970, 7, 14), card.birthday)
+ assert_equal(1, card.values("bday").size)
+
+ # Nobody should have multiple bdays, I hope, but its allowed syntactically,
+ # so test it, along with some variant forms of BDAY
+ cin=<<'---'
+BEGIN:VCARD
+BDAY:1970-07-14
+BDAY:70-7-14
+BDAY:1970-07-15T03:45:12
+BDAY:1970-07-15T03:45:12Z
+END:VCARD
+---
+ card = Vpim::Vcard.decode(cin).first
+
+ assert_equal(Date.new(1970, 7, 14), card.birthday)
+ assert_equal(4, card.values("bday").size)
+ assert_equal(Date.new(1970, 7, 14), card.values("bday").first)
+ assert_equal(Date.new(Time.now.year, 7, 14), card.values("bday")[1])
+ assert_equal(DateTime.new(1970, 7, 15, 3, 45, 12).to_s, card.values("bday")[2].to_s)
+ assert_equal(DateTime.new(1970, 7, 15, 3, 45, 12).to_s, card.values("bday").last.to_s)
+ end
def utf_name_test(c)
begin
card = Vpim::Vcard.decode(c).first