# File test/test_wpm_writer.rb, line 117
    def build_test_page
      build_page{|src, map, xml|
        src.print "class MainPage < WPM::PageContext\n"
        src.print "  def init_context\n"
        src.print "    @nth_trial = driver.params['nth_trial']\n"
        src.print "    @number = nil\n"
        src.print "    @link_messg = 'no action.'\n"
        src.print "    @hidden = nil\n"
        src.print "    @text = nil\n"
        src.print "    @password = nil\n"
        src.print "    @textarea = nil\n"
        src.print "    @checkbox_checked = false\n"
        src.print "    @radio_selected = 'foo'\n"
        src.print "    @select_selected = 'foo'\n"
        src.print "    @submit_messg = 'no action.'\n"
        src.print "  end\n"
        src.print "\n"
        src.print "  attr_reader :nth_trial\n"
        src.print "  attr_accessor :number\n"
        src.print "\n"
        src.print "  def even_number?\n"
        src.print "    @number % 2 == 0\n"
        src.print "  end\n"
        src.print "\n"
        src.print "  def odd_number?\n"
        src.print "    @number % 2 == 1\n"
        src.print "  end\n"
        src.print "\n"
        src.print "  def link_action\n"
        src.print "    @link_messg = 'clicked.'\n"
        src.print "    nil\n"
        src.print "  end\n"
        src.print "\n"
        src.print "  attr_reader :link_messg\n"
        src.print "  attr_accessor :hidden\n"
        src.print "  attr_accessor :text\n"
        src.print "  attr_accessor :password\n"
        src.print "  attr_accessor :textarea\n"
        src.print "  attr_accessor :checkbox_checked\n"
        src.print "  attr_accessor :radio_selected\n"
        src.print "  attr_accessor :select_selected\n"
        src.print "\n"
        src.print "  def submit_action\n"
        src.print "    @submit_messg = 'pushed.'\n"
        src.print "    nil\n"
        src.print "  end\n"
        src.print "\n"
        src.print "  attr_reader :submit_messg\n"
        src.print "end\n"

        map.print "<?xml version=\"1.0\"?>\n"
        map.print "<map xmlns=\"http://www.freedom.ne.jp/toki/ruby/PageMaker/Map\">\n"
        map.print "\n"
        map.print "<string name=\"NumberOfTrial\">\n"
        map.print "<value type=\"accessor\">nth_trial</value>\n"
        map.print "</string>\n"
        map.print "\n"
        map.print "<!-- loop and condition -->\n"
        map.print "\n"
        map.print "<foreach name=\"Numbering\">\n"
        map.print "<list type=\"eval\">1..10</list>\n"
        map.print "<item type=\"accessor\">number</item>\n"
        map.print "</foreach>\n"
        map.print "\n"
        map.print "<string name=\"Number\">\n"
        map.print "<value type=\"accessor\">number</value>\n"
        map.print "</string>\n"
        map.print "\n"
        map.print "<if name=\"IfOddNumber\">\n"
        map.print "<condition type=\"accessor\">odd_number?</condition>\n"
        map.print "</if>\n"
        map.print "\n"
        map.print "<if name=\"IfEvenNumber\">\n"
        map.print "<condition type=\"accessor\">even_number?</condition>\n"
        map.print "</if>\n"
        map.print "\n"
        map.print "<!-- import -->\n"
        map.print "\n"
        map.print "<import name=\"ImportPage\" page=\"ImportPage\">\n"
        map.print "</import>\n"
        map.print "\n"
        map.print "<!-- hyperlink -->\n"
        map.print "\n"
        map.print "<hyperlink name=\"LinkURL\">\n"
        map.print "<href type=\"string\">http://www.ruby-lang.org/</href>\n"
        map.print "</hyperlink>\n"
        map.print "\n"
        map.print "<hyperlink name=\"LinkPage\">\n"
        map.print "<page type=\"string\">OtherPage</page>\n"
        map.print "</hyperlink>\n"
        map.print "\n"
        map.print "<hyperlink name=\"LinkAction\">\n"
        map.print "<action type=\"method\">link_action</action>\n"
        map.print "</hyperlink>\n"
        map.print "\n"
        map.print "<string name=\"LinkMessage\">\n"
        map.print "<value type=\"accessor\">link_messg</value>\n"
        map.print "</string>\n"
        map.print "\n"
        map.print "<!-- form -->\n"
        map.print "\n"
        map.print "<form name=\"Form\">\n"
        map.print "</form>\n"
        map.print "\n"
        map.print "<hidden name=\"HiddenAttribute\">\n"
        map.print "<value type=\"accessor\">hidden</value>\n"
        map.print "</hidden>\n"
        map.print "\n"
        map.print "<textfield name=\"TextField\">\n"
        map.print "<value type=\"accessor\">text</value>\n"
        map.print "</textfield>\n"
        map.print "\n"
        map.print "<label name=\"TextFieldLabel\">\n"
        map.print "<for type=\"string\">TextField</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<password name=\"Password\">\n"
        map.print "<value type=\"accessor\">password</value>\n"
        map.print "</password>\n"
        map.print "\n"
        map.print "<label name=\"PasswordLabel\">\n"
        map.print "<for type=\"string\">Password</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<textarea name=\"TextArea\">\n"
        map.print "<value type=\"accessor\">textarea</value>\n"
        map.print "</textarea>\n"
        map.print "\n"
        map.print "<label name=\"TextAreaLabel\">\n"
        map.print "<for type=\"string\">TextArea</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<checkbox name=\"CheckBox\">\n"
        map.print "<checked type=\"accessor\">checkbox_checked</checked>\n"
        map.print "</checkbox>\n"
        map.print "\n"
        map.print "<label name=\"CheckBoxLabel\">\n"
        map.print "<for type=\"string\">CheckBox</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<radio name=\"RadioButtonFoo\">\n"
        map.print "<name type=\"string\">RadioGroup</name>\n"
        map.print "<value type=\"string\">foo</value>\n"
        map.print "<selected type=\"accessor\">radio_selected</selected>\n"
        map.print "</radio>\n"
        map.print "\n"
        map.print "<label name=\"RadioButtonFooLabel\">\n"
        map.print "<for type=\"string\">RadioButtonFoo</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<radio name=\"RadioButtonBar\">\n"
        map.print "<name type=\"string\">RadioGroup</name>\n"
        map.print "<value type=\"string\">bar</value>\n"
        map.print "<selected type=\"accessor\">radio_selected</selected>\n"
        map.print "</radio>\n"
        map.print "\n"
        map.print "<label name=\"RadioButtonBarLabel\">\n"
        map.print "<for type=\"string\">RadioButtonBar</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<radio name=\"RadioButtonBaz\">\n"
        map.print "<name type=\"string\">RadioGroup</name>\n"
        map.print "<value type=\"string\">baz</value>\n"
        map.print "<selected type=\"accessor\">radio_selected</selected>\n"
        map.print "</radio>\n"
        map.print "\n"
        map.print "<label name=\"RadioButtonBazLabel\">\n"
        map.print "<for type=\"string\">RadioButtonBaz</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<select name=\"Select\">\n"
        map.print "<list type=\"eval\">%w[ foo bar baz ]</list>\n"
        map.print "<selected type=\"accessor\">select_selected</selected>\n"
        map.print "</select>\n"
        map.print "\n"
        map.print "<label name=\"SelectLabel\">\n"
        map.print "<for type=\"string\">Select</for>\n"
        map.print "</label>\n"
        map.print "\n"
        map.print "<submit name=\"SubmitButton\">\n"
        map.print "<action type=\"method\">submit_action</action>\n"
        map.print "</submit>\n"
        map.print "\n"
        map.print "<string name=\"SubmitMessage\">\n"
        map.print "<value type=\"accessor\">submit_messg</value>\n"
        map.print "</string>\n"
        map.print "\n"
        map.print "</map>\n"

        xml.print "<?xml version=\"1.0\"?>\n"
        xml.print "<html xmlns=\"http://www.w3.org/1999/xhtml\" xmlns:pm=\"http://www.freedom.ne.jp/toki/ruby/PageMaker\">\n"
        xml.print "<head><title>Test</title></head>\n"
        xml.print "<body>\n"
        xml.print "<h1>Test</h1>\n"
        xml.print "\n"
        xml.print "<h2>Trial</h2>\n"
        xml.print "<p><pm:widget name=\"NumberOfTrial\" /></p>\n"
        xml.print "\n"
        xml.print "<h2>Loop and Condition</h2>\n"
        xml.print "<table>\n"
        xml.print "<pm:widget name=\"Numbering\"\n"
        xml.print "><pm:widget name=\"IfOddNumber\"\n"
        xml.print "><tr><th bgcolor=\"magenta\"><pm:widget name=\"Number\" /></th><td bgcolor=\"cyan\">odd number</td></tr>\n"
        xml.print "</pm:widget\n"
        xml.print "><pm:widget name=\"IfEvenNumber\"\n"
        xml.print "><tr><th bgcolor=\"cyan\"><pm:widget name=\"Number\" /></th><td bgcolor=\"magenta\">even number</td></tr>\n"
        xml.print "</pm:widget\n"
        xml.print "></pm:widget\n"
        xml.print "></table>\n"
        xml.print "\n"
        xml.print "<h2>Import</h2>\n"
        xml.print "<p>\n"
        xml.print "<pm:widget name=\"ImportPage\">This page.</pm:widget>\n"
        xml.print "</p>\n"
        xml.print "\n"
        xml.print "<h2>Hyperlink</h2>\n"
        xml.print "<ul>\n"
        xml.print "<li><pm:widget name=\"LinkURL\">www.ruby-lang.org</pm:widget></li>\n"
        xml.print "<li><pm:widget name=\"LinkPage\">other page</pm:widget></li>\n"
        xml.print "<li><pm:widget name=\"LinkAction\">action</pm:widget></li>\n"
        xml.print "</ul>\n"
        xml.print "<p><pm:widget name=\"LinkMessage\" /></p>\n"
        xml.print "\n"
        xml.print "<h2>Form</h2>\n"
        xml.print "<pm:widget name=\"Form\">\n"
        xml.print "<div><pm:widget name=\"HiddenAttribute\" /></div>\n"
        xml.print "<p><pm:widget name=\"TextFieldLabel\">text field:</pm:widget>\n"
        xml.print "   <pm:widget name=\"TextField\" />\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"PasswordLabel\">password:</pm:widget>\n"
        xml.print "   <pm:widget name=\"Password\" />\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"TextAreaLabel\">textarea:</pm:widget><br />\n"
        xml.print "   <pm:widget name=\"TextArea\" />\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"CheckBox\" />\n"
        xml.print "   <pm:widget name=\"CheckBoxLabel\">check box</pm:widget>\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"RadioButtonFoo\" />\n"
        xml.print "   <pm:widget name=\"RadioButtonFooLabel\">foo</pm:widget>\n"
        xml.print "   <pm:widget name=\"RadioButtonBar\" />\n"
        xml.print "   <pm:widget name=\"RadioButtonBarLabel\">bar</pm:widget>\n"
        xml.print "   <pm:widget name=\"RadioButtonBaz\" />\n"
        xml.print "   <pm:widget name=\"RadioButtonBazLabel\">baz</pm:widget>\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"SelectLabel\">select:</pm:widget>\n"
        xml.print "   <pm:widget name=\"Select\" />\n"
        xml.print "</p>\n"
        xml.print "<p><pm:widget name=\"SubmitButton\" />\n"
        xml.print "   (<pm:widget name=\"SubmitMessage\" />)\n"
        xml.print "</p>\n"
        xml.print "</pm:widget>\n"
        xml.print "\n"
        xml.print "</body>\n"
        xml.print "</html>\n"
      }

      build_page('ImportPage') {|src, map, xml|
        src.print "class ImportPage < WPM::PageContext\n"
        src.print "end\n"

        map.print "<?xml version=\"1.0\"?>\n"
        map.print "<map xmlns=\"http://www.freedom.ne.jp/toki/ruby/PageMaker/Map\">\n"
        map.print "\n"
        map.print "<content name=\"Content\">\n"
        map.print "</content>\n"
        map.print "\n"
        map.print "</map>\n"

        xml.print "<pm:import xmlns=\"http://www.w3.org/1999/xhtml\"\n"
        xml.print "           xmlns:pm=\"http://www.freedom.ne.jp/toki/ruby/PageMaker\"\n"
        xml.print "><pm:widget name=\"Content\" /><br />\n"
        xml.print "Imported page.</pm:import>\n"
      }

      dst =  "<html xmlns=\"http://www.w3.org/1999/xhtml\">\n"
      dst << "<head><title>Test</title></head>\n"
      dst << "<body>\n"
      dst << "<h1>Test</h1>\n"
      dst << "\n"
      dst << "<h2>Trial</h2>\n"
      dst << "<p>%d</p>\n"
      dst << "\n"
      dst << "<h2>Loop and Condition</h2>\n"
      dst << "<table>\n"
      dst << "<tr><th bgcolor=\"magenta\">1</th><td bgcolor=\"cyan\">odd number</td></tr>\n"
      dst << "<tr><th bgcolor=\"cyan\">2</th><td bgcolor=\"magenta\">even number</td></tr>\n"
      dst << "<tr><th bgcolor=\"magenta\">3</th><td bgcolor=\"cyan\">odd number</td></tr>\n"
      dst << "<tr><th bgcolor=\"cyan\">4</th><td bgcolor=\"magenta\">even number</td></tr>\n"
      dst << "<tr><th bgcolor=\"magenta\">5</th><td bgcolor=\"cyan\">odd number</td></tr>\n"
      dst << "<tr><th bgcolor=\"cyan\">6</th><td bgcolor=\"magenta\">even number</td></tr>\n"
      dst << "<tr><th bgcolor=\"magenta\">7</th><td bgcolor=\"cyan\">odd number</td></tr>\n"
      dst << "<tr><th bgcolor=\"cyan\">8</th><td bgcolor=\"magenta\">even number</td></tr>\n"
      dst << "<tr><th bgcolor=\"magenta\">9</th><td bgcolor=\"cyan\">odd number</td></tr>\n"
      dst << "<tr><th bgcolor=\"cyan\">10</th><td bgcolor=\"magenta\">even number</td></tr>\n"
      dst << "</table>\n"
      dst << "\n"
      dst << "<h2>Import</h2>\n"
      dst << "<p>\n"
      dst << "This page.<br />\n"
      dst << "Imported page.\n"
      dst << "</p>\n"
      dst << "\n"
      dst << "<h2>Hyperlink</h2>\n"
      dst << "<ul>\n"
      dst << "<li><a href=\"http://www.ruby-lang.org/\">www.ruby-lang.org</a></li>\n"
      dst << "<li><a href=\"/test_wpm_writer.cgi/OtherPage\">other page</a></li>\n"
      dst << "<li><a href=\"/test_wpm_writer.cgi/MainPage?action=MainPage.LinkAction.0\">action</a></li>\n"
      dst << "</ul>\n"
      dst << "<p>clicked.</p>\n"
      dst << "\n"
      dst << "<h2>Form</h2>\n"
      dst << "<form id=\"MainPage.Form.0\" method=\"post\" enctype=\"application/x-www-form-urlencoded\"><div style=\"display: none\"><input type=\"hidden\" name=\"_wpm_submit_\" value=\"MainPage.Form.0\" /></div>\n"
      dst << "<div><input id=\"MainPage.HiddenAttribute.0\" name=\"MainPage.HiddenAttribute.0\" type=\"hidden\" value=\"hidden message\" /></div>\n"
      dst << "<p><label for=\"MainPage.TextField.0\">text field:</label>\n"
      dst << "   <input id=\"MainPage.TextField.0\" name=\"MainPage.TextField.0\" type=\"text\" value=\"HALO\" />\n"
      dst << "</p>\n"
      dst << "<p><label for=\"MainPage.Password.0\">password:</label>\n"
      dst << "   <input id=\"MainPage.Password.0\" name=\"MainPage.Password.0\" type=\"password\" />\n"
      dst << "</p>\n"
      dst << "<p><label for=\"MainPage.TextArea.0\">textarea:</label><br />\n"
      dst << "   <textarea id=\"MainPage.TextArea.0\" name=\"MainPage.TextArea.0\">Hello world.\n</textarea>\n"
      dst << "</p>\n"
      dst << "<p><input id=\"MainPage.CheckBox.0\" name=\"MainPage.CheckBox.0\" type=\"checkbox\" value=\"\" checked=\"checked\" />\n"
      dst << "   <label for=\"MainPage.CheckBox.0\">check box</label>\n"
      dst << "</p>\n"
      dst << "<p><input id=\"MainPage.RadioButtonFoo.0\" name=\"RadioGroup\" type=\"radio\" value=\"foo\" />\n"
      dst << "   <label for=\"MainPage.RadioButtonFoo.0\">foo</label>\n"
      dst << "   <input id=\"MainPage.RadioButtonBar.0\" name=\"RadioGroup\" type=\"radio\" value=\"bar\" checked=\"checked\" />\n"
      dst << "   <label for=\"MainPage.RadioButtonBar.0\">bar</label>\n"
      dst << "   <input id=\"MainPage.RadioButtonBaz.0\" name=\"RadioGroup\" type=\"radio\" value=\"baz\" />\n"
      dst << "   <label for=\"MainPage.RadioButtonBaz.0\">baz</label>\n"
      dst << "</p>\n"
      dst << "<p><label for=\"MainPage.Select.0\">select:</label>\n"
      dst << "   <select id=\"MainPage.Select.0\" name=\"MainPage.Select.0\"><option value=\"foo\">foo</option><option value=\"bar\" selected=\"selected\">bar</option><option value=\"baz\">baz</option></select>\n"
      dst << "</p>\n"
      dst << "<p><input id=\"MainPage.SubmitButton.0\" name=\"MainPage.SubmitButton.0\" type=\"submit\" />\n"
      dst << "   (pushed.)\n"
      dst << "</p>\n"
      dst << "</form>\n"
      dst << "\n"
      dst << "</body>\n"
      dst << "</html>"

      dst
    end