@bookmarks Feature: Create bookmarks of external works In order to have an archive full of bookmarks As a humble user I want to bookmark some works Scenario: A user can bookmark an external work using all the Creator's Tags fields (fandoms, rating, category, relationships, character) Given basic tags And mock websites with no content And I am logged in as "bookmarker" And I am on the new external work page When I fill in "URL" with "http://example.org/200" And I fill in "Creator" with "ao3testing" And I fill in "Title" with "Some External Work" And I fill in "Fandoms" with "Test Fandom" And I select "General Audiences" from "Rating" And I check "M/M" And I fill in "Relationships" with "Character 1/Character 2" And I fill in "Characters" with "Character 3, Character 4" And I press "Create" Then I should see "Bookmark was successfully created." And I should see "Some External Work" And I should see "ao3testing" And I should see "Test Fandom" And I should see "General Audiences" And I should see "M/M" And I should see "Character 1/Character 2" And I should see "Character 3" And I should see "Character 4" Scenario: A user must enter a fandom to create a bookmark on an external work Given basic tags And mock websites with no content And I am logged in as "first_bookmark_user" When I go to first_bookmark_user's bookmarks page Then I should not see "Stuck with You" When I follow "Bookmark External Work" And I fill in "Creator" with "Sidra" And I fill in "Title" with "Stuck with You" And I fill in "URL" with "http://example.org/200" And I press "Create" Then I should see "Fandom tag is required" When I fill in "Fandoms" with "Popslash" And I press "Create" And all indexing jobs have been run Then I should see "This work isn't hosted on the Archive" When I go to first_bookmark_user's bookmarks page Then I should see "Stuck with You" Scenario: A user must enter a valid URL to create a bookmark on an external work Given I am logged in as "first_bookmark_user" And the default ratings exist And mock websites with no content When I go to first_bookmark_user's bookmarks page Then I should not see "Stuck with You" When I follow "Bookmark External Work" And I fill in "Creator" with "Sidra" And I fill in "Title" with "Stuck with You" And I fill in "Fandoms" with "Popslash" And I press "Create" Then I should see "does not appear to be a valid URL" When I fill in "URL" with "http://example.org/200" And I press "Create" And all indexing jobs have been run Then I should see "This work isn't hosted on the Archive" When I go to first_bookmark_user's bookmarks page Then I should see "Stuck with You" # edit external bookmark When I follow "Edit" Then I should see "Editing bookmark for Stuck with You" When I fill in "Notes" with "I wish this author would join AO3" And I fill in "Your tags" with "WIP" And I press "Update" Then I should see "Bookmark was successfully updated" # delete external bookmark When I follow "Delete" Then I should see "Are you sure you want to delete" And I should see "Stuck with You" When I press "Yes, Delete Bookmark" Then I should see "Bookmark was successfully deleted." And I should not see "Stuck with You" Scenario Outline: A user can enter a valid non-ASCII URL to create a bookmark on an external work Given I am logged in as "first_bookmark_user" And the default ratings exist And all pages on the host "" return status 200 When I am on the new external work page And I fill in "URL" with "" And I fill in "Creator" with "foo" And I fill in "Title" with "" And I fill in "Fandoms" with "Popslash" And I press "Create" Then I should see "Bookmark was successfully created." Examples: | url | title | | https://example.com/ö | Ö | | https://example.com/á | á | | https://example.com/?utf8=✓ | check | | https://example.com/a,b,c | comma | Scenario: Bookmark External Work link should be available to logged in users, but not logged out users Given a fandom exists with name: "Testing BEW Button", canonical: true And I am logged in as "markie" with password "theunicorn" And I create the collection "Testing BEW Collection" When I go to markie's bookmarks page Then I should see "Bookmark External Work" When I go to the bookmarks page Then I should see "Bookmark External Work" When I go to the bookmarks in collection "Testing BEW Collection" Then I should see "Bookmark External Work" When I log out And I go to markie's bookmarks page Then I should not see "Bookmark External Work" When I go to the bookmarks page Then I should not see "Bookmark External Work" When I go to the bookmarks tagged "Testing BEW Button" Then I should not see "Bookmark External Work" When I go to the bookmarks in collection "Testing BEW Collection" Then I should not see "Bookmark External Work" Scenario: Users can see external works, admins can also see only duplicates Given basic tags And I am logged in # Bookmark the same URL twice And I bookmark the external work "External Title" And I bookmark the external work "Alternate Title" When I go to the external works page Then I should see "External Title" And I should see "Alternate Title" And I should not see "Show duplicates" When I go to the external works page with only duplicates Then I should see "Sorry, you don't have permission to access the page you were trying to reach." When I am logged in as an admin And I go to the external works page Then I should see "External Title" And I should see "Alternate Title" And I should see "Show duplicates (1)" When I follow "Show duplicates (1)" Then I should see "External Title" And I should not see "Alternate Title" @javascript Scenario: When using the bookmarklet on a URL that has already been bookmarked, the work information will be automatically filled in Given "first_user" has bookmarked an external work And I am logged in as "second_user" When I use the bookmarklet on a previously bookmarked URL And I press "Create" Then I should see "Bookmark was successfully created." And the work info for my new bookmark should match the original @javascript Scenario: When using the autocomplete to select a URL that has already been bookmarked, the work information will be automatically filled in Given "first_user" has bookmarked an external work And I am logged in as "second_user" When I go to the new external work page And I choose a previously bookmarked URL from the autocomplete And I press "Create" Then I should see "Bookmark was successfully created." And the work info for my new bookmark should match the original @javascript Scenario: When getting an error (e.g. because the title is blank) after using the autocomplete to select a previously-bookmarked URL, any changes you made to the work information are not overridden on the edit page Given "first_user" has bookmarked an external work And I am logged in as "second_user" When I go to the new external work page And I choose a previously bookmarked URL from the autocomplete And I fill in "Title" with "" And I fill in "Creator" with "Different Author" And I press "Create" Then I should see "Sorry! We couldn't save this bookmark because:" And I should see "Title can't be blank" And the field labeled "Title" should contain "" And the field labeled "Creator" should contain "Different Author" When I fill in "Title" with "Different Title" And I press "Create" Then I should see "Bookmark was successfully created." And the title and creator info for my new bookmark should vary from the original And the summary and tag info for my new bookmark should match the original @javascript Scenario: When using the autocomplete to select a URL that has already been bookmarked, any information you have entered will be overwritten Given "first_user" has bookmarked an external work And I am logged in as "second_user" When I go to the new external work page And I fill in "Creator" with "ao3testing" And I fill in "Title" with "Some External Work" And I fill in "Fandoms" with "Test Fandom" And I select "General Audiences" from "Rating" And I check "M/M" And I fill in "Relationships" with "Character 1/Character 2" And I fill in "Characters" with "Character 3, Character 4" And I choose a previously bookmarked URL from the autocomplete And I press "Create" Then I should see "Bookmark was successfully created." And the work info for my new bookmark should match the original Scenario: Bookmark of external work with HTTPS URL is saved as HTTPS Given I am logged in as "bookmarker1" And all pages on the host "https://example.com" return status 200 And I set up an external work And I fill in "URL" with "https://example.com/external_work" And I press "Create" Then I should see "Bookmark was successfully created" When I follow "A Work Not Posted To The AO3" Then I should see "This work isn't hosted on the Archive" And I should see a link to "https://example.com/external_work" within "h4"