Commit 16db51ec authored by Dmitriy Zaporozhets's avatar Dmitriy Zaporozhets

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
parents e9e79fdf d79348ab
...@@ -6,6 +6,7 @@ v 7.11.0 (unreleased) ...@@ -6,6 +6,7 @@ v 7.11.0 (unreleased)
- Don't allow a merge request to be merged when its title starts with "WIP". - Don't allow a merge request to be merged when its title starts with "WIP".
- Add a page title to every page. - Add a page title to every page.
- Allow primary email to be set to an email that you've already added. - 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. - Get Gitorious importer to work again.
- Fix clone URL field and X11 Primary selection (Dmitry Medvinsky) - Fix clone URL field and X11 Primary selection (Dmitry Medvinsky)
- Ignore invalid lines in .gitmodules - Ignore invalid lines in .gitmodules
......
...@@ -6,6 +6,8 @@ module WikiHelper ...@@ -6,6 +6,8 @@ module WikiHelper
case wiki_page case wiki_page
when Symbol when Symbol
wiki_page wiki_page
when String
wiki_page
else else
wiki_page.slug wiki_page.slug
end end
......
...@@ -44,3 +44,9 @@ Feature: Search ...@@ -44,3 +44,9 @@ Feature: Search
Then I should see "Foo" link in the search results Then I should see "Foo" link in the search results
And I should not see "Bar" 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
...@@ -159,6 +159,11 @@ class Spinach::Features::ProjectWiki < Spinach::FeatureSteps ...@@ -159,6 +159,11 @@ class Spinach::Features::ProjectWiki < Spinach::FeatureSteps
page.should have_content('History for') page.should have_content('History for')
end end
step 'I search for Wiki content' do
fill_in "Search in this project", with: "wiki_content"
click_button "Search"
end
def wiki def wiki
@project_wiki = ProjectWiki.new(project, current_user) @project_wiki = ProjectWiki.new(project, current_user)
end end
......
...@@ -18,6 +18,11 @@ class Spinach::Features::Search < Spinach::FeatureSteps ...@@ -18,6 +18,11 @@ class Spinach::Features::Search < Spinach::FeatureSteps
click_button "Search" click_button "Search"
end end
step 'I search for "Wiki content"' do
fill_in "dashboard_search", with: "content"
click_button "Search"
end
step 'I click "Issues" link' do step 'I click "Issues" link' do
within '.search-filter' do within '.search-filter' do
click_link 'Issues' click_link 'Issues'
...@@ -36,6 +41,12 @@ class Spinach::Features::Search < Spinach::FeatureSteps ...@@ -36,6 +41,12 @@ class Spinach::Features::Search < Spinach::FeatureSteps
end end
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 step 'I should see "Shop" project link' do
page.should have_link "Shop" page.should have_link "Shop"
end end
...@@ -66,4 +77,13 @@ class Spinach::Features::Search < Spinach::FeatureSteps ...@@ -66,4 +77,13 @@ class Spinach::Features::Search < Spinach::FeatureSteps
step 'I should not see "Bar" link in the search results' do step 'I should not see "Bar" link in the search results' do
find(:css, '.search-results').should_not have_link 'Bar' find(:css, '.search-results').should_not have_link 'Bar'
end 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 end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment