annotate test/functional/journals_controller_test.rb @ 1082:997f6d7738f7 bug_531

In repo controller entry action, show the page for the file even if it's binary (so user still has access to history etc links). This makes it possible to use the entry action as the default when a file is clicked on
author Chris Cannam <chris.cannam@soundsoftware.ac.uk>
date Thu, 22 Nov 2012 18:04:17 +0000
parents cbce1fd3b1b7
children 433d4f72a19b
rev   line source
Chris@245 1 # Redmine - project management software
Chris@245 2 # Copyright (C) 2006-2011 Jean-Philippe Lang
Chris@0 3 #
Chris@0 4 # This program is free software; you can redistribute it and/or
Chris@0 5 # modify it under the terms of the GNU General Public License
Chris@0 6 # as published by the Free Software Foundation; either version 2
Chris@0 7 # of the License, or (at your option) any later version.
Chris@441 8 #
Chris@0 9 # This program is distributed in the hope that it will be useful,
Chris@0 10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
Chris@0 11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
Chris@0 12 # GNU General Public License for more details.
Chris@441 13 #
Chris@0 14 # You should have received a copy of the GNU General Public License
Chris@0 15 # along with this program; if not, write to the Free Software
Chris@0 16 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Chris@0 17
Chris@119 18 require File.expand_path('../../test_helper', __FILE__)
Chris@0 19 require 'journals_controller'
Chris@0 20
Chris@0 21 # Re-raise errors caught by the controller.
Chris@0 22 class JournalsController; def rescue_action(e) raise e end; end
Chris@0 23
Chris@0 24 class JournalsControllerTest < ActionController::TestCase
Chris@441 25 fixtures :projects, :users, :members, :member_roles, :roles, :issues, :journals, :journal_details, :enabled_modules,
Chris@441 26 :trackers, :issue_statuses, :enumerations, :custom_fields, :custom_values, :custom_fields_projects
Chris@441 27
Chris@0 28 def setup
Chris@0 29 @controller = JournalsController.new
Chris@0 30 @request = ActionController::TestRequest.new
Chris@0 31 @response = ActionController::TestResponse.new
Chris@0 32 User.current = nil
Chris@0 33 end
Chris@441 34
Chris@14 35 def test_index
Chris@14 36 get :index, :project_id => 1
Chris@14 37 assert_response :success
Chris@14 38 assert_not_nil assigns(:journals)
Chris@14 39 assert_equal 'application/atom+xml', @response.content_type
Chris@14 40 end
Chris@441 41
Chris@245 42 def test_diff
Chris@245 43 get :diff, :id => 3, :detail_id => 4
Chris@245 44 assert_response :success
Chris@245 45 assert_template 'diff'
Chris@441 46
Chris@245 47 assert_tag 'span',
Chris@245 48 :attributes => {:class => 'diff_out'},
Chris@245 49 :content => /removed/
Chris@245 50 assert_tag 'span',
Chris@245 51 :attributes => {:class => 'diff_in'},
Chris@245 52 :content => /added/
Chris@245 53 end
Chris@441 54
Chris@14 55 def test_reply_to_issue
Chris@14 56 @request.session[:user_id] = 2
Chris@119 57 get :new, :id => 6
Chris@14 58 assert_response :success
Chris@14 59 assert_select_rjs :show, "update"
Chris@14 60 end
Chris@441 61
Chris@119 62 def test_reply_to_issue_without_permission
Chris@119 63 @request.session[:user_id] = 7
Chris@119 64 get :new, :id => 6
Chris@119 65 assert_response 403
Chris@119 66 end
Chris@14 67
Chris@14 68 def test_reply_to_note
Chris@14 69 @request.session[:user_id] = 2
Chris@119 70 get :new, :id => 6, :journal_id => 4
Chris@14 71 assert_response :success
Chris@14 72 assert_select_rjs :show, "update"
Chris@14 73 end
Chris@14 74
Chris@0 75 def test_get_edit
Chris@0 76 @request.session[:user_id] = 1
Chris@0 77 xhr :get, :edit, :id => 2
Chris@0 78 assert_response :success
Chris@0 79 assert_select_rjs :insert, :after, 'journal-2-notes' do
Chris@0 80 assert_select 'form[id=journal-2-form]'
Chris@0 81 assert_select 'textarea'
Chris@0 82 end
Chris@0 83 end
Chris@441 84
Chris@0 85 def test_post_edit
Chris@0 86 @request.session[:user_id] = 1
Chris@0 87 xhr :post, :edit, :id => 2, :notes => 'Updated notes'
Chris@0 88 assert_response :success
Chris@0 89 assert_select_rjs :replace, 'journal-2-notes'
Chris@0 90 assert_equal 'Updated notes', Journal.find(2).notes
Chris@0 91 end
Chris@441 92
Chris@0 93 def test_post_edit_with_empty_notes
Chris@0 94 @request.session[:user_id] = 1
Chris@0 95 xhr :post, :edit, :id => 2, :notes => ''
Chris@0 96 assert_response :success
Chris@0 97 assert_select_rjs :remove, 'change-2'
Chris@0 98 assert_nil Journal.find_by_id(2)
Chris@0 99 end
Chris@0 100 end