aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/test/controller/upload_progress_testx.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2005-06-30 14:49:36 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2005-06-30 14:49:36 +0000
commit524d1b5e044f8e104ac9b72290d832246c79bcd1 (patch)
tree9422c3ab06f6ed8b6c6ae2a11fbb1ba56aa9dcbf /actionpack/test/controller/upload_progress_testx.rb
parent4cd5b05377c057ea44401dc759d641c5738540ce (diff)
downloadrails-524d1b5e044f8e104ac9b72290d832246c79bcd1.tar.gz
rails-524d1b5e044f8e104ac9b72290d832246c79bcd1.tar.bz2
rails-524d1b5e044f8e104ac9b72290d832246c79bcd1.zip
Uncommented request.recycle! as it breaks more than it fixes, left test case in, xal?
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1572 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack/test/controller/upload_progress_testx.rb')
-rw-r--r--actionpack/test/controller/upload_progress_testx.rb89
1 files changed, 89 insertions, 0 deletions
diff --git a/actionpack/test/controller/upload_progress_testx.rb b/actionpack/test/controller/upload_progress_testx.rb
new file mode 100644
index 0000000000..48b4251f1d
--- /dev/null
+++ b/actionpack/test/controller/upload_progress_testx.rb
@@ -0,0 +1,89 @@
+require File.dirname(__FILE__) + '/../abstract_unit'
+require 'test/unit'
+require 'cgi'
+require 'stringio'
+
+class UploadProgressTest < Test::Unit::TestCase
+ def test_remaining
+ progress = new_progress(20000)
+ assert_equal(0, progress.received_bytes)
+ assert_equal(20000, progress.remaining_bytes)
+ progress.update!(10000, 1.0)
+ assert_equal(10000, progress.remaining_bytes)
+ assert_equal(1.0, progress.remaining_seconds)
+ assert_equal(50, progress.completed_percent)
+ assert_equal(true, progress.started?)
+ assert_equal(false, progress.finished?)
+ assert_equal(false, progress.stalled?)
+ progress.update!(10000, 2.0)
+ assert_equal(true, progress.finished?)
+ assert_equal(0.0, progress.remaining_seconds)
+ end
+
+ def test_stalled
+ progress = new_progress(10000)
+ assert_equal(false, progress.stalled?)
+ progress.update!(100, 1.0)
+ assert_equal(false, progress.stalled?)
+ progress.update!(100, 20.0)
+ assert_equal(true, progress.stalled?)
+ assert_in_delta(0.0, progress.bitrate, 0.001)
+ progress.update!(100, 21.0)
+ assert_equal(false, progress.stalled?)
+ end
+
+ def test_elapsed
+ progress = new_progress(10000)
+ (1..5).each do |t|
+ progress.update!(1000, Float(t))
+ end
+ assert_in_delta(5.0, progress.elapsed_seconds, 0.001)
+ assert_equal(10000, progress.total_bytes)
+ assert_equal(5000, progress.received_bytes)
+ assert_equal(5000, progress.remaining_bytes)
+ end
+
+ def test_overflow
+ progress = new_progress(10000)
+ progress.update!(20000, 1.0)
+ assert_equal(10000, progress.received_bytes)
+ end
+
+ def test_zero
+ progress = new_progress(0)
+ assert_equal(0, progress.total_bytes)
+ assert_equal(0, progress.remaining_bytes)
+ assert_equal(false, progress.started?)
+ assert_equal(true, progress.finished?)
+ assert_equal(0, progress.bitrate)
+ assert_equal(0, progress.completed_percent)
+ assert_equal(0, progress.remaining_seconds)
+ end
+
+ def test_finished
+ progress = new_progress(10000)
+ (1..9).each do |t|
+ progress.update!(1000, Float(t))
+ assert_equal(false, progress.finished?)
+ assert_equal(1000.0, progress.bitrate)
+ assert_equal(false, progress.stalled?)
+ end
+ assert_equal(false, progress.finished?)
+ progress.update!(1000, 10.0)
+ assert_equal(true, progress.finished?)
+ end
+
+ def test_rapid_samples
+ progress = new_progress(10000)
+ (1..1000).each do |t|
+ progress.update!(10, t/100.0)
+ end
+ assert_in_delta(1000.0, progress.bitrate, 0.001)
+ assert_equal(true, progress.finished?)
+ end
+
+ private
+ def new_progress(total)
+ ActionController::UploadProgress::Progress.new(total)
+ end
+end