mirror of
				https://github.com/redmine/redmine.git
				synced 2025-11-03 20:06:24 +01:00 
			
		
		
		
	git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@4509 e93f8b46-1217-0410-a6f0-8f06a7374b81
		
			
				
	
	
		
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
require File.expand_path('../../test_helper', __FILE__)
 | 
						|
 | 
						|
class GanttsControllerTest < ActionController::TestCase
 | 
						|
  fixtures :all
 | 
						|
 | 
						|
  context "#gantt" do
 | 
						|
    should "work" do
 | 
						|
      i2 = Issue.find(2)
 | 
						|
      i2.update_attribute(:due_date, 1.month.from_now)
 | 
						|
      
 | 
						|
      get :show, :project_id => 1
 | 
						|
      assert_response :success
 | 
						|
      assert_template 'show.html.erb'
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
      # Issue with start and due dates
 | 
						|
      i = Issue.find(1)
 | 
						|
      assert_not_nil i.due_date
 | 
						|
      assert_select "div a.issue", /##{i.id}/
 | 
						|
      # Issue with on a targeted version should not be in the events but loaded in the html
 | 
						|
      i = Issue.find(2)
 | 
						|
      assert_select "div a.issue", /##{i.id}/
 | 
						|
    end
 | 
						|
    
 | 
						|
    should "work without issue due dates" do
 | 
						|
      Issue.update_all("due_date = NULL")
 | 
						|
      
 | 
						|
      get :show, :project_id => 1
 | 
						|
      assert_response :success
 | 
						|
      assert_template 'show.html.erb'
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
    end
 | 
						|
    
 | 
						|
    should "work without issue and version due dates" do
 | 
						|
      Issue.update_all("due_date = NULL")
 | 
						|
      Version.update_all("effective_date = NULL")
 | 
						|
      
 | 
						|
      get :show, :project_id => 1
 | 
						|
      assert_response :success
 | 
						|
      assert_template 'show.html.erb'
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
    end
 | 
						|
 | 
						|
    should "work cross project" do
 | 
						|
      get :show
 | 
						|
      assert_response :success
 | 
						|
      assert_template 'show.html.erb'
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
      assert_not_nil assigns(:gantt).query
 | 
						|
      assert_nil assigns(:gantt).project
 | 
						|
    end
 | 
						|
 | 
						|
    should "not disclose private projects" do
 | 
						|
      get :show
 | 
						|
      assert_response :success
 | 
						|
      assert_template 'show.html.erb'
 | 
						|
      
 | 
						|
      assert_tag 'a', :content => /eCookbook/
 | 
						|
      # Root private project
 | 
						|
      assert_no_tag 'a', {:content => /OnlineStore/}
 | 
						|
      # Private children of a public project
 | 
						|
      assert_no_tag 'a', :content => /Private child of eCookbook/
 | 
						|
    end
 | 
						|
 | 
						|
    should "export to pdf" do
 | 
						|
      get :show, :project_id => 1, :format => 'pdf'
 | 
						|
      assert_response :success
 | 
						|
      assert_equal 'application/pdf', @response.content_type
 | 
						|
      assert @response.body.starts_with?('%PDF')
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
    end
 | 
						|
 | 
						|
    should "export to pdf cross project" do
 | 
						|
      get :show, :format => 'pdf'
 | 
						|
      assert_response :success
 | 
						|
      assert_equal 'application/pdf', @response.content_type
 | 
						|
      assert @response.body.starts_with?('%PDF')
 | 
						|
      assert_not_nil assigns(:gantt)
 | 
						|
    end
 | 
						|
    
 | 
						|
    should "export to png" do
 | 
						|
      get :show, :project_id => 1, :format => 'png'
 | 
						|
      assert_response :success
 | 
						|
      assert_equal 'image/png', @response.content_type
 | 
						|
    end if Object.const_defined?(:Magick)
 | 
						|
 | 
						|
  end
 | 
						|
end
 |