Guest User

Untitled

a guest
Apr 27th, 2018
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.95 KB | None | 0 0
  1. require File.dirname(__FILE__) + '/../test_helper'
  2.  
  3. class NewslettersControllerTest < ActionController::TestCase
  4. # Replace this with your real tests.
  5.  
  6. # when routes handling do
  7. def test_shoud_map_get_newsletter_to_index_action
  8. assert_recognizes({ :controller => 'newsletters', :action => 'index' }, { :method => :get, :path => '/newsletters' })
  9. end
  10.  
  11. def test_should_map_post_newsletter_to_create_action
  12. assert_recognizes({ :controller => 'newsletters', :action => 'create'}, { :method => :post, :path => '/newsletters/create' })
  13. end
  14.  
  15. def test_should_map_get_newsletter_new_to_new_action
  16. assert_recognizes({ :controller => 'newsletters', :action => 'new'}, {:method => :get, :path => '/newsletters/new'})
  17. end
  18.  
  19. def test_should_map_get_newsletter_preview_to_preview_action
  20. assert_recognizes({ :controller => 'newsletters',
  21. :action => 'preview',
  22. :id => '1' },
  23. { :method => :get,
  24. :path => '/newsletters/preview/1' })
  25. end
  26.  
  27. # end
  28.  
  29. # when user is authenticated
  30. def before_each_authenticated
  31. login_user!
  32. end
  33.  
  34. # and authorized
  35. def before_each_authorized
  36. before_each_authenticated
  37. @current_user.expects(:current_role).returns('iBridgeAdmin').at_least_once
  38. end
  39.  
  40. # and GET '/newsletter' is handled
  41. def before_each_get_newsletter
  42. before_each_authorized
  43. Newsletter.expects(:find).with(:all).returns([])
  44. get :index
  45. end
  46.  
  47. # it should render the newsletters/index template
  48. def test_should_render_newsletters_index_template_when_user_is_authorized_on_index_action
  49. before_each_get_newsletter
  50. assert_response :success
  51. assert_template 'newsletters/index'
  52. end
  53. # it should assigns all the newsletters in the response
  54. def test_should_assigns_all_the_newsletter_in_the_response_when_user_is_authorized_on_index_action
  55. before_each_get_newsletter
  56. assert_not_nil assigns(:newsletters)
  57. end
  58.  
  59. # and GET '/newsletter/new' is handled
  60. def before_each_get_newsletter_new
  61. before_each_authorized
  62. get :new
  63. end
  64.  
  65. # it should render the newsletters/new template
  66. def test_should_render_newsletters_new_template_when_user_is_authorized_on_new_action
  67. before_each_get_newsletter_new
  68. assert_response :success
  69. assert_template 'newsletters/new'
  70. end
  71. # it should assign a new newsletter instance in the response
  72. def test_should_assign_a_new_newsletter_instance_in_the_response_when_user_is_authorized_on_new_action
  73. before_each_get_newsletter_new
  74. assert_not_nil assigns(:newsletter)
  75. end
  76.  
  77. # and POST '/newsletter/create' is handled
  78. # and the newsletter is valid
  79. def before_each_newsletter_valid_on_create
  80. before_each_authorized
  81. @newsletter = stub(valid_newsletter_attributes(:save => true))
  82. Newsletter.expects(:new).with({}).returns(@newsletter)
  83. post :create, :newsletter => {}
  84. end
  85.  
  86. # it should redirect to the index action
  87. def test_should_redirect_to_index_action_when_user_is_authorized_and_newsletter_valid_on_create_action
  88. before_each_newsletter_valid_on_create
  89. assert_response :redirect
  90. assert_redirected_to :controller => 'newsletters', :action => 'index'
  91. end
  92. # it should assign a flash notice
  93. def test_should_assign_a_flash_notice_when_user_is_authorized_and_newsletter_valid_on_create_action
  94. before_each_newsletter_valid_on_create
  95. assert_not_nil flash[:notice]
  96. assert_equal "The Newsletter was created successfuly", flash[:notice]
  97. end
  98.  
  99. # but the newsletter is not valid
  100. def before_each_newsletter_invalid_on_create
  101. before_each_authorized
  102. @newsletter = stub('newsletter', valid_newsletter_attributes(:save => false, :errors => stub('errors', :count => 0)))
  103. Newsletter.expects(:new).with({}).returns(@newsletter)
  104. post :create, :newsletter => {}
  105. end
  106.  
  107. # it should render the new template
  108. def test_should_render_new_template_when_user_is_authorized_and_newsletter_invalid_on_creation_action
  109. before_each_newsletter_invalid_on_create
  110. assert_response :success
  111. assert_template 'newsletters/new'
  112. end
  113.  
  114.  
  115. # and GET '/newsletters/preview/<id>' is handled
  116. def before_each_newsletter_preview
  117. before_each_authorized
  118. @newsletter = stub('newsletter', valid_newsletter_attributes)
  119. Newsletter.expects(:find).with('5').returns(@newsletter)
  120. get :preview, :id => 5
  121. end
  122.  
  123. # it should render preview template
  124. def test_should_render_preview_template_when_user_is_authorzied_on_preview_action
  125. before_each_newsletter_preview
  126. assert_response :success
  127. assert_template 'newsletters/preview'
  128. end
  129.  
  130.  
  131. # but is not authorized
  132. # it should redirect to the login path
  133. def test_should_redirect_to_login_path_when_no_authorized
  134. before_each_authenticated
  135. get :index
  136. assert_response :redirect
  137. assert_redirected_to :controller => 'user', :action => 'login'
  138. end
  139.  
  140. # it should assign a flash notice
  141. def test_should_assign_flash_notice_when_no_authorized
  142. before_each_authenticated
  143. get :index
  144. assert_not_nil flash[:warning]
  145. end
  146.  
  147. # end
  148.  
  149. protected
  150.  
  151. def login_user!(params = {})
  152. @current_user = stub(valid_user_attributes(params))
  153. @controller.expects(:current_user).returns(@current_user).at_least_once
  154. end
  155.  
  156. end
Add Comment
Please, Sign In to add comment