class MultipartProgressTest
Public Instance Methods
test_basic_setup()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 292 def test_basic_setup test_logger.debug('test_basic_setup') cgi, request, response = new_request(100000) assert_not_nil(request.session) assert_not_nil(request.session[:uploads], "uploads collection not set") assert_not_nil(request.session[:uploads][cgi.upload_id], "upload id not set") progress = request.session[:uploads][cgi.upload_id] assert_equal(true, progress.finished?) end
test_domain_language_double()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 202 def test_domain_language_double c = Controllers::DoubleUploadController.new assert_respond_to(c, :one) assert_respond_to(c, :two) assert_respond_to(c, :upload_status) assert_respond_to(c, :finish_upload_status) end
test_domain_language_double_seperate()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 218 def test_domain_language_double_seperate c = Controllers::DoubleSeperateController.new assert_respond_to(c, :one) assert_respond_to(c, :two) assert_respond_to(c, :upload_status) assert_respond_to(c, :finish_upload_status) end
test_domain_language_double_status()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 210 def test_domain_language_double_status c = Controllers::DoubleStatusUploadController.new assert_respond_to(c, :one) assert_respond_to(c, :two) assert_respond_to(c, :custom_status) assert_respond_to(c, :finish_upload_status) end
test_domain_language_single()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 195 def test_domain_language_single c = Controllers::SingleUploadController.new assert_respond_to(c, :one) assert_respond_to(c, :upload_status) assert_respond_to(c, :finish_upload_status) end
test_finish_status_finish_param()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 270 def test_finish_status_finish_param test_logger.debug('test_finish_status_param') res = process(:action => :finish_param_string, :upload_id => 1) assert_match(/stop\('a string'\)/s, res.body) assert_no_redirect res res = process(:action => :finish_param_dict, :upload_id => 1) assert_match(/stop\(\{a: 'b'\}\)/s, res.body) assert_no_redirect res res = process(:action => :finish_param_number, :upload_id => 1) assert_match(/stop\(123\)/s, res.body) assert_no_redirect res res = process(:action => :finish_param_number_redirect, :upload_id => 1) test_logger.debug('test_finish_status_param: ' + res.body) assert_match(/stop\(123\)/s, res.body) assert_match(/replace\('\http:\/\/localhost\/redirected\/'\).*?/s, res.body) assert_no_redirect res end
test_finish_status_norendered()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 226 def test_finish_status_norendered # Fails to render the upload finish script because there is no view associated with this action test_logger.debug('test_finish_status_norendered') res = process(:action => 'norendered', :upload_id => 1) assert_match(/ActionView::ActionViewError/s, res.body) res = process(:action => :upload_status, :upload_id => 1) assert_match(/Upload finished/s, res.body) res = process(:action => :norendered) assert_match(/ActionView::ActionViewError/s, res.body) end
test_finish_status_redirected()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 255 def test_finish_status_redirected test_logger.debug('test_finish_status_redirected') res = process(:action => :redirected, :upload_id => 1) assert_match(/location\.replace/s, res.body) res = process(:action => :redirected) assert_no_match(/location\.replace/s, res.body) assert_match(/\/redirected\//s, res.headers['location']) assert_match(/302 .*$/, res.headers['Status']) res = process(:action => :upload_status, :upload_id => 1) assert_match(/Upload finished/s, res.body) end
test_finish_status_rendered()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 240 def test_finish_status_rendered test_logger.debug('test_finish_status_rendered') res = process(:action => :rendered, :upload_id => 1) assert_match(/stop\(\)/s, res.body) assert_no_match(/rendered/s, res.body) res = process(:action => :upload_status, :upload_id => 1) assert_match(/Upload finished/s, res.body) res = process(:action => :rendered) assert_no_match(/stop\(\)/s, res.body) assert_match(/rendered/, res.body) end
test_params()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 303 def test_params test_logger.debug('test_params') cgi, request, response = new_request(1000) assert(!request.params.empty?) assert(!request.params['param1'].empty?) end
test_upload_ids()
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 327 def test_upload_ids c = Controllers::MockController.new (1..222).each do |id| c.params = {} assert_equal((id-1).to_s, c.last_upload_id, "last_upload_id is out of sync") assert_equal(id.to_s, c.next_upload_id, "next_upload_id is out of sync") assert_equal(id.to_s, c.current_upload_id, "current_upload_id is out of sync") c.params = {:upload_id => (id-1).to_s} assert_equal((id-1).to_s, c.current_upload_id, "current_upload_id is out of sync") c.session[:uploads][id] = {} end end
Private Instance Methods
assert_no_redirect(res)
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 358 def assert_no_redirect(res) assert_nil(res.redirected_to) assert_nil(res.headers['location']) assert_match(/200 .*$/, res.headers['Status']) end
new_request(size=1000, url='/test', &block)
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 344 def new_request(size=1000, url='/test', &block) test_logger.debug('Creating MockCGI') cgi = MockCGI.new(size, url) do |cgi| block.call(cgi) if block_given? end assert(cgi.private_methods.include?("read_multipart_with_progress")) return [cgi, ActionController::CgiRequest.new(cgi), ActionController::CgiResponse.new(cgi)] end
process(options = {})
click to toggle source
# File lib/upload_progress/test/multipart_progress_testx.rb, line 354 def process(options = {}) Controllers::UploadController.process(*(new_request(1000, '/upload?' + options.map {|k,v| "#{k}=#{v}"}.join('&'))[1..2])) end