Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require File.join(File.dirname(__FILE__), "helper")
- Story "View Home Page", %{
- As a user
- I want to view my home page
- So that I can get a birds eye view of the system
- }, :type => RailsStory do
- Scenario "Publisher with no videos" do
- Given "a company named", "No Videos" do |name|
- @company = Company.create! :name => name
- end
- And "a user named", "novideos" do |login|
- @user = create_user login
- end
- And "the user belongs to", "company", "No Videos" do |klass, company_name|
- @user.update_attribute :company, klass.classify.constantize.find_by_name(company_name)
- end
- And "logged in as", "novideos" do |login|
- post "/sessions", :login => login, :password => "test"
- end
- When "visiting", "/" do |page|
- get_via_redirect page
- end
- Then "viewer should see", "companies/show_initial" do |template|
- response.should render_template(template)
- end
- end
- Scenario "Root user" do
- Given "a user named", "admin"
- And "a company named", "Company1"
- And "a company named", "Company2"
- And "the user has the role", "root" do |role|
- @user.update_attribute :role, role
- end
- And "logged in as", "admin"
- When "visiting", "/"
- Then "viewer should see", "main/root_home"
- And "page should show company named", "Company1" do |name|
- response.should have_text(/#{name}/)
- end
- And "page should show company named", "Company2"
- end
- Scenario "Publisher with one video" do
- Given "a user named", "publisher"
- And "a company named", "Has Videos"
- And "the user belongs to", "company", "Has Videos"
- And "# published videos belonging to company", "Has Videos", 2 do |company_name, num_videos|
- create_videos_for(Company.find_by_name(company_name), num_videos)
- end
- And "logged in as", "publisher"
- When "visiting", "/"
- Then "viewer should see", "main/user_home"
- Then "page should show video titled", "Has Videos 1" do |title|
- response.should have_text(/#{title}/)
- end
- Then "page should show video titled", "Has Videos 2"
- end
- Scenario "Reseller user" do
- Given "a user named", "reseller"
- And "a reseller named", "Big Bad Reseller" do |name|
- @company = Reseller.create! :name => name
- end
- And "the user belongs to", "reseller", "Big Bad Reseller"
- And "a company named", "Resold"
- And "the company belongs to reseller", "Big Bad Reseller" do |company_name|
- @company.update_attribute :reseller, Reseller.find_by_name(company_name)
- end
- And "# published videos belonging to company", "Resold", 1
- And "a company named", "Indy"
- And "# published videos belonging to company", "Indy", 1
- And "logged in as", "reseller"
- When "visiting", "/"
- Then "viewer should see", "main/reseller_home"
- And "page should show company named", "Resold"
- And "page should not show company named", "Indy" do |name|
- response.should_not have_text(/#{name}/)
- end
- And "page should show video titled", "Resold 1"
- Then "page should not show video titled", "Indy 1" do |title|
- response.should_not have_text(/#{title}/)
- end
- end
- end
- def create_user(login)
- user = User.create! :login => login, :password => "test", :password_confirmation => "test",
- :email => "#{login}@twistage.com"
- user.activate
- user
- end
- def create_videos_for(company, num_videos)
- num_videos.times do |i|
- v = Video.new :company => company, :site => company.root_site, :title => "#{company.name} #{i + 1}"
- v.status = "complete"
- v.publisher_name = "#{company.nickname}-publisher"
- v.save!
- end
- end
Add Comment
Please, Sign In to add comment