Commit 8f08fbfd9f768b885c631bdc8bc8ad202c6827a0
1 parent
4be12be6
Exists in
master
and in
4 other branches
Tests for personal snippets added
Showing
8 changed files
with
209 additions
and
0 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,10 @@ |
| 1 | +Feature: Discover Snippets | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + And I have public "Personal snippet one" snippet | |
| 5 | + And I have private "Personal snippet private" snippet | |
| 6 | + | |
| 7 | + Scenario: I should see snippets | |
| 8 | + Given I visit snippets page | |
| 9 | + Then I should see "Personal snippet one" in snippets | |
| 10 | + And I should not see "Personal snippet private" in snippets | ... | ... |
| ... | ... | @@ -0,0 +1,28 @@ |
| 1 | +Feature: Snippets | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + And I have public "Personal snippet one" snippet | |
| 5 | + And I have private "Personal snippet private" snippet | |
| 6 | + | |
| 7 | + Scenario: I create new snippet | |
| 8 | + Given I visit new snippet page | |
| 9 | + And I submit new snippet "Personal snippet three" | |
| 10 | + Then I should see snippet "Personal snippet three" | |
| 11 | + | |
| 12 | + Scenario: I update "Personal snippet one" | |
| 13 | + Given I visit snippet page "Personal snippet one" | |
| 14 | + And I click link "Edit" | |
| 15 | + And I submit new title "Personal snippet new title" | |
| 16 | + Then I should see "Personal snippet new title" | |
| 17 | + | |
| 18 | + Scenario: Set "Personal snippet one" public | |
| 19 | + Given I visit snippet page "Personal snippet one" | |
| 20 | + And I click link "Edit" | |
| 21 | + And I uncheck "Private" checkbox | |
| 22 | + Then I should see "Personal snippet one" public | |
| 23 | + | |
| 24 | + Scenario: I destroy "Personal snippet one" | |
| 25 | + Given I visit snippet page "Personal snippet one" | |
| 26 | + And I click link "Edit" | |
| 27 | + And I click link "Destroy" | |
| 28 | + Then I should not see "Personal snippet one" in snippets | ... | ... |
| ... | ... | @@ -0,0 +1,22 @@ |
| 1 | +Feature: User Snippets | |
| 2 | + Background: | |
| 3 | + Given I sign in as a user | |
| 4 | + And I have public "Personal snippet one" snippet | |
| 5 | + And I have private "Personal snippet private" snippet | |
| 6 | + | |
| 7 | + Scenario: I should see all my snippets | |
| 8 | + Given I visit my snippets page | |
| 9 | + Then I should see "Personal snippet one" in snippets | |
| 10 | + And I should see "Personal snippet private" in snippets | |
| 11 | + | |
| 12 | + Scenario: I can see only my private snippets | |
| 13 | + Given I visit my snippets page | |
| 14 | + And I click "Private" filter | |
| 15 | + Then I should not see "Personal snippet one" in snippets | |
| 16 | + And I should see "Personal snippet private" in snippets | |
| 17 | + | |
| 18 | + Scenario: I can see only my public snippets | |
| 19 | + Given I visit my snippets page | |
| 20 | + And I click "Public" filter | |
| 21 | + Then I should see "Personal snippet one" in snippets | |
| 22 | + And I should not see "Personal snippet private" in snippets | ... | ... |
features/steps/shared/paths.rb
| ... | ... | @@ -267,6 +267,14 @@ module SharedPaths |
| 267 | 267 | visit project_snippets_path(project) |
| 268 | 268 | end |
| 269 | 269 | |
| 270 | + Given 'I visit snippets page' do | |
| 271 | + visit snippets_path | |
| 272 | + end | |
| 273 | + | |
| 274 | + Given 'I visit new snippet page' do | |
| 275 | + visit new_snippet_path | |
| 276 | + end | |
| 277 | + | |
| 270 | 278 | def root_ref |
| 271 | 279 | @project.repository.root_ref |
| 272 | 280 | end | ... | ... |
| ... | ... | @@ -0,0 +1,19 @@ |
| 1 | +module SharedProject | |
| 2 | + And 'I have public "Personal snippet one" snippet' do | |
| 3 | + create(:personal_snippet, | |
| 4 | + title: "Personal snippet one", | |
| 5 | + content: "Test content", | |
| 6 | + file_name: "snippet.rb", | |
| 7 | + private: false, | |
| 8 | + author: current_user) | |
| 9 | + end | |
| 10 | + | |
| 11 | + And 'I have private "Personal snippet private" snippet' do | |
| 12 | + create(:personal_snippet, | |
| 13 | + title: "Personal snippet private", | |
| 14 | + content: "Provate content", | |
| 15 | + file_name: "private_snippet.rb", | |
| 16 | + private: true, | |
| 17 | + author: current_user) | |
| 18 | + end | |
| 19 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +class DiscoverSnippets < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedProject | |
| 5 | + | |
| 6 | + Then 'I should see "Personal snippet one" in snippets' do | |
| 7 | + page.should have_content "Personal snippet one" | |
| 8 | + end | |
| 9 | + | |
| 10 | + And 'I should not see "Personal snippet private" in snippets' do | |
| 11 | + page.should_not have_content "Personal snippet private" | |
| 12 | + end | |
| 13 | + | |
| 14 | + def snippet | |
| 15 | + @snippet ||= PersonalSnippet.find_by_title!("Personal snippet one") | |
| 16 | + end | |
| 17 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,64 @@ |
| 1 | +class Snippets < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedProject | |
| 5 | + | |
| 6 | + Given 'I click link "Personal snippet one"' do | |
| 7 | + click_link "Personal snippet one" | |
| 8 | + end | |
| 9 | + | |
| 10 | + And 'I should not see "Personal snippet one" in snippets' do | |
| 11 | + page.should_not have_content "Personal snippet one" | |
| 12 | + end | |
| 13 | + | |
| 14 | + And 'I click link "Edit"' do | |
| 15 | + within ".page_title" do | |
| 16 | + click_link "Edit" | |
| 17 | + end | |
| 18 | + end | |
| 19 | + | |
| 20 | + And 'I click link "Destroy"' do | |
| 21 | + click_link "Destroy" | |
| 22 | + end | |
| 23 | + | |
| 24 | + And 'I submit new snippet "Personal snippet three"' do | |
| 25 | + fill_in "personal_snippet_title", :with => "Personal snippet three" | |
| 26 | + select "forever", :from => "personal_snippet_expires_at" | |
| 27 | + fill_in "personal_snippet_file_name", :with => "my_snippet.rb" | |
| 28 | + within('.file-editor') do | |
| 29 | + find(:xpath, "//input[@id='personal_snippet_content']").set 'Content of snippet three' | |
| 30 | + end | |
| 31 | + click_button "Save" | |
| 32 | + end | |
| 33 | + | |
| 34 | + Then 'I should see snippet "Personal snippet three"' do | |
| 35 | + page.should have_content "Personal snippet three" | |
| 36 | + page.should have_content "Content of snippet three" | |
| 37 | + end | |
| 38 | + | |
| 39 | + And 'I submit new title "Personal snippet new title"' do | |
| 40 | + fill_in "personal_snippet_title", :with => "Personal snippet new title" | |
| 41 | + click_button "Save" | |
| 42 | + end | |
| 43 | + | |
| 44 | + Then 'I should see "Personal snippet new title"' do | |
| 45 | + page.should have_content "Personal snippet new title" | |
| 46 | + end | |
| 47 | + | |
| 48 | + And 'I uncheck "Private" checkbox' do | |
| 49 | + find(:xpath, "//input[@id='personal_snippet_private']").set true | |
| 50 | + click_button "Save" | |
| 51 | + end | |
| 52 | + | |
| 53 | + Then 'I should see "Personal snippet one" public' do | |
| 54 | + page.should have_selector(:xpath, "//i[@class='public-snippet']") | |
| 55 | + end | |
| 56 | + | |
| 57 | + And 'I visit snippet page "Personal snippet one"' do | |
| 58 | + visit snippet_path(snippet) | |
| 59 | + end | |
| 60 | + | |
| 61 | + def snippet | |
| 62 | + @snippet ||= PersonalSnippet.find_by_title!("Personal snippet one") | |
| 63 | + end | |
| 64 | +end | ... | ... |
| ... | ... | @@ -0,0 +1,41 @@ |
| 1 | +class UserSnippets < Spinach::FeatureSteps | |
| 2 | + include SharedAuthentication | |
| 3 | + include SharedPaths | |
| 4 | + include SharedProject | |
| 5 | + | |
| 6 | + Given 'I visit my snippets page' do | |
| 7 | + visit user_snippets_path(current_user) | |
| 8 | + end | |
| 9 | + | |
| 10 | + Then 'I should see "Personal snippet one" in snippets' do | |
| 11 | + page.should have_content "Personal snippet one" | |
| 12 | + end | |
| 13 | + | |
| 14 | + And 'I should see "Personal snippet private" in snippets' do | |
| 15 | + page.should have_content "Personal snippet private" | |
| 16 | + end | |
| 17 | + | |
| 18 | + Then 'I should not see "Personal snippet one" in snippets' do | |
| 19 | + page.should_not have_content "Personal snippet one" | |
| 20 | + end | |
| 21 | + | |
| 22 | + And 'I should not see "Personal snippet private" in snippets' do | |
| 23 | + page.should_not have_content "Personal snippet private" | |
| 24 | + end | |
| 25 | + | |
| 26 | + Given 'I click "Public" filter' do | |
| 27 | + within('.nav-stacked') do | |
| 28 | + click_link "Public" | |
| 29 | + end | |
| 30 | + end | |
| 31 | + | |
| 32 | + Given 'I click "Private" filter' do | |
| 33 | + within('.nav-stacked') do | |
| 34 | + click_link "Private" | |
| 35 | + end | |
| 36 | + end | |
| 37 | + | |
| 38 | + def snippet | |
| 39 | + @snippet ||= PersonalSnippet.find_by_title!("Personal snippet one") | |
| 40 | + end | |
| 41 | +end | ... | ... |