aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/generators/test_unit/scaffold
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/generators/test_unit/scaffold')
-rw-r--r--railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb18
-rw-r--r--railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb51
2 files changed, 69 insertions, 0 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
new file mode 100644
index 0000000000..c0315c7fe6
--- /dev/null
+++ b/railties/lib/rails/generators/test_unit/scaffold/scaffold_generator.rb
@@ -0,0 +1,18 @@
+require 'rails/generators/test_unit'
+require 'rails/generators/resource_helpers'
+
+module TestUnit
+ module Generators
+ class ScaffoldGenerator < Base
+ include Rails::Generators::ResourceHelpers
+
+ class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller"
+ check_class_collision :suffix => "ControllerTest"
+
+ def create_test_files
+ template 'functional_test.rb',
+ File.join('test/functional', controller_class_path, "#{controller_file_name}_controller_test.rb")
+ 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
new file mode 100644
index 0000000000..4f8ddbffcf
--- /dev/null
+++ b/railties/lib/rails/generators/test_unit/scaffold/templates/functional_test.rb
@@ -0,0 +1,51 @@
+require 'test_helper'
+
+class <%= controller_class_name %>ControllerTest < ActionController::TestCase
+ setup do
+ @<%= file_name %> = <%= table_name %>(:one)
+ end
+
+<% unless options[:singleton] -%>
+ test "should get index" do
+ get :index
+ assert_response :success
+ assert_not_nil assigns(:<%= table_name %>)
+ end
+<% end -%>
+
+ test "should get new" do
+ get :new
+ assert_response :success
+ end
+
+ test "should create <%= file_name %>" do
+ assert_difference('<%= class_name %>.count') do
+ post :create, :<%= file_name %> => @<%= file_name %>.attributes
+ end
+
+ assert_redirected_to <%= file_name %>_path(assigns(:<%= file_name %>))
+ end
+
+ test "should show <%= file_name %>" do
+ get :show, :id => @<%= file_name %>.to_param
+ assert_response :success
+ end
+
+ test "should get edit" do
+ get :edit, :id => @<%= file_name %>.to_param
+ assert_response :success
+ end
+
+ test "should update <%= file_name %>" do
+ put :update, :id => @<%= file_name %>.to_param, :<%= file_name %> => @<%= file_name %>.attributes
+ assert_redirected_to <%= file_name %>_path(assigns(:<%= file_name %>))
+ end
+
+ test "should destroy <%= file_name %>" do
+ assert_difference('<%= class_name %>.count', -1) do
+ delete :destroy, :id => @<%= file_name %>.to_param
+ end
+
+ assert_redirected_to <%= table_name %>_path
+ end
+end