require 'mechanize/test_case'
class TestMechanizePage < Mechanize::TestCase
def setup
super
@uri = URI 'http://example/'
end
def test_initialize_bad_content_type
e = assert_raises Mechanize::ContentTypeError do
Mechanize::Page.new(URI('http://example/'),
{ 'content-type' => 'text/xml' }, 'hello', '200')
end
assert_equal('text/xml', e.content_type)
end
def test_frames
page = html_page <<-BODY
A simple frameset document
BODY
assert_equal 3, page.frames.size
assert_equal "frame1", page.frames[0].name
assert_equal "/google.html", page.frames[0].src
assert_equal "Google", page.frames[0].content.title
assert_equal "frame2", page.frames[1].name
assert_equal "/form_test.html", page.frames[1].src
assert_equal "Page Title", page.frames[1].content.title
assert_equal "frame3", page.frames[2].name
assert_equal "/file_upload.html", page.frames[2].src
assert_equal "File Upload Form", page.frames[2].content.title
end
def test_iframes
page = html_page <<-BODY
A simple frameset document
BODY
assert_equal 1, page.iframes.size
assert_equal "frame4", page.iframes.first.name
assert_equal "/file_upload.html", page.iframes.first.src
assert_equal "File Upload Form", page.iframes.first.content.title
end
def test_images
page = html_page <<-BODY
BODY
assert_equal page.images.first.url, "http://example/a.jpg"
end
def test_images_base
page = html_page <<-BODY
BODY
assert_equal page.images.first.url, "http://other.example/a.jpg"
end
def test_links
page = html_page <<-BODY
BODY
assert_equal page.links.first.href, "foo.html"
end
def test_parser_no_attributes
page = html_page <<-BODY
Hello
BODY
# HACK weak assertion
assert_kind_of Nokogiri::HTML::Document, page.root
end
end