diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-03-12 20:10:40 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2012-03-13 11:23:14 -0300 |
commit | ac8469d233821899283bcb7e6b0cd8d4203ffb35 (patch) | |
tree | 02d3e6b0d4adc450413b7504b81a5bcc9644a14a /railties | |
parent | 5bed0e5cc0ae85975352808022201cf7431684e5 (diff) | |
download | rails-ac8469d233821899283bcb7e6b0cd8d4203ffb35.tar.gz rails-ac8469d233821899283bcb7e6b0cd8d4203ffb35.tar.bz2 rails-ac8469d233821899283bcb7e6b0cd8d4203ffb35.zip |
Use the attributes hash explicitly
Diffstat (limited to 'railties')
4 files changed, 44 insertions, 12 deletions
diff --git a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb index 760917896f..4c07baae36 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb @@ -17,9 +17,22 @@ module TestUnit private - def accessible_attributes - attributes.reject(&:reference?).map {|a| "\"#{a.name}\"" }.sort.join(', ') - end + def resource_attributes + key_value singular_table_name, "{ #{attributes_hash} }" + end + + def attributes_hash + return if accessible_attributes.empty? + + accessible_attributes.map do |a| + name = a.name + "#{name}: @#{singular_table_name}.#{name}" + end.sort.join(', ') + end + + def accessible_attributes + attributes.reject(&:reference?) + end end end end diff --git a/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb b/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb index e9fe27e504..19894443d5 100644 --- a/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb +++ b/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb @@ -4,7 +4,6 @@ require 'test_helper' class <%= controller_class_name %>ControllerTest < ActionController::TestCase setup do @<%= singular_table_name %> = <%= table_name %>(:one) - @valid_attributes = @<%= singular_table_name %>.attributes.slice(<%= accessible_attributes %>) end test "should get index" do @@ -20,7 +19,7 @@ class <%= controller_class_name %>ControllerTest < ActionController::TestCase test "should create <%= singular_table_name %>" do assert_difference('<%= class_name %>.count') do - post :create, <%= key_value singular_table_name, "@valid_attributes" %> + post :create, <%= resource_attributes %> end assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>)) @@ -37,7 +36,7 @@ class <%= controller_class_name %>ControllerTest < ActionController::TestCase end test "should update <%= singular_table_name %>" do - put :update, <%= key_value :id, "@#{singular_table_name}" %>, <%= key_value singular_table_name, "@valid_attributes" %> + put :update, <%= key_value :id, "@#{singular_table_name}" %>, <%= resource_attributes %> assert_redirected_to <%= singular_table_name %>_path(assigns(:<%= singular_table_name %>)) end diff --git a/railties/test/generators/scaffold_controller_generator_test.rb b/railties/test/generators/scaffold_controller_generator_test.rb index f2406a149b..dafaee8800 100644 --- a/railties/test/generators/scaffold_controller_generator_test.rb +++ b/railties/test/generators/scaffold_controller_generator_test.rb @@ -75,9 +75,19 @@ class ScaffoldControllerGeneratorTest < Rails::Generators::TestCase assert_file "test/functional/users_controller_test.rb" do |content| assert_match(/class UsersControllerTest < ActionController::TestCase/, content) assert_match(/test "should get index"/, content) - assert_match(/@valid_attributes = @user\.attributes\.slice\("age", "name"\)/, content) - assert_match(/post :create, user: @valid_attributes/, content) - assert_match(/put :update, id: @user, user: @valid_attributes/, content) + assert_match(/post :create, user: { age: @user.age, name: @user.name }/, content) + assert_match(/put :update, id: @user, user: { age: @user.age, name: @user.name }/, content) + end + end + + def test_functional_tests_without_attributes + run_generator ["User"] + + assert_file "test/functional/users_controller_test.rb" do |content| + assert_match(/class UsersControllerTest < ActionController::TestCase/, content) + assert_match(/test "should get index"/, content) + assert_match(/post :create, user: { }/, content) + assert_match(/put :update, id: @user, user: { }/, content) end end diff --git a/railties/test/generators/scaffold_generator_test.rb b/railties/test/generators/scaffold_generator_test.rb index d983ae8b49..f4f0147156 100644 --- a/railties/test/generators/scaffold_generator_test.rb +++ b/railties/test/generators/scaffold_generator_test.rb @@ -64,9 +64,8 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase assert_file "test/functional/product_lines_controller_test.rb" do |test| assert_match(/class ProductLinesControllerTest < ActionController::TestCase/, test) - assert_match(/@valid_attributes = @product_line\.attributes\.slice\("title"\)/, test) - assert_match(/post :create, product_line: @valid_attributes/, test) - assert_match(/put :update, id: @product_line, product_line: @valid_attributes/, test) + assert_match(/post :create, product_line: { title: @product_line.title }/, test) + assert_match(/put :update, id: @product_line, product_line: { title: @product_line.title }/, test) end # Views @@ -89,6 +88,17 @@ class ScaffoldGeneratorTest < Rails::Generators::TestCase assert_file "app/assets/stylesheets/product_lines.css" end + def test_functional_tests_without_attributes + run_generator ["product_line"] + + assert_file "test/functional/product_lines_controller_test.rb" do |content| + assert_match(/class ProductLinesControllerTest < ActionController::TestCase/, content) + assert_match(/test "should get index"/, content) + assert_match(/post :create, product_line: { }/, content) + assert_match(/put :update, id: @product_line, product_line: { }/, content) + end + end + def test_scaffold_on_revoke run_generator run_generator ["product_line"], :behavior => :revoke |