Guest User

Untitled

a guest
Dec 11th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.42 KB | None | 0 0
  1. require "spec_helper"
  2.  
  3. describe ProjectsController do
  4.  
  5. # prepare params
  6. before(:all) do
  7. @user = Factory.build(:user)
  8. end
  9.  
  10. describe "Projects request validation" do
  11.  
  12. it "redirects to logon from index" do
  13. get :index
  14. response.should redirect_to(:controller => 'admin', :action => 'index')
  15. end
  16.  
  17. it "redirects to logon from show" do
  18. get :show, :id => '1'
  19. response.should redirect_to(admin_path)
  20. end
  21.  
  22. it "redirects to logon from edit" do
  23. get :edit, :id => '1'
  24. response.should redirect_to(admin_path)
  25. end
  26.  
  27. it "redirects to logon from create" do
  28. put :create
  29. response.should redirect_to(admin_path)
  30. end
  31.  
  32. it "redirects to logon from update" do
  33. put :update, :id => '1'
  34. response.should redirect_to(admin_path)
  35. end
  36.  
  37. it "redirects to logon from destroy" do
  38. put :destroy, :id => '1'
  39. response.should redirect_to(admin_path)
  40. end
  41. end
  42.  
  43. describe "Projects simple actions" do
  44.  
  45. it "renders the index template" do
  46. session[:user] = @user
  47. get :index
  48. response.should render_template("index")
  49. end
  50.  
  51. it "renders view_all template" do
  52. get :view_all
  53. response.should render_template('view_all')
  54. end
  55. end
  56.  
  57. describe "Projects resources" do
  58.  
  59. it "renders view templete" do
  60. Project.stub(:find).with("5") { mock_model(Project) }
  61. get :view, :id => '5'
  62. response.should render_template('view')
  63. end
  64.  
  65. it "assigns new @project" do
  66. session[:user] = @user
  67. get :new
  68.  
  69. flash[:notice].should be_nil
  70. response.should render_template('new')
  71. end
  72.  
  73. it "assigns edit @project" do
  74. Project.stub(:find).with("5") { mock_model(Project) }
  75. session[:user] = @user
  76. get :edit, :id => '5'
  77.  
  78. response.should render_template('edit')
  79. end
  80.  
  81. it "creates @project" do
  82. session[:user] = @user
  83. post 'create', :project => { :name => 'New Project' }
  84. created_project = assigns[:project]
  85.  
  86. created_project.should be_a(Project)
  87. flash[:notice].should_not be_nil
  88. flash[:error].should be_nil
  89. created_project.name.should eq('New Project')
  90.  
  91. response.should redirect_to(
  92. :controller => 'projects',
  93. :action => 'show',
  94. :id => created_project.id
  95. )
  96. end
  97.  
  98. it "updates @project" do
  99. Project.stub(:find).with("5") { mock_model( Project, :name => 'New Project', :update_attributes => true) }
  100.  
  101. session[:user] = @user
  102. put :update, :id => "5"
  103. created_project = assigns[:project]
  104.  
  105. flash[:notice].should_not be_nil
  106. flash[:error].should be_nil
  107. created_project.name.should eq('New Project')
  108.  
  109. response.should redirect_to( projects_path )
  110. end
  111.  
  112. it "destroy @project" do
  113. Project.stub(:find).with("5") { mock_model( Project, :name => 'New Project', :destroy => true) }
  114.  
  115. session[:user] = @user
  116. delete :destroy, :id => "5"
  117.  
  118. flash[:notice].should_not be_nil
  119. flash[:error].should be_nil
  120.  
  121. response.should redirect_to( projects_path )
  122. end
  123.  
  124. describe "simulates error on" do
  125.  
  126. let(:project) { mock_model(Project) }
  127.  
  128. before do
  129. Project.stub(:find).with("5"){ mock_model( Project, :id => '5', :destroy => false, :update_attributes => false) }
  130. Project.stub :new => project
  131. project.stub :save! => false
  132. end
  133.  
  134. it "creates @project" do
  135. session[:user] = @user
  136. post 'create'
  137. created_project = assigns[:project]
  138.  
  139. flash[:notice].should be_nil
  140. flash[:error].should_not be_nil
  141.  
  142. response.should redirect_to(
  143. :controller => 'projects',
  144. :action => 'new'
  145. )
  146. end
  147.  
  148. it "updates @project" do
  149. session[:user] = @user
  150. put :update, :id => "5"
  151.  
  152. flash[:error].should_not be_nil
  153. flash[:notice].should be_nil
  154.  
  155. response.should redirect_to(
  156. :controller => 'projects',
  157. :action => 'show',
  158. :id => '5'
  159. )
  160. end
  161.  
  162. it "destroy @project" do
  163. session[:user] = @user
  164. delete :destroy, :id => "5"
  165.  
  166. flash[:error].should_not be_nil
  167. flash[:notice].should be_nil
  168.  
  169. response.should redirect_to( project_path(assigns[:project]) )
  170. end
  171. end
  172.  
  173. end
  174.  
  175. end
Add Comment
Please, Sign In to add comment