| 
									
										
										
										
											2010-12-12 23:24:34 +00:00
										 |  |  | require File.expand_path('../../test_helper', __FILE__) | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | class GanttsControllerTest < ActionController::TestCase | 
					
						
							|  |  |  |   fixtures :all | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   context "#gantt" do | 
					
						
							|  |  |  |     should "work" do | 
					
						
							| 
									
										
										
										
											2010-09-10 03:09:02 +00:00
										 |  |  |       i2 = Issue.find(2) | 
					
						
							|  |  |  |       i2.update_attribute(:due_date, 1.month.from_now) | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  |       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 | 
					
						
							| 
									
										
										
										
											2010-09-10 03:09:02 +00:00
										 |  |  |       assert_select "div a.issue", /##{i.id}/ | 
					
						
							|  |  |  |       # Issue with on a targeted version should not be in the events but loaded in the html | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  |       i = Issue.find(2) | 
					
						
							| 
									
										
										
										
											2010-09-10 03:09:02 +00:00
										 |  |  |       assert_select "div a.issue", /##{i.id}/ | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-10-22 20:32:05 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											2010-10-22 22:13:39 +00:00
										 |  |  |     should "work without issue due dates" do | 
					
						
							| 
									
										
										
										
											2010-10-22 20:32:05 +00:00
										 |  |  |       Issue.update_all("due_date = NULL") | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2010-10-22 22:13:39 +00:00
										 |  |  |       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") | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2010-10-22 20:32:05 +00:00
										 |  |  |       get :show, :project_id => 1
 | 
					
						
							|  |  |  |       assert_response :success | 
					
						
							|  |  |  |       assert_template 'show.html.erb' | 
					
						
							|  |  |  |       assert_not_nil assigns(:gantt) | 
					
						
							|  |  |  |     end | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     should "work cross project" do | 
					
						
							|  |  |  |       get :show | 
					
						
							|  |  |  |       assert_response :success | 
					
						
							|  |  |  |       assert_template 'show.html.erb' | 
					
						
							|  |  |  |       assert_not_nil assigns(:gantt) | 
					
						
							| 
									
										
										
										
											2010-09-10 03:09:02 +00:00
										 |  |  |       assert_not_nil assigns(:gantt).query | 
					
						
							|  |  |  |       assert_nil assigns(:gantt).project | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  |     end | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-21 14:57:53 +00:00
										 |  |  |     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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-28 15:54:46 +00:00
										 |  |  |     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 |