summaryrefslogtreecommitdiffstats
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/functional/auto_completes_controller_test.rb75
-rw-r--r--test/system/inline_autocomplete_test.rb24
2 files changed, 97 insertions, 2 deletions
diff --git a/test/functional/auto_completes_controller_test.rb b/test/functional/auto_completes_controller_test.rb
index bc1f2eba1..f51ff5bf5 100644
--- a/test/functional/auto_completes_controller_test.rb
+++ b/test/functional/auto_completes_controller_test.rb
@@ -28,7 +28,8 @@ class AutoCompletesControllerTest < Redmine::ControllerTest
:member_roles,
:members,
:enabled_modules,
- :journals, :journal_details
+ :journals, :journal_details,
+ :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
def test_issues_should_not_be_case_sensitive
get(
@@ -196,4 +197,76 @@ class AutoCompletesControllerTest < Redmine::ControllerTest
assert_equal 10, json.count
assert_equal Issue.last.id, json.first['id'].to_i
end
+
+ def test_wiki_pages_should_not_be_case_sensitive
+ get(
+ :wiki_pages,
+ params: {
+ project_id: 'ecookbook',
+ q: 'pAgE'
+ }
+ )
+ assert_response :success
+ assert_include 'Page_with_an_inline_image', response.body
+ end
+
+ def test_wiki_pages_should_return_json
+ get(
+ :wiki_pages,
+ params: {
+ project_id: 'ecookbook',
+ q: 'Page_with_an_inline_image'
+ }
+ )
+ assert_response :success
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_kind_of Array, json
+ issue = json.first
+ assert_kind_of Hash, issue
+ assert_equal 4, issue['id']
+ assert_equal 'Page_with_an_inline_image', issue['value']
+ assert_equal 'Page_with_an_inline_image', issue['label']
+ end
+
+ def test_wiki_pages_without_view_wiki_pages_permission_should_not_return_pages
+ Role.anonymous.remove_permission! :view_wiki_pages
+ get :wiki_pages, params: { project_id: 'ecookbook', q: 'Page_with_an_inline_image' }
+
+ assert_response :success
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_equal 0, json.count
+ end
+
+ def test_wiki_pages_without_project_id_params_should_not_return_pages
+ get :wiki_pages, params: { project_id: '' }
+ assert_response :success
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_equal 0, json.count
+ end
+
+ def test_wiki_pages_should_return_json_content_type_response
+ get(
+ :wiki_pages,
+ params: {
+ project_id: 'ecookbook',
+ q: 'Page_with_an_inline_image'
+ }
+ )
+ assert_response :success
+ assert_include 'application/json', response.headers['Content-Type']
+ end
+
+ def test_wiki_pages_without_q_params_should_return_last_10_pages
+ # There are 8 pages generated by fixtures
+ # and we need three more to test the 10 limit
+ wiki = Wiki.find_by(project: Project.first)
+ 3.times do |n|
+ WikiPage.create(wiki: wiki, title: "test#{n}")
+ end
+ get :wiki_pages, params: { project_id: 'ecookbook' }
+ assert_response :success
+ json = ActiveSupport::JSON.decode(response.body)
+ assert_equal 10, json.count
+ assert_equal wiki.pages[-2].id, json.first['id'].to_i
+ end
end
diff --git a/test/system/inline_autocomplete_test.rb b/test/system/inline_autocomplete_test.rb
index 7d557f4c6..f3c7daef6 100644
--- a/test/system/inline_autocomplete_test.rb
+++ b/test/system/inline_autocomplete_test.rb
@@ -24,7 +24,7 @@ class InlineAutocompleteSystemTest < ApplicationSystemTestCase
:trackers, :projects_trackers, :enabled_modules, :issue_statuses, :issues,
:enumerations, :custom_fields, :custom_values, :custom_fields_trackers,
:watchers, :journals, :journal_details, :versions,
- :workflows
+ :workflows, :wikis, :wiki_pages, :wiki_contents, :wiki_content_versions
def test_inline_autocomplete_for_issues
log_user('jsmith', 'jsmith')
@@ -129,4 +129,26 @@ class InlineAutocompleteSystemTest < ApplicationSystemTestCase
page.has_css?('.tribute-container li', minimum: 1)
end
+
+ def test_inline_autocompletion_of_wiki_page_links
+ log_user('jsmith', 'jsmith')
+ visit 'issues/new'
+
+ fill_in 'Description', :with => '[['
+
+ within('.tribute-container') do
+ assert page.has_text? 'Child_1_1'
+ assert page.has_text? 'Page_with_sections'
+ end
+
+ fill_in 'Description', :with => '[[page'
+ within('.tribute-container') do
+ assert page.has_text? 'Page_with_sections'
+ assert page.has_text? 'Another_page'
+ assert_not page.has_text? 'Child_1_1'
+
+ first('li').click
+ end
+ assert_equal '[[Page_with_sections]] ', find('#issue_description').value
+ end
end