127 lines
5.6 KiB
Gherkin
127 lines
5.6 KiB
Gherkin
|
|
@set-default-skin
|
||
|
|
Feature: Public skins
|
||
|
|
|
||
|
|
Scenario: A user's initial skin should be set to default
|
||
|
|
Given basic skins
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
When I am on skinner's preferences page
|
||
|
|
Then "Default" should be selected within "preference_skin_id"
|
||
|
|
|
||
|
|
Scenario: User can set a skin for a session and then unset it
|
||
|
|
Given basic skins
|
||
|
|
And the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
And the skin "public skin" is cached
|
||
|
|
And the skin "public skin" is in the chooser
|
||
|
|
When I am logged in as "skinner"
|
||
|
|
And I follow "public skin"
|
||
|
|
Then I should see "The skin public skin has been set. This will last for your current session."
|
||
|
|
And the page should have the cached skin "public skin"
|
||
|
|
When I follow "Default"
|
||
|
|
Then I should see "You are now using the default Archive skin again!"
|
||
|
|
And the page should not have the cached skin "public skin"
|
||
|
|
|
||
|
|
Scenario: A user can't set an uncached public skin for a session
|
||
|
|
Given the approved public skin "Uncached Public Skin"
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
When I set the skin "Uncached Public Skin" for this session
|
||
|
|
Then I should see "Sorry, but only certain skins can be used this way (for performance reasons). Please drop a support request if you'd like Uncached Public Skin to be added!"
|
||
|
|
|
||
|
|
Scenario: Only public skins should be on the main skins page
|
||
|
|
Given basic skins
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
And I create the skin "my skin"
|
||
|
|
When I am on the skins page
|
||
|
|
Then I should not see "my skin"
|
||
|
|
And I should see "Default"
|
||
|
|
|
||
|
|
Scenario: Newly created public skins should not appear on the main skins page until
|
||
|
|
approved and should be marked as not-yet-approved
|
||
|
|
Given I am logged in as "skinner"
|
||
|
|
And the unapproved public skin "public skin"
|
||
|
|
When I am on the skins page
|
||
|
|
Then I should not see "public skin"
|
||
|
|
When I am on skinner's skins page
|
||
|
|
Then I should see "public skin"
|
||
|
|
And I should see "(Not yet reviewed)"
|
||
|
|
And I should not see "(Approved)"
|
||
|
|
|
||
|
|
Scenario: Public skins should not be viewable by users until approved
|
||
|
|
Given the unapproved public skin "public skin"
|
||
|
|
And I log out
|
||
|
|
When I go to "public skin" skin page
|
||
|
|
Then I should see "Sorry, you don't have permission"
|
||
|
|
When I go to "public skin" edit skin page
|
||
|
|
Then I should see "Sorry, you don't have permission"
|
||
|
|
When I go to admin's skins page
|
||
|
|
Then I should see "I'm sorry, only an admin can"
|
||
|
|
|
||
|
|
Scenario: Users should not be able to edit their public approved skins
|
||
|
|
Given the approved public skin "public skin"
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
When I go to "public skin" edit skin page
|
||
|
|
Then I should see "Sorry, you don't have permission"
|
||
|
|
When I am on the skins page
|
||
|
|
Then I should see "public skin"
|
||
|
|
When I follow "Site Skins"
|
||
|
|
Then I should see "public skin"
|
||
|
|
And I should see "(Approved)"
|
||
|
|
And I should not see "Edit"
|
||
|
|
|
||
|
|
Scenario: Users should be able to use public approved skins created by others
|
||
|
|
Given the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
And I am logged in as "skinuser"
|
||
|
|
And I am on skinuser's preferences page
|
||
|
|
When I select "public skin" from "preference_skin_id"
|
||
|
|
And I submit
|
||
|
|
Then I should see "Your preferences were successfully updated."
|
||
|
|
When I am on skinuser's preferences page
|
||
|
|
And "public skin" should be selected within "preference_skin_id"
|
||
|
|
And I should see "#title {" in the page style
|
||
|
|
And I should see "text-decoration: blink;" in the page style
|
||
|
|
|
||
|
|
Scenario: Toggle between public site skins and public work skins
|
||
|
|
Given I am logged in as "skinner"
|
||
|
|
And I am on skinner's skins page
|
||
|
|
When I follow "Public Work Skins"
|
||
|
|
Then I should see "Public Work Skins" within "h2"
|
||
|
|
When I follow "Public Site Skins"
|
||
|
|
Then I should see "Public Site Skins" within "h2"
|
||
|
|
|
||
|
|
Scenario: Reverting to default skin when a custom skin is selected
|
||
|
|
Given the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
And I am on skinner's preferences page
|
||
|
|
And I select "public skin" from "preference_skin_id"
|
||
|
|
And I submit
|
||
|
|
When I am on skinner's preferences page
|
||
|
|
Then "public skin" should be selected within "preference_skin_id"
|
||
|
|
When I go to skinner's skins page
|
||
|
|
And I press "Revert to Default Skin"
|
||
|
|
When I am on skinner's preferences page
|
||
|
|
Then "Default" should be selected within "preference_skin_id"
|
||
|
|
|
||
|
|
Scenario: A logged out user only sees cached skins on the public skins page
|
||
|
|
Given the approved public skin "Uncached skin"
|
||
|
|
And the approved public skin "Cached skin"
|
||
|
|
And the skin "Cached skin" is cached
|
||
|
|
When I go to the public skins page
|
||
|
|
Then I should see "Cached skin"
|
||
|
|
And I should not see "Uncached skin"
|
||
|
|
|
||
|
|
Scenario: A user can preview a cached public site skin, and it will take the
|
||
|
|
user to the works page for a canonical tag with between 10 and 20 works
|
||
|
|
Given the approved public skin "Usable Skin"
|
||
|
|
And the skin "Usable Skin" is cached
|
||
|
|
And the canonical fandom "Dallas" with 2 works
|
||
|
|
And the canonical fandom "Major Crimes" with 11 works
|
||
|
|
And the canonical fandom "Rizzoli and Isles" with 21 works
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
When I go to the public skins page
|
||
|
|
And I follow "Preview"
|
||
|
|
Then I should be on the works tagged "Major Crimes"
|
||
|
|
And I should see "You are previewing the skin Usable Skin. This is a randomly chosen page."
|
||
|
|
And I should see "Go back or click any link to remove the skin"
|
||
|
|
And I should see "Tip: You can preview any archive page you want by tacking on '?site_skin=[skin_id]' like you can see in the url above."
|
||
|
|
When I follow "Return To Skin To Use"
|
||
|
|
Then I should be on "Usable Skin" skin page
|