- # frozen_string_literal: true
-
- # Redmine - project management software
- # Copyright (C) 2006- Jean-Philippe Lang
- #
- # This program is free software; you can redistribute it and/or
- # modify it under the terms of the GNU General Public License
- # as published by the Free Software Foundation; either version 2
- # of the License, or (at your option) any later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
- require_relative '../test_helper'
-
- class PreviewsControllerTest < Redmine::ControllerTest
- fixtures :projects, :trackers, :issue_statuses, :issues,
- :enumerations, :users, :issue_categories,
- :projects_trackers,
- :roles,
- :member_roles,
- :members,
- :enabled_modules,
- :journals, :journal_details,
- :news
-
- def test_preview_new_issue_description
- @request.session[:user_id] = 2
- post(
- :issue,
- :params => {
- :project_id => '1',
- :text => 'Foo'
- }
- )
- assert_response :success
- assert_select 'p', :text => 'Foo'
- end
-
- def test_preview_issue_description
- @request.session[:user_id] = 2
- post(
- :issue,
- :params => {
- :project_id => '1',
- :issue_id => 1,
- :text => 'Unable to print recipes'
- }
- )
- assert_response :success
-
- assert_select 'p', :text => 'Unable to print recipes'
- end
-
- def test_preview_issue_notes
- @request.session[:user_id] = 2
- post(
- :issue,
- :params => {
- :project_id => '1',
- :id => 1,
- :text => 'Foo'
- }
- )
- assert_response :success
- assert_select 'p', :text => 'Foo'
- end
-
- def test_preview_issue_notes_should_support_links_to_existing_attachments
- Attachment.generate!(:container => Issue.find(1), :filename => 'foo.bar')
- @request.session[:user_id] = 2
- post(
- :issue,
- :params => {
- :project_id => '1',
- :issue_id => 1,
- :field => 'notes',
- :text => 'attachment:foo.bar'
- }
- )
- assert_response :success
- assert_select 'a.attachment', :text => 'foo.bar'
- end
-
- def test_preview_issue_notes_should_show_thumbnail_of_file_immidiately_after_attachment
- attachment = Attachment.generate!(filename: 'foo.png', digest: Redmine::Utils.random_hex(32))
- attachment.update(container: nil)
-
- @request.session[:user_id] = 2
- post(
- :issue,
- params: {
- project_id: '1',
- issue_id: 1,
- field: 'notes',
- text: '{{thumbnail(foo.png)}}',
- attachments: {'1': { token: attachment.token }}
- }
- )
- assert_response :success
- assert_select 'a.thumbnail[title=?]', 'foo.png'
- end
-
- def test_preview_new_news
- get(
- :news,
- :params => {
- :project_id => 1,
- :text => 'News description',
- }
- )
- assert_response :success
- assert_select 'p', :text => /News description/
- end
-
- def test_preview_existing_news
- get(
- :news,
- :params => {
- :project_id => 1,
- :id => 2,
- :text => 'News description'
- }
- )
- assert_response :success
- assert_select 'p', :text => /News description/
- end
- end
|