summaryrefslogtreecommitdiff
path: root/features/steps/search.rb
blob: 16c4a5ab2e46175fd5669e5bc08d9d52a9aa077d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
class Spinach::Features::Search < Spinach::FeatureSteps
  include SharedAuthentication
  include SharedPaths
  include SharedProject

  step 'I search for "Sho"' do
    fill_in "dashboard_search", with: "Sho"
    click_button "Search"
  end

  step 'I search for "Foo"' do
    fill_in "dashboard_search", with: "Foo"
    find('.btn-search').trigger('click')
  end

  step 'I search for "rspec"' do
    fill_in "dashboard_search", with: "rspec"
    find('.btn-search').trigger('click')
  end

  step 'I search for "rspec" on project page' do
    fill_in "search", with: "rspec"
    click_button "Go"
  end

  step 'I search for "Wiki content"' do
    fill_in "dashboard_search", with: "content"
    find('.btn-search').trigger('click')
  end

  step 'I click "Issues" link' do
    page.within '.search-filter' do
      click_link 'Issues'
    end
  end

  step 'I click project "Shop" link' do
    find('.js-search-project-dropdown').trigger('click')
    page.within '.project-filter' do
      click_link project.name_with_namespace
    end
  end

  step 'I click "Merge requests" link' do
    page.within '.search-filter' do
      click_link 'Merge requests'
    end
  end

  step 'I click "Milestones" link' do
    page.within '.search-filter' do
      click_link 'Milestones'
    end
  end

  step 'I click "Wiki" link' do
    page.within '.search-filter' do
      click_link 'Wiki'
    end
  end

  step 'I should see "Shop" project link' do
    expect(page).to have_link "Shop"
  end

  step 'I should see code results for project "Shop"' do
    page.within('.results') do
      page.should have_content 'Update capybara, rspec-rails, poltergeist to recent versions'
    end
  end

  step 'I search for "Contibuting"' do
    fill_in "dashboard_search", with: "Contibuting"
    click_button "Search"
  end

  step 'project has issues' do
    create(:issue, title: "Foo", project: project)
    create(:issue, title: "Bar", project: project)
  end

  step 'project has merge requests' do
    create(:merge_request, title: "Foo", source_project: project, target_project: project)
    create(:merge_request, :simple, title: "Bar", source_project: project, target_project: project)
  end

  step 'project has milestones' do
    create(:milestone, title: "Foo", project: project)
    create(:milestone, title: "Bar", project: project)
  end

  step 'I should see "Foo" link in the search results' do
    page.within('.results') do
      find(:css, '.search-results').should have_link 'Foo'
    end
  end

  step 'I should not see "Bar" link in the search results' do
    expect(find(:css, '.search-results')).not_to have_link 'Bar'
  end

  step 'I should see "test_wiki" link in the search results' do
    page.within('.results') do
      expect(find(:css, '.search-results')).to have_link 'test_wiki'
    end
  end

  step 'project has Wiki content' do
    @wiki = ::ProjectWiki.new(project, current_user)
    @wiki.create_page("test_wiki", "Some Wiki content", :markdown, "first commit")
  end

  step 'project "Shop" is public' do
    project.update_attributes(visibility_level: Project::PUBLIC)
  end
end