def test_radio_button_widget_with_checked
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 " @foo_checked = true\n"
src_output.print " @bar_checked = false\n"
src_output.print " @baz_checked = false\n"
src_output.print " end\n"
src_output.print "\n"
src_output.print " attr_accessor :foo_checked\n"
src_output.print " attr_accessor :bar_checked\n"
src_output.print " attr_accessor :baz_checked\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 "<form name=\"Form\">\n"
map_output.print "</form>\n"
map_output.print "\n"
map_output.print "<radio name=\"Foo\">\n"
map_output.print "<name type=\"string\">radio_button</name>\n"
map_output.print "<checked type=\"accessor\">foo_checked</checked>\n"
map_output.print "</radio>\n"
map_output.print "\n"
map_output.print "<radio name=\"Bar\">\n"
map_output.print "<name type=\"string\">radio_button</name>\n"
map_output.print "<checked type=\"accessor\">bar_checked</checked>\n"
map_output.print "</radio>\n"
map_output.print "\n"
map_output.print "<radio name=\"Baz\">\n"
map_output.print "<name type=\"string\">radio_button</name>\n"
map_output.print "<checked type=\"accessor\">baz_checked</checked>\n"
map_output.print "</radio>\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 RadioButtonWidget</title></head>\n"
xml_output.print "<body>\n"
xml_output.print "<pm:widget name=\"Form\">\n"
xml_output.print "<ol>\n"
xml_output.print "<li><pm:widget name=\"Foo\" /></li>\n"
xml_output.print "<li><pm:widget name=\"Bar\" /></li>\n"
xml_output.print "<li><pm:widget name=\"Baz\" /></li>\n"
xml_output.print "</ol>\n"
xml_output.print "</pm:widget>\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 RadioButtonWidget</title></head>\n"
dst += "<body>\n"
dst += "<form id=\"MainPage.Form.0\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">\n"
dst += "<ol>\n"
dst += "<li><input id=\"MainPage.Foo.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Foo.0\" checked=\"checked\" /></li>\n"
dst += "<li><input id=\"MainPage.Bar.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Bar.0\" /></li>\n"
dst += "<li><input id=\"MainPage.Baz.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Baz.0\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Baz\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Foo\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Bar\" value=\"0-0\" />"
dst += "</div>"
dst += "</form>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(4, @params_call)
assert_equal(0, @page_path_call)
assert_equal(true, @page.context.foo_checked)
assert_equal(false, @page.context.bar_checked)
assert_equal(false, @page.context.baz_checked)
@page.clear
@params['radio_button'] = 'MainPage.Bar.0'
@params['call-range:MainPage.Foo'] = '0-0'
@params['call-range:MainPage.Bar'] = '0-0'
@params['call-range:MainPage.Baz'] = '0-0'
dst = "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
dst += "<head><title>test of RadioButtonWidget</title></head>\n"
dst += "<body>\n"
dst += "<form id=\"MainPage.Form.0\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">\n"
dst += "<ol>\n"
dst += "<li><input id=\"MainPage.Foo.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Foo.0\" /></li>\n"
dst += "<li><input id=\"MainPage.Bar.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Bar.0\" checked=\"checked\" /></li>\n"
dst += "<li><input id=\"MainPage.Baz.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Baz.0\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Baz\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Foo\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Bar\" value=\"0-0\" />"
dst += "</div>"
dst += "</form>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(8, @params_call)
assert_equal(0, @page_path_call)
assert_equal(false, @page.context.foo_checked)
assert_equal(true, @page.context.bar_checked)
assert_equal(false, @page.context.baz_checked)
@page.clear
@params['radio_button'] = 'MainPage.Baz.0'
@params['call-range:MainPage.Foo'] = '0-0'
@params['call-range:MainPage.Bar'] = '0-0'
@params['call-range:MainPage.Baz'] = '0-0'
dst = "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
dst += "<head><title>test of RadioButtonWidget</title></head>\n"
dst += "<body>\n"
dst += "<form id=\"MainPage.Form.0\" method=\"post\" enctype=\"application/x-www-form-urlencoded\">\n"
dst += "<ol>\n"
dst += "<li><input id=\"MainPage.Foo.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Foo.0\" /></li>\n"
dst += "<li><input id=\"MainPage.Bar.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Bar.0\" /></li>\n"
dst += "<li><input id=\"MainPage.Baz.0\" name=\"radio_button\" type=\"radio\" value=\"MainPage.Baz.0\" checked=\"checked\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Baz\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Foo\" value=\"0-0\" />"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.Bar\" value=\"0-0\" />"
dst += "</div>"
dst += "</form>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(12, @params_call)
assert_equal(0, @page_path_call)
assert_equal(false, @page.context.foo_checked)
assert_equal(false, @page.context.bar_checked)
assert_equal(true, @page.context.baz_checked)
end