aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
authorPaul Battley <pbattley@gmail.com>2012-07-03 11:59:38 +0100
committerPaul Battley <pbattley@gmail.com>2012-07-03 12:01:53 +0100
commita3ade2e99c9d44577c92cdc19a60fd233781004f (patch)
treeb47a94ffdc6f02d281638f29953e5a806f4e975b /railties
parent33113ba0e73004d6508fc473a6d02f91cbb35709 (diff)
downloadrails-a3ade2e99c9d44577c92cdc19a60fd233781004f.tar.gz
rails-a3ade2e99c9d44577c92cdc19a60fd233781004f.tar.bz2
rails-a3ade2e99c9d44577c92cdc19a60fd233781004f.zip
Ensure jobs do not refer to the queue
Jobs pushed to the queue should not contain a reference to it. As the queue itself cannot be marshalled, and as a consequence of checking the marshallability of all jobs in the test environment, we can now guarantee this to be the case in the test environment when using the default TestQueue implementation.
Diffstat (limited to 'railties')
-rw-r--r--railties/test/application/queue_test.rb15
1 files changed, 15 insertions, 0 deletions
diff --git a/railties/test/application/queue_test.rb b/railties/test/application/queue_test.rb
index e8ee8c5c9f..22d6c20404 100644
--- a/railties/test/application/queue_test.rb
+++ b/railties/test/application/queue_test.rb
@@ -109,6 +109,21 @@ module ApplicationTests
end
end
+ test "attempting to marshal a queue will raise an exception" do
+ app("test")
+ assert_raises TypeError do
+ Marshal.dump Rails.queue
+ end
+ end
+
+ test "attempting to add a reference to itself to the queue will raise an exception" do
+ app("test")
+ job = {reference: Rails.queue}
+ assert_raises TypeError do
+ Rails.queue.push job
+ end
+ end
+
def setup_custom_queue
add_to_env_config "production", <<-RUBY
require "my_queue"