otwarchive-symphonyarchive/features/step_definitions/banner_steps.rb
2026-03-11 22:22:11 +00:00

158 lines
5.2 KiB
Ruby
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# encoding: UTF-8
### GIVEN
Given /^there are no banners$/ do
AdminBanner.delete_all
end
### WHEN
When /^an admin creates an?( active)?(?: "([^\"]*)")? banner$/ do |active, banner_type|
step %{I am logged in as a "communications" admin}
visit(new_admin_banner_path)
fill_in("admin_banner_content", with: "This is some banner text")
if banner_type.present?
if banner_type == "alert"
choose("admin_banner_banner_type_alert")
elsif banner_type == "event"
choose("admin_banner_banner_type_event")
else
choose("admin_banner_banner_type_")
end
end
check("admin_banner_active") unless active.blank?
click_button("Create Banner")
step %{I should see "Setting banner back on for all users. This may take some time."} unless active.blank?
end
When /^an admin deactivates the banner$/ do
step %{I am logged in as a "communications" admin}
visit(admin_banners_path)
step %{I follow "Edit"}
uncheck("admin_banner_active")
click_button("Update Banner")
step %{I should see "Banner successfully updated."}
end
When /^an admin edits the active banner$/ do
step %{I am logged in as a "communications" admin}
visit(admin_banners_path)
step %{I follow "Edit"}
fill_in("admin_banner_content", with: "This is some edited banner text")
click_button("Update Banner")
step %{I should see "Setting banner back on for all users. This may take some time."}
end
When /^an admin makes a minor edit to the active banner$/ do
step %{I am logged in as a "communications" admin}
visit(admin_banners_path)
step %{I follow "Edit"}
fill_in("admin_banner_content", with: "This is some banner text!")
check("admin_banner_minor_edit")
click_button("Update Banner")
step %{I should see "Updating banner for users who have not already dismissed it. This may take some time."}
end
When /^an admin creates a different active banner$/ do
step %{I am logged in as a "communications" admin}
visit(new_admin_banner_path)
fill_in("admin_banner_content", with: "This is new banner text")
check("admin_banner_active")
click_button("Create Banner")
step %{I should see "Setting banner back on for all users. This may take some time."}
end
When /^I turn off the banner$/ do
step %{I am logged in as "newname"}
step %{I am on newname's user page}
click_button("×")
end
### THEN
Then /^a logged-in user should see the(?: "([^\"]*)")? banner$/ do |banner_type|
step %{I am logged in as "ordinaryuser"}
visit(works_path)
if banner_type.present?
if banner_type == "alert"
page.should have_xpath("//div[@class=\"alert announcement group\"]")
elsif banner_type == "event"
page.should have_xpath("//div[@class=\"event announcement group\"]")
else
page.should have_xpath("//div[@class=\"announcement group\"]")
page.should_not have_xpath("//div[@class=\"alert announcement group\"]")
page.should_not have_xpath("//div[@class=\"event\"]")
end
end
step %{I should see "This is some banner text"}
end
Then /^a logged-out user should see the(?: "([^\"]*)")? banner$/ do |banner_type|
step "I am a visitor"
visit(works_path)
if banner_type.present?
if banner_type == "alert"
page.should have_xpath("//div[@class=\"alert announcement group\"]")
elsif banner_type == "event"
page.should have_xpath("//div[@class=\"event announcement group\"]")
else
page.should have_xpath("//div[@class=\"announcement group\"]")
page.should_not have_xpath("//div[@class=\"alert announcement group\"]")
page.should_not have_xpath("//div[@class=\"event announcement group\"]")
end
end
step %{I should see "This is some banner text"}
end
Then /^a logged-in user should see the edited active banner$/ do
step %{I am logged in as "ordinaryuser"}
visit(works_path)
step %{I should see "This is some edited banner text"}
end
Then /^a logged-out user should see the edited active banner$/ do
step "I am a visitor"
visit(works_path)
step %{I should see "This is some edited banner text"}
end
Then /^a logged-in user should not see a banner$/ do
step %{I am logged in as "ordinaryuser"}
page.should_not have_xpath("//div[@class=\"announcement group\"]")
end
Then /^a logged-out user should not see a banner$/ do
step "I am a visitor"
page.should_not have_xpath("//div[@class=\"announcement group\"]")
end
Then "I should see the first login banner" do
step %{I should see "It looks like you've just logged in to AO3 for the first time."}
end
Then "I should not see the first login banner" do
step %{I should not see "It looks like you've just logged in to AO3 for the first time."}
end
Then /^I should see the first login popup$/ do
step %{I should see "Here are some tips to help you get started."}
step %{I should see "To log in, locate the login link"}
end
Then /^I should see the banner with minor edits$/ do
step %{I should see "This is some banner text!"}
end
Then /^I should not see the banner with minor edits$/ do
step %{I should not see "This is some banner text!"}
end
Then /^the page should have the different banner$/ do
step %{I should see "This is new banner text"}
end
Then /^the page should not have a banner$/ do
page.should_not have_xpath("//div[@class=\"announcement group\"]")
end