Chris@1517: # Redmine - project management software Chris@1517: # Copyright (C) 2006-2014 Jean-Philippe Lang Chris@1517: # Chris@1517: # This program is free software; you can redistribute it and/or Chris@1517: # modify it under the terms of the GNU General Public License Chris@1517: # as published by the Free Software Foundation; either version 2 Chris@1517: # of the License, or (at your option) any later version. Chris@1517: # Chris@1517: # This program is distributed in the hope that it will be useful, Chris@1517: # but WITHOUT ANY WARRANTY; without even the implied warranty of Chris@1517: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Chris@1517: # GNU General Public License for more details. Chris@1517: # Chris@1517: # You should have received a copy of the GNU General Public License Chris@1517: # along with this program; if not, write to the Free Software Chris@1517: # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. Chris@1517: Chris@1517: require File.expand_path('../../test_helper', __FILE__) Chris@1517: Chris@1517: class PreviewsControllerTest < ActionController::TestCase Chris@1517: fixtures :projects, :trackers, :issue_statuses, :issues, Chris@1517: :enumerations, :users, :issue_categories, Chris@1517: :projects_trackers, Chris@1517: :roles, Chris@1517: :member_roles, Chris@1517: :members, Chris@1517: :enabled_modules, Chris@1517: :journals, :journal_details, Chris@1517: :news Chris@1517: Chris@1517: def test_preview_new_issue Chris@1517: @request.session[:user_id] = 2 Chris@1517: post :issue, :project_id => '1', :issue => {:description => 'Foo'} Chris@1517: assert_response :success Chris@1517: assert_template 'previews/issue' Chris@1517: assert_not_nil assigns(:description) Chris@1517: end Chris@1517: Chris@1517: def test_preview_issue_notes Chris@1517: @request.session[:user_id] = 2 Chris@1517: post :issue, :project_id => '1', :id => 1, Chris@1517: :issue => {:description => Issue.find(1).description, :notes => 'Foo'} Chris@1517: assert_response :success Chris@1517: assert_template 'previews/issue' Chris@1517: assert_not_nil assigns(:notes) Chris@1517: end Chris@1517: Chris@1517: def test_preview_journal_notes_for_update Chris@1517: @request.session[:user_id] = 2 Chris@1517: post :issue, :project_id => '1', :id => 1, :notes => 'Foo' Chris@1517: assert_response :success Chris@1517: assert_template 'previews/issue' Chris@1517: assert_not_nil assigns(:notes) Chris@1517: assert_tag :p, :content => 'Foo' Chris@1517: end Chris@1517: Chris@1517: def test_preview_issue_notes_should_support_links_to_existing_attachments Chris@1517: Attachment.generate!(:container => Issue.find(1), :filename => 'foo.bar') Chris@1517: @request.session[:user_id] = 2 Chris@1517: post :issue, :project_id => '1', :id => 1, :notes => 'attachment:foo.bar' Chris@1517: assert_response :success Chris@1517: assert_select 'a.attachment', :text => 'foo.bar' Chris@1517: end Chris@1517: Chris@1517: def test_preview_new_news Chris@1517: get :news, :project_id => 1, Chris@1517: :news => {:title => '', Chris@1517: :description => 'News description', Chris@1517: :summary => ''} Chris@1517: assert_response :success Chris@1517: assert_template 'common/_preview' Chris@1517: assert_tag :tag => 'fieldset', :attributes => { :class => 'preview' }, Chris@1517: :content => /News description/ Chris@1517: end Chris@1517: Chris@1517: def test_existing_new_news Chris@1517: get :news, :project_id => 1, :id => 2, Chris@1517: :news => {:title => '', Chris@1517: :description => 'News description', Chris@1517: :summary => ''} Chris@1517: assert_response :success Chris@1517: assert_template 'common/_preview' Chris@1517: assert_equal News.find(2), assigns(:previewed) Chris@1517: assert_not_nil assigns(:attachments) Chris@1517: Chris@1517: assert_tag :tag => 'fieldset', :attributes => { :class => 'preview' }, Chris@1517: :content => /News description/ Chris@1517: end Chris@1517: end