Commit 8f08fbfd9f768b885c631bdc8bc8ad202c6827a0

Authored by Andrew8xx8
1 parent 4be12be6

Tests for personal snippets added

features/snippets/discover_snippets.feature 0 → 100644
... ... @@ -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
... ...
features/snippets/snippets.feature 0 → 100644
... ... @@ -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
... ...
features/snippets/user_snippets.feature 0 → 100644
... ... @@ -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
... ...
features/steps/shared/snippet.rb 0 → 100644
... ... @@ -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
... ...
features/steps/snippets/discover_snippets.rb 0 → 100644
... ... @@ -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
... ...
features/steps/snippets/snippets.rb 0 → 100644
... ... @@ -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
... ...
features/steps/snippets/user_snippets.rb 0 → 100644
... ... @@ -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
... ...