152 lines
6.5 KiB
Gherkin
152 lines
6.5 KiB
Gherkin
|
|
@set-default-skin
|
||
|
|
Feature: Admin manage skins
|
||
|
|
|
||
|
|
Scenario: Users should not be able to see the admin skins page
|
||
|
|
Given I am logged in as "skinner"
|
||
|
|
When I go to admin's skins page
|
||
|
|
Then I should see "I'm sorry, only an admin can look at that area"
|
||
|
|
|
||
|
|
Scenario: Admin can cache and uncache a public skin
|
||
|
|
Given basic skins
|
||
|
|
And the approved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Cache"
|
||
|
|
Then I press "Update"
|
||
|
|
And I should see "The following skins were updated: public skin"
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Uncache"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
|
||
|
|
Scenario: Admin can add a public skin to the chooser and then remove it
|
||
|
|
Given the approved public skin "public skin"
|
||
|
|
And the skin "public skin" is cached
|
||
|
|
When I am logged in as a "superadmin" admin
|
||
|
|
Then I should not see the skin chooser
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Chooser"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
And I should see the skin "public skin" in the skin chooser
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Not In Chooser"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
And I should not see the skin chooser
|
||
|
|
|
||
|
|
Scenario: An admin can reject and unreject a skin
|
||
|
|
Given the unapproved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to admin's skins page
|
||
|
|
And I check "make_rejected_public_skin"
|
||
|
|
And I submit
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
When I follow "Rejected Skins"
|
||
|
|
Then I should see "public skin"
|
||
|
|
When I check "make_unrejected_public_skin"
|
||
|
|
And I submit
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
When I follow "Rejected Skins"
|
||
|
|
Then I should not see "public skin"
|
||
|
|
|
||
|
|
Scenario: An admin can feature and unfeature skin
|
||
|
|
Given the approved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Feature"
|
||
|
|
And I submit
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I check "Unfeature"
|
||
|
|
And I submit
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
|
||
|
|
Scenario: Admins should be able to see public skins in the admin skins page
|
||
|
|
Given the unapproved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to admin's skins page
|
||
|
|
Then I should see "public skin" within "table#unapproved_skins"
|
||
|
|
|
||
|
|
Scenario: Admins should not be able to edit unapproved skins
|
||
|
|
Given the unapproved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to "public skin" skin page
|
||
|
|
Then I should not see "Edit"
|
||
|
|
And I should not see "Delete"
|
||
|
|
When I go to "public skin" edit skin page
|
||
|
|
Then I should see "Sorry, you don't have permission"
|
||
|
|
|
||
|
|
Scenario: Admins should be able to approve public skins
|
||
|
|
Given the unapproved public skin "public skin"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to admin's skins page
|
||
|
|
And I check "public skin"
|
||
|
|
And I submit
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
Then I should see "public skin" within "table#approved_skins"
|
||
|
|
|
||
|
|
Scenario: Admins should be able to edit but not delete public approved skins
|
||
|
|
Given the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to "public skin" skin page
|
||
|
|
Then I should see "Edit"
|
||
|
|
But I should not see "Delete"
|
||
|
|
When I follow "Edit"
|
||
|
|
And I fill in "CSS" with "#greeting.logged-in { text-decoration: blink;}"
|
||
|
|
And I fill in "Description" with "Blinky love (admin modified)"
|
||
|
|
And I submit
|
||
|
|
Then I should see an update confirmation message
|
||
|
|
And I should see "(admin modified)"
|
||
|
|
And I should see "#greeting.logged-in"
|
||
|
|
And I should not see "#title"
|
||
|
|
Then the cache of the skin on "public skin" should expire after I save the skin
|
||
|
|
|
||
|
|
Scenario: Admins should be able to unapprove public skins, which should also
|
||
|
|
remove them from preferences
|
||
|
|
Given "skinuser" is using the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
When I unapprove the skin "public skin"
|
||
|
|
Then I should see "The following skins were updated: public skin"
|
||
|
|
And I should see "public skin" within "table#unapproved_skins"
|
||
|
|
When I am logged in as "skinuser"
|
||
|
|
And I am on skinuser's preferences page
|
||
|
|
Then "Default" should be selected within "preference_skin_id"
|
||
|
|
And I should not see "#title"
|
||
|
|
And I should not see "text-decoration: blink;"
|
||
|
|
|
||
|
|
Scenario: Admin can change the default skin
|
||
|
|
Given basic skins
|
||
|
|
And the approved public skin "strange skin" with css "#title { text-decoration: underline;}"
|
||
|
|
And the approved public skin "public skin" with css "#title { text-decoration: blink;}"
|
||
|
|
And I am logged in as "skinner"
|
||
|
|
And the user "KnownUser" exists and is activated
|
||
|
|
When I am on skinner's preferences page
|
||
|
|
And I select "strange skin" from "preference_skin_id"
|
||
|
|
And I submit
|
||
|
|
Then I should see "{ text-decoration: underline; }" in the page style
|
||
|
|
When I am logged in as a "superadmin" admin
|
||
|
|
Then I should not see "{ text-decoration: blink; }" in the page style
|
||
|
|
When I follow "Approved Skins"
|
||
|
|
And I fill in "set_default" with "public skin"
|
||
|
|
And I press "Update"
|
||
|
|
Then I should see "Default skin changed to public skin"
|
||
|
|
And I should see "{ text-decoration: blink; }" in the page style
|
||
|
|
When I am logged in as "skinner"
|
||
|
|
Then I should see "{ text-decoration: underline; }" in the page style
|
||
|
|
# A user created before changing the default skin will still have the same skin
|
||
|
|
When I am logged in as "KnownUser"
|
||
|
|
Then I should not see "{ text-decoration: blink; }" in the page style
|
||
|
|
|
||
|
|
Scenario: Admin can edit a skin with the word "archive" in the title
|
||
|
|
Given the approved public skin "official archive skin" has reserved words in the title
|
||
|
|
And I am logged in as a "superadmin" admin
|
||
|
|
When I go to "official archive skin" skin page
|
||
|
|
And I follow "Edit"
|
||
|
|
And I fill in "CSS" with "#greeting.logged-in { text-decoration: blink;}"
|
||
|
|
And I fill in "Description" with "all your skin are belong to us"
|
||
|
|
And I submit
|
||
|
|
Then I should see an update confirmation message
|
||
|
|
And I should see "all your skin are belong to us"
|
||
|
|
And I should see "#greeting.logged-in"
|