From 3976630c32a35d589b94fa563a4cc2773b84a204 Mon Sep 17 00:00:00 2001 From: Dmitriy Zaporozhets Date: Mon, 4 May 2015 08:53:21 +0000 Subject: [PATCH] Merge branch 'fix-wiki-search' into 'master' Fix Error 500 when searching Wiki pages If a Wiki page turns up a hit in the search results, an error will occur: ``` Completed 500 Internal Server Error in 836ms NoMethodError - undefined method `slug' for "test.markdown":String: app/helpers/wiki_helper.rb:10:in `namespace_project_wiki_path' app/views/search/results/_wiki_blob.html.haml:4:in `_app_views_search_results__wiki_blob_html_haml___2752621660395393333_70299911622700' actionview (4.1.9) lib/action_view/template.rb:145:in `block in render' activesupport (4.1.9) lib/active_support/notifications.rb:161:in `instrument' actionview (4.1.9) lib/action_view/template.rb:339:in `instrument' actionview (4.1.9) lib/action_view/template.rb:143:in `render' ``` An unhandled String containing the name of the Wiki page would be provided to the URL path generator. This MR handles that case. Closes #1547 See merge request !592 --- CHANGELOG | 6 ++++++ app/helpers/wiki_helper.rb | 2 ++ features/search.feature | 6 ++++++ features/steps/project/wiki.rb | 5 +++++ features/steps/search.rb | 20 ++++++++++++++++++++ 5 files changed, 39 insertions(+) diff --git a/CHANGELOG b/CHANGELOG index 94deedf952..f290da5809 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,12 @@ Please view this file on the master branch, on stable branches it's out of date. v 7.11.0 (unreleased) + - Make Reply-To config apply to change e-mail confirmation and other Devise notifications (Stan Hu) + - Add application setting to restrict user signups to e-mail domains (Stan Hu) + - Don't allow a merge request to be merged when its title starts with "WIP". + - Add a page title to every page. + - Allow primary email to be set to an email that you've already added. + - Fix Error 500 when searching Wiki pages (Stan Hu) - Get Gitorious importer to work again. - Fix clone URL field and X11 Primary selection (Dmitry Medvinsky) - Ignore invalid lines in .gitmodules diff --git a/app/helpers/wiki_helper.rb b/app/helpers/wiki_helper.rb index a3bc64c010..f8a96516e6 100644 --- a/app/helpers/wiki_helper.rb +++ b/app/helpers/wiki_helper.rb @@ -6,6 +6,8 @@ module WikiHelper case wiki_page when Symbol wiki_page + when String + wiki_page else wiki_page.slug end diff --git a/features/search.feature b/features/search.feature index def21e0092..1608e82467 100644 --- a/features/search.feature +++ b/features/search.feature @@ -44,3 +44,9 @@ Feature: Search Then I should see "Foo" link in the search results And I should not see "Bar" link in the search results + Scenario: I should see Wiki blobs + And project has Wiki content + When I click project "Shop" link + And I search for "Wiki content" + And I click "Wiki" link + Then I should see "test_wiki" link in the search results diff --git a/features/steps/project/wiki.rb b/features/steps/project/wiki.rb index bb93e582a1..717132da45 100644 --- a/features/steps/project/wiki.rb +++ b/features/steps/project/wiki.rb @@ -159,6 +159,11 @@ class Spinach::Features::ProjectWiki < Spinach::FeatureSteps page.should have_content('History for') end + step 'I search for Wiki content' do + fill_in "Search in this project", with: "wiki_content" + click_button "Search" + end + def wiki @project_wiki = ProjectWiki.new(project, current_user) end diff --git a/features/steps/search.rb b/features/steps/search.rb index 6f0e038c4d..8197cd410a 100644 --- a/features/steps/search.rb +++ b/features/steps/search.rb @@ -18,6 +18,11 @@ class Spinach::Features::Search < Spinach::FeatureSteps click_button "Search" end + step 'I search for "Wiki content"' do + fill_in "dashboard_search", with: "content" + click_button "Search" + end + step 'I click "Issues" link' do within '.search-filter' do click_link 'Issues' @@ -36,6 +41,12 @@ class Spinach::Features::Search < Spinach::FeatureSteps end end + step 'I click "Wiki" link' do + within '.search-filter' do + click_link 'Wiki' + end + end + step 'I should see "Shop" project link' do page.should have_link "Shop" end @@ -66,4 +77,13 @@ class Spinach::Features::Search < Spinach::FeatureSteps step 'I should not see "Bar" link in the search results' do find(:css, '.search-results').should_not have_link 'Bar' end + + step 'I should see "test_wiki" link in the search results' do + find(:css, '.search-results').should have_link 'test_wiki.md' + 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 end