summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--app/services/search/project_service.rb8
-rw-r--r--app/views/search/_project_results.html.haml7
-rw-r--r--features/project/source/search_code.feature10
-rw-r--r--features/steps/project/search_code.rb12
-rw-r--r--features/steps/shared/project.rb7
5 files changed, 35 insertions, 9 deletions
diff --git a/app/services/search/project_service.rb b/app/services/search/project_service.rb
index 493dee95f90..8aac18840e4 100644
--- a/app/services/search/project_service.rb
+++ b/app/services/search/project_service.rb
@@ -12,7 +12,13 @@ module Search
return result unless query.present?
if params[:search_code].present?
- blobs = project.repository.search_files(query, params[:repository_ref]) unless project.empty_repo?
+ if !@project.empty_repo?
+ blobs = project.repository.search_files(query,
+ params[:repository_ref])
+ else
+ blobs = Array.new
+ end
+
blobs = Kaminari.paginate_array(blobs).page(params[:page]).per(20)
result[:blobs] = blobs
result[:total_results] = blobs.total_count
diff --git a/app/views/search/_project_results.html.haml b/app/views/search/_project_results.html.haml
index af3b97879c7..1fc1bf19560 100644
--- a/app/views/search/_project_results.html.haml
+++ b/app/views/search/_project_results.html.haml
@@ -9,8 +9,11 @@
.search_results
- if params[:search_code].present?
.blob-results
- = render partial: "search/results/blob", collection: @search_results[:blobs]
- = paginate @search_results[:blobs], theme: 'gitlab'
+ - if !@search_results[:blobs].empty?
+ = render partial: "search/results/blob", collection: @search_results[:blobs]
+ = paginate @search_results[:blobs], theme: 'gitlab'
+ - else
+ %span We couldn't find any matching code
- else
%ul.bordered-list
= render partial: "search/results/merge_request", collection: @search_results[:merge_requests]
diff --git a/features/project/source/search_code.feature b/features/project/source/search_code.feature
index ad8a650d895..93b326696d0 100644
--- a/features/project/source/search_code.feature
+++ b/features/project/source/search_code.feature
@@ -1,9 +1,15 @@
Feature: Project Search code
Background:
Given I sign in as a user
- And I own project "Shop"
- Given I visit project source page
Scenario: Search for term "coffee"
+ Given I own project "Shop"
+ And I visit project source page
When I search for term "coffee"
Then I should see files from repository containing "coffee"
+
+ Scenario: Search on empty project
+ Given I own an empty project
+ And I visit my project's home page
+ When I search for term "coffee"
+ Then I should see empty result
diff --git a/features/steps/project/search_code.rb b/features/steps/project/search_code.rb
index 8d130a8ed0d..affa7d3b43b 100644
--- a/features/steps/project/search_code.rb
+++ b/features/steps/project/search_code.rb
@@ -3,14 +3,18 @@ class ProjectSearchCode < Spinach::FeatureSteps
include SharedProject
include SharedPaths
- When 'I search for term "coffee"' do
+ step 'I search for term "coffee"' do
fill_in "search", with: "coffee"
click_button "Go"
click_link 'Repository Code'
end
- Then 'I should see files from repository containing "coffee"' do
- page.should have_content "coffee"
- page.should have_content " CONTRIBUTING.md"
+ step 'I should see files from repository containing "coffee"' do
+ page.should have_content 'coffee'
+ page.should have_content 'CONTRIBUTING.md'
+ end
+
+ step 'I should see empty result' do
+ page.should have_content "We couldn't find any matching code"
end
end
diff --git a/features/steps/shared/project.rb b/features/steps/shared/project.rb
index 655840f447d..c131976614f 100644
--- a/features/steps/shared/project.rb
+++ b/features/steps/shared/project.rb
@@ -21,6 +21,13 @@ module SharedProject
@project.team << [@user, :master]
end
+ # Create an empty project without caring about the name
+ And 'I own an empty project' do
+ @project = create(:empty_project,
+ name: 'Empty Project', namespace: @user.namespace)
+ @project.team << [@user, :master]
+ end
+
And 'project "Shop" has push event' do
@project = Project.find_by(name: "Shop")