require "rss-testcase"
require "rss/atom"
module RSS
class TestParserAtom < TestCase
def test_entry_validation
assert_ns("", Atom::URI) do
Parser.parse(<<-EOA)
EOA
end
assert_ns("", Atom::URI) do
Parser.parse(<<-EOA)
EOA
end
assert_parse(<<-EOA, :missing_tag, "id", "entry") do
EOA
end
assert_parse(<<-EOA, :missing_tag, "title", "entry") do
urn:uuid:506e336c-a26e-4457-917b-b89dca7ae746
EOA
end
assert_parse(<<-EOA, :missing_tag, "updated", "entry") do
urn:uuid:506e336c-a26e-4457-917b-b89dca7ae746Example Entry
EOA
end
assert_parse(<<-EOA, :missing_tag, "author", "entry") do
urn:uuid:506e336c-a26e-4457-917b-b89dca7ae746Example Entry2003-10-10T18:30:02Z
EOA
end
assert_parse(<<-EOA, :nothing_raised) do
urn:uuid:506e336c-a26e-4457-917b-b89dca7ae746Example Entry2003-10-10T18:30:02ZA person
EOA
end
end
def test_entry
entry = RSS::Parser.parse(<<-EOA)
A personAtom-Powered Robots Run Amokurn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a2003-12-13T18:30:02ZSome text.
EOA
assert_not_nil(entry)
assert_equal("Atom-Powered Robots Run Amok", entry.title.content)
assert_equal("http://example.org/2003/12/13/atom03", entry.link.href)
assert_equal("urn:uuid:1225c695-cfb8-4ebb-aaaa-80da344efa6a",
entry.id.content)
assert_equal(Time.parse("2003-12-13T18:30:02Z"), entry.updated.content)
assert_equal("Some text.", entry.summary.content)
end
def test_entry_author
assert_atom_person("author", method(:make_entry_document)) do |entry|
assert_equal(2, entry.authors.size)
entry.authors.last
end
end
def test_entry_category
assert_atom_category(method(:make_entry_document)) do |entry|
assert_equal(1, entry.categories.size)
entry.category
end
end
def test_entry_content_text
assert_atom_content(method(:make_entry_document)) do |entry|
entry.content
end
end
def test_entry_contributor
assert_atom_person("contributor", method(:make_entry_document)) do |entry|
assert_equal(1, entry.contributors.size)
entry.contributor
end
end
def test_entry_id
entry = RSS::Parser.parse(make_entry_document)
assert_equal(ENTRY_ID, entry.id.content)
end
def test_entry_link
assert_atom_link(method(:make_entry_document)) do |entry|
assert_equal(1, entry.links.size)
entry.link
end
end
def test_published
generator = method(:make_entry_document)
assert_atom_date_construct("published", generator) do |entry|
entry.published
end
end
def test_entry_rights
generator = method(:make_entry_document)
assert_atom_text_construct("rights", generator) do |entry|
entry.rights
end
end
def test_entry_source
generator = method(:make_entry_document_with_open_source)
assert_atom_source(generator) do |entry|
assert_not_nil(entry.source)
entry.source
end
end
def test_entry_summary
generator = method(:make_entry_document)
assert_atom_text_construct("summary", generator) do |entry|
entry.summary
end
end
def test_entry_title
entry = RSS::Parser.parse(make_entry_document)
assert_equal(ENTRY_TITLE, entry.title.content)
end
def test_entry_updated
entry = RSS::Parser.parse(make_entry_document)
assert_equal(Time.parse(ENTRY_UPDATED), entry.updated.content)
end
end
end
16UzjẎl)Nl-qҪP_xZ5RZBc 6_sа;I)V qr\45)^`lЦ9Y,!;YwA =
4+iS%FdCTW%^z6_^ކpd6Vz,ƋǼ 3:G(Â0gxWEex⩣n;W8;6{(|Iq3!|BxwNU>U/ҳ6?-.~m۵- k(|C6,-'2}NEbQQOnڽ<#G,MAb4Vũ5 C7 t%E +8Vyڮ̜bܘ=أXVK-8أaaD04MjIs9QS:(FlC+YPLnGX˩)cc?T:$=8^9Pf,aJ<)*z?'`;@.ߓ䠜"W1Q}[O):!Nfːi3;`As:EiN/OZpɼuIbp=r̐ա^_C.zFȯ+pgsS5nEWQȊc%DmXW|`%S1EN?kJ%D7|:CW
MˁFYzZ3SU=dN7u1Q7Tz@R"݁gKTD_ ^&MlπMB,
0
vmc&z|a3&:
Ů{y&>lkON?i*sCt"#y(+38Yge6\30~P2HFȠ`ݱq41f֗2SO+%a
zTY0Ѭr$ܤ_u5A)~\Cl3Bq!-g]EfA`Bk1a '&pY,W,7Eu@vE4J/?O7-̥S0>»`4Lbٴwˑ\Qe2p:S3:8p0]
lWoc't[ _bM['Oz6Wh\wz~>6毮.w Y+oJO#5eJ?tzjQeQ!7,U^@J=
lãRRp4CKc
U'M+F GThvw۳P,!>Nl$p㫖3ZouO#o