Guest User

Untitled

a guest
Apr 12th, 2018
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.72 KB | None | 0 0
  1. require File.join(File.dirname(__FILE__), "helper")
  2.  
  3. Story "View Home Page", %{
  4. As a user
  5. I want to view my home page
  6. So that I can get a birds eye view of the system
  7. }, :type => RailsStory do
  8.  
  9. Scenario "Publisher with no videos" do
  10. Given "a company named", "No Videos" do |name|
  11. @company = Company.create! :name => name
  12. end
  13.  
  14. And "a user named", "novideos" do |login|
  15. @user = create_user login
  16. end
  17.  
  18. And "the user belongs to", "company", "No Videos" do |klass, company_name|
  19. @user.update_attribute :company, klass.classify.constantize.find_by_name(company_name)
  20. end
  21.  
  22. And "logged in as", "novideos" do |login|
  23. post "/sessions", :login => login, :password => "test"
  24. end
  25.  
  26. When "visiting", "/" do |page|
  27. get_via_redirect page
  28. end
  29.  
  30. Then "viewer should see", "companies/show_initial" do |template|
  31. response.should render_template(template)
  32. end
  33. end
  34.  
  35. Scenario "Root user" do
  36. Given "a user named", "admin"
  37. And "a company named", "Company1"
  38. And "a company named", "Company2"
  39.  
  40. And "the user has the role", "root" do |role|
  41. @user.update_attribute :role, role
  42. end
  43. And "logged in as", "admin"
  44.  
  45. When "visiting", "/"
  46.  
  47. Then "viewer should see", "main/root_home"
  48. And "page should show company named", "Company1" do |name|
  49. response.should have_text(/#{name}/)
  50. end
  51. And "page should show company named", "Company2"
  52. end
  53.  
  54. Scenario "Publisher with one video" do
  55. Given "a user named", "publisher"
  56. And "a company named", "Has Videos"
  57. And "the user belongs to", "company", "Has Videos"
  58. And "# published videos belonging to company", "Has Videos", 2 do |company_name, num_videos|
  59. create_videos_for(Company.find_by_name(company_name), num_videos)
  60. end
  61. And "logged in as", "publisher"
  62.  
  63. When "visiting", "/"
  64. Then "viewer should see", "main/user_home"
  65. Then "page should show video titled", "Has Videos 1" do |title|
  66. response.should have_text(/#{title}/)
  67. end
  68. Then "page should show video titled", "Has Videos 2"
  69. end
  70.  
  71. Scenario "Reseller user" do
  72. Given "a user named", "reseller"
  73. And "a reseller named", "Big Bad Reseller" do |name|
  74. @company = Reseller.create! :name => name
  75. end
  76. And "the user belongs to", "reseller", "Big Bad Reseller"
  77. And "a company named", "Resold"
  78. And "the company belongs to reseller", "Big Bad Reseller" do |company_name|
  79. @company.update_attribute :reseller, Reseller.find_by_name(company_name)
  80. end
  81. And "# published videos belonging to company", "Resold", 1
  82. And "a company named", "Indy"
  83. And "# published videos belonging to company", "Indy", 1
  84. And "logged in as", "reseller"
  85.  
  86. When "visiting", "/"
  87.  
  88. Then "viewer should see", "main/reseller_home"
  89. And "page should show company named", "Resold"
  90. And "page should not show company named", "Indy" do |name|
  91. response.should_not have_text(/#{name}/)
  92. end
  93. And "page should show video titled", "Resold 1"
  94. Then "page should not show video titled", "Indy 1" do |title|
  95. response.should_not have_text(/#{title}/)
  96. end
  97. end
  98. end
  99.  
  100. def create_user(login)
  101. user = User.create! :login => login, :password => "test", :password_confirmation => "test",
  102. :email => "#{login}@twistage.com"
  103. user.activate
  104. user
  105. end
  106.  
  107. def create_videos_for(company, num_videos)
  108. num_videos.times do |i|
  109. v = Video.new :company => company, :site => company.root_site, :title => "#{company.name} #{i + 1}"
  110. v.status = "complete"
  111. v.publisher_name = "#{company.nickname}-publisher"
  112. v.save!
  113. end
  114. end
Add Comment
Please, Sign In to add comment