require "test/unit" require "microformats2" class TestMicroformats2 < Test::Unit::TestCase def test_acceptence_of_string assert_nothing_raised Microformats2::LoadError do Microformats2.parse("A String") end end def test_throw_exception_on_non_string_params assert_raise Microformats2::LoadError do Microformats2.parse(nil) end end def test_returns_array_of_microformat_objects result = Microformats2.parse("A String") assert_equal Array, result.class end def test_only_parse_microformats result = Microformats2.parse("

Something

") assert_equal 0, result.size end def test_extracts_hcard_from_html hcard = <<-END Simple hCard

Chris R. Messina

END result = Microformats2.parse(hcard) assert_equal HCard, result.first.class end def test_constructs_properties_from_hcard hcard = <<-END Simple hCard

Chris R. Messina

END result = Microformats2.parse(hcard) mycard = result.first assert_equal "Chris", mycard.given_name assert_equal "R.", mycard.additional_name assert_equal "Messina", mycard.family_name assert_equal "Chris R. Messina", mycard.fn end def test_constructs_dates hcard = <<-END Simple hCard

Chris R. Messina 1979-09-18 EPOCH!

END result = Microformats2.parse(hcard) mycard = result.first assert_equal DateTime.parse("1979-09-18"), mycard.bday assert_equal DateTime.parse("1970-01-01"), mycard.epoch end def test_constructs_times hcard = <<-END Simple hCard

Chris R. Messina 09:30 Leaving time

END result = Microformats2.parse(hcard) mycard = result.first assert_equal Time.parse("09:30"), mycard.start assert_equal Time.parse("06:00"), mycard.end end def test_ignores_pattern_matches_not_at_the_beginning_of_class hcard = <<-END Simple hCard

Chris

END result = Microformats2.parse(hcard) mycard = result.first assert_equal "Chris", mycard.n_x assert mycard.n_x.is_a?(String) end def test_constructs_urls_from_hcard hcard = <<-END Simple hCard

Chris R. Messina

END result = Microformats2.parse(hcard) mycard = result.first assert_equal "http://factoryjoe.com/", mycard.url end end