def test_listed_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 " @list = [ 'foo', 'bar', 'baz' ]\n"
src_output.print " @item = nil\n"
src_output.print " @call_index = nil\n"
src_output.print " @checked = Hash.new\n"
src_output.print " end\n"
src_output.print "\n"
src_output.print " attr_reader :list\n"
src_output.print " attr_accessor :item\n"
src_output.print " attr_accessor :call_index\n"
src_output.print "\n"
src_output.print " def checked\n"
src_output.print " if (@checked.include? @call_index) then\n"
src_output.print " return @checked[@call_index]\n"
src_output.print " elsif (@call_index == 0) then\n"
src_output.print " return true\n"
src_output.print " else\n"
src_output.print " return false\n"
src_output.print " end\n"
src_output.print " end\n"
src_output.print "\n"
src_output.print " def checked=(new_checked)\n"
src_output.print " @checked[@call_index] = new_checked\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 "<form name=\"Form\">\n"
map_output.print "</form>\n"
map_output.print "\n"
map_output.print "<foreach name=\"List\">\n"
map_output.print "<list type=\"accessor\">list</list>\n"
map_output.print "<item type=\"accessor\">item</item>\n"
map_output.print "</foreach>\n"
map_output.print "\n"
map_output.print "<radio name=\"RadioButton\">\n"
map_output.print "<call-index type=\"accessor\">call_index</call-index>\n"
map_output.print "<checked type=\"accessor\">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 "<pm:widget name=\"List\"\n"
xml_output.print "><li><pm:widget name=\"RadioButton\" /></li>\n"
xml_output.print "</pm:widget\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.RadioButton.0\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.0\" checked=\"checked\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.1\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.1\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.2\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.2\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.RadioButton\" value=\"0-2\" />"
dst += "</div>"
dst += "</form>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(2, @params_call)
assert_equal(0, @page_path_call)
@page.context.call_index = 0
assert_equal(true, @page.context.checked)
@page.context.call_index = 1
assert_equal(false, @page.context.checked)
@page.context.call_index = 2
assert_equal(false, @page.context.checked)
@page.clear
@params['MainPage.RadioButton'] = 'MainPage.RadioButton.1'
@params['call-range:MainPage.RadioButton'] = '0-2'
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.RadioButton.0\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.0\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.1\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.1\" checked=\"checked\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.2\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.2\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.RadioButton\" value=\"0-2\" />"
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)
@page.context.call_index = 0
assert_equal(false, @page.context.checked)
@page.context.call_index = 1
assert_equal(true, @page.context.checked)
@page.context.call_index = 2
assert_equal(false, @page.context.checked)
@page.clear
@params['MainPage.RadioButton'] = 'MainPage.RadioButton.2'
@params['call-range:MainPage.RadioButton'] = '0-2'
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.RadioButton.0\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.0\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.1\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.1\" /></li>\n"
dst += "<li><input id=\"MainPage.RadioButton.2\" name=\"MainPage.RadioButton\" type=\"radio\" value=\"MainPage.RadioButton.2\" checked=\"checked\" /></li>\n"
dst += "</ol>\n"
dst += "<div>"
dst += "<input type=\"hidden\" name=\"call-range:MainPage.RadioButton\" value=\"0-2\" />"
dst += "</div>"
dst += "</form>\n"
dst += "</body>\n"
dst += "</html>\n"
assert_equal(dst, run_page)
assert_equal(6, @params_call)
assert_equal(0, @page_path_call)
@page.context.call_index = 0
assert_equal(false, @page.context.checked)
@page.context.call_index = 1
assert_equal(false, @page.context.checked)
@page.context.call_index = 2
assert_equal(true, @page.context.checked)
end