def test_run_many_with_map_update
dst = build_test_page
@env['REQUEST_METHOD'] = 'GET'
@env['SCRIPT_NAME'] = '/test_wpm_writer.cgi'
@env['PATH_INFO'] = '/MainPage'
@params['action'] = 'MainPage.LinkAction.0'
@params['_wpm_submit_'] = 'MainPage.Form.0'
@params['MainPage.HiddenAttribute.0'] = 'hidden message'
@params['MainPage.TextField.0'] = 'HALO'
@params['MainPage.Password.0'] = 'open sesame'
@params['MainPage.TextArea.0'] = "Hello world.\n"
@params['MainPage.CheckBox.0'] = ''
@params['RadioGroup'] = 'bar'
@params['MainPage.Select.0'] = 'bar'
@params['MainPage.SubmitButton.0'] = ''
while (Time.now < File.mtime(File.join('MainPage', 'MainPage.map')) + 1)
sleep(0.1)
end
ntries = 3
update_point = 1
assert(ntries > update_point)
for i in 0...update_point
@params['nth_trial'] = i.succ.to_s
@writer.run(@driver)
end
File.utime(Time.now, Time.now, File.join('MainPage', 'MainPage.map'))
for i in update_point...ntries
@params['nth_trial'] = i.succ.to_s
@writer.run(@driver)
end
assert(@env_call > 0)
assert(@params_call > 0)
assert_equal(1 * ntries, @header_call)
ntries.times do |i|
assert_equal('Status', @header_name_list[i])
end
assert_equal(3 * ntries, @set_header_call)
ntries.times do |i|
assert_equal([ 'Status', '200 OK' ], @set_header_alist[i * 3 + 0])
assert_equal([ 'Content-Type', 'text/html' ], @set_header_alist[i * 3 + 1])
assert_equal([ 'Content-Length', format(dst, i.succ).length.to_s ], @set_header_alist[i * 3 + 2])
end
assert(@write_call > 0)
dst2 = ''
for i in 1..ntries
dst2 << format(dst, i)
end
assert_equal(dst2, @write_messg)
end