def test_hyperlink_widget_with_action
build_page{|src_output, map_output, xml_output|
src_output.print "class MainPage < WPM::PageContext\n"
src_output.print " def init_context\n"
src_output.print " @message = nil\n"
src_output.print " end\n"
src_output.print "\n"
src_output.print " attr_reader :message\n"
src_output.print "\n"
src_output.print " def hello\n"
src_output.print " @message = 'Hello world.'\n"
src_output.print " end\n"
src_output.print "end\n"
map_output.print "<?xml version=\"1.0\"?>\n"
map_output.print "<map xmlns=\"http://www.freedom.ne.jp/toki/ruby/PageMaker/Map\">\n"
map_output.print "\n"
map_output.print "<hyperlink name=\"Hello\">\n"
map_output.print "<action type=\"method\">hello</action>\n"
map_output.print "</hyperlink>\n"
map_output.print "\n"
map_output.print "<string name=\"Message\">\n"
map_output.print "<value type=\"accessor\">message</value>\n"
map_output.print "</string>\n"
map_output.print "\n"
map_output.print "</map>\n"
xml_output.print "<?xml version=\"1.0\"?>\n"
xml_output.print "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:pm=\"http://www.freedom.ne.jp/toki/ruby/PageMaker\">\n"
xml_output.print "<head><title>test of HyperlinkWidget</title></head>\n"
xml_output.print "<body>\n"
xml_output.print "<ul>\n"
xml_output.print "<li><pm:widget name=\"Hello\">hello action</pm:widget></li>\n"
xml_output.print "<li><pm:widget name=\"Message\" /></li>\n"
xml_output.print "</ul>\n"
xml_output.print "</body>\n"
xml_output.print "</html>\n"
}
dst = "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
dst += "<head><title>test of HyperlinkWidget</title></head>\n"
dst += "<body>\n"
dst += "<ul>\n"
dst += "<li><a href=\"/PageMaker/MainPage?action=MainPage.Hello.0\">hello action</a></li>\n"
dst += "<li></li>\n"
dst += "</ul>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(1, @params_call)
assert_equal(1, @page_path_call)
assert_nil(@page.context.message)
@page.clear
@params['action'] = 'MainPage.Hello.0'
dst = "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
dst += "<head><title>test of HyperlinkWidget</title></head>\n"
dst += "<body>\n"
dst += "<ul>\n"
dst += "<li><a href=\"/PageMaker/MainPage?action=MainPage.Hello.0\">hello action</a></li>\n"
dst += "<li>Hello world.</li>\n"
dst += "</ul>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(2, @params_call)
assert_equal(2, @page_path_call)
assert_equal('Hello world.', @page.context.message)
@page.clear
@path_info = '/Foo/Bar'
@params['action'] = 'MainPage.Hello.0'
dst = "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
dst += "<head><title>test of HyperlinkWidget</title></head>\n"
dst += "<body>\n"
dst += "<ul>\n"
dst += "<li><a href=\"/PageMaker/MainPage/Foo/Bar?action=MainPage.Hello.0\">hello action</a></li>\n"
dst += "<li>Hello world.</li>\n"
dst += "</ul>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(3, @params_call)
assert_equal(3, @page_path_call)
assert_equal('Hello world.', @page.context.message)
end