annotate test/functional/gantts_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 cbb26bc654de
children 433d4f72a19b
rev   line source
Chris@119 1 require File.expand_path('../../test_helper', __FILE__)
Chris@0 2
Chris@0 3 class GanttsControllerTest < ActionController::TestCase
Chris@909 4 fixtures :projects, :trackers, :issue_statuses, :issues,
Chris@909 5 :enumerations, :users, :issue_categories,
Chris@909 6 :projects_trackers,
Chris@909 7 :roles,
Chris@909 8 :member_roles,
Chris@909 9 :members,
Chris@909 10 :enabled_modules,
Chris@909 11 :workflows,
Chris@909 12 :versions
Chris@0 13
Chris@0 14 context "#gantt" do
Chris@0 15 should "work" do
chris@22 16 i2 = Issue.find(2)
chris@22 17 i2.update_attribute(:due_date, 1.month.from_now)
Chris@909 18
Chris@0 19 get :show, :project_id => 1
Chris@0 20 assert_response :success
Chris@909 21 assert_template 'gantts/show'
Chris@0 22 assert_not_nil assigns(:gantt)
Chris@0 23 # Issue with start and due dates
Chris@0 24 i = Issue.find(1)
Chris@0 25 assert_not_nil i.due_date
chris@22 26 assert_select "div a.issue", /##{i.id}/
chris@22 27 # Issue with on a targeted version should not be in the events but loaded in the html
Chris@0 28 i = Issue.find(2)
chris@22 29 assert_select "div a.issue", /##{i.id}/
Chris@0 30 end
Chris@909 31
chris@37 32 should "work without issue due dates" do
chris@37 33 Issue.update_all("due_date = NULL")
Chris@909 34
chris@37 35 get :show, :project_id => 1
chris@37 36 assert_response :success
Chris@909 37 assert_template 'gantts/show'
chris@37 38 assert_not_nil assigns(:gantt)
chris@37 39 end
Chris@909 40
chris@37 41 should "work without issue and version due dates" do
chris@37 42 Issue.update_all("due_date = NULL")
chris@37 43 Version.update_all("effective_date = NULL")
Chris@909 44
chris@37 45 get :show, :project_id => 1
chris@37 46 assert_response :success
Chris@909 47 assert_template 'gantts/show'
chris@37 48 assert_not_nil assigns(:gantt)
chris@37 49 end
Chris@0 50
Chris@0 51 should "work cross project" do
Chris@0 52 get :show
Chris@0 53 assert_response :success
Chris@909 54 assert_template 'gantts/show'
Chris@0 55 assert_not_nil assigns(:gantt)
chris@22 56 assert_not_nil assigns(:gantt).query
chris@22 57 assert_nil assigns(:gantt).project
Chris@0 58 end
Chris@0 59
Chris@119 60 should "not disclose private projects" do
Chris@119 61 get :show
Chris@119 62 assert_response :success
Chris@909 63 assert_template 'gantts/show'
Chris@909 64
Chris@119 65 assert_tag 'a', :content => /eCookbook/
Chris@119 66 # Root private project
Chris@119 67 assert_no_tag 'a', {:content => /OnlineStore/}
Chris@119 68 # Private children of a public project
Chris@119 69 assert_no_tag 'a', :content => /Private child of eCookbook/
Chris@119 70 end
Chris@119 71
Chris@0 72 should "export to pdf" do
Chris@0 73 get :show, :project_id => 1, :format => 'pdf'
Chris@0 74 assert_response :success
Chris@0 75 assert_equal 'application/pdf', @response.content_type
Chris@0 76 assert @response.body.starts_with?('%PDF')
Chris@0 77 assert_not_nil assigns(:gantt)
Chris@0 78 end
Chris@0 79
Chris@0 80 should "export to pdf cross project" do
Chris@0 81 get :show, :format => 'pdf'
Chris@0 82 assert_response :success
Chris@0 83 assert_equal 'application/pdf', @response.content_type
Chris@0 84 assert @response.body.starts_with?('%PDF')
Chris@0 85 assert_not_nil assigns(:gantt)
Chris@0 86 end
Chris@909 87
Chris@0 88 should "export to png" do
Chris@0 89 get :show, :project_id => 1, :format => 'png'
Chris@0 90 assert_response :success
Chris@0 91 assert_equal 'image/png', @response.content_type
Chris@0 92 end if Object.const_defined?(:Magick)
Chris@0 93
Chris@0 94 end
Chris@0 95 end