replace shoulda context "#subjects" at GanttHelperTest

git-svn-id: http://svn.redmine.org/redmine/trunk@12790 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Toshi MARUYAMA 2014-02-04 10:06:46 +00:00
parent 3ad3c691cc
commit a464abefdd

View File

@ -109,132 +109,119 @@ class Redmine::Helpers::GanttHelperTest < ActionView::TestCase
assert_equal 3, @gantt.number_of_rows_on_project(@project) assert_equal 3, @gantt.number_of_rows_on_project(@project)
end end
# TODO: more of an integration test def setup_subjects
context "#subjects" do create_gantt
setup do @project.enabled_module_names = [:issue_tracking]
create_gantt @tracker = Tracker.generate!
@project.enabled_module_names = [:issue_tracking] @project.trackers << @tracker
@tracker = Tracker.generate! @version = Version.generate!(:effective_date => (today + 7), :sharing => 'none')
@project.trackers << @tracker @project.versions << @version
@version = Version.generate!(:effective_date => (today + 7), :sharing => 'none') @issue = Issue.generate!(:fixed_version => @version,
@project.versions << @version
@issue = Issue.generate!(:fixed_version => @version,
:subject => "gantt#line_for_project", :subject => "gantt#line_for_project",
:tracker => @tracker, :tracker => @tracker,
:project => @project, :project => @project,
:done_ratio => 30, :done_ratio => 30,
:start_date => (today - 1), :start_date => (today - 1),
:due_date => (today + 7)) :due_date => (today + 7))
@project.issues << @issue @project.issues << @issue
end end
private :setup_subjects
context "project" do # TODO: more of an integration test
should "be rendered" do test "#subjects project should be rendered" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.project-name a", /#{@project.name}/ @output_buffer = @gantt.subjects
end assert_select "div.project-name a", /#{@project.name}/
end
should "have an indent of 4" do test "#subjects project should have an indent of 4" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.project-name[style*=left:4px]" @output_buffer = @gantt.subjects
end assert_select "div.project-name[style*=left:4px]"
end end
context "version" do test "#subjects version should be rendered" do
should "be rendered" do setup_subjects
@output_buffer = @gantt.subjects @output_buffer = @gantt.subjects
assert_select "div.version-name a", /#{@version.name}/ assert_select "div.version-name a", /#{@version.name}/
end end
should "be indented 24 (one level)" do test "#subjects version should be indented 24 (one level)" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.version-name[style*=left:24px]" @output_buffer = @gantt.subjects
end assert_select "div.version-name[style*=left:24px]"
end
context "without assigned issues" do test "#subjects version without assigned issues should not be rendered" do
setup do setup_subjects
@version = Version.generate!(:effective_date => (today + 14), @version = Version.generate!(:effective_date => (today + 14),
:sharing => 'none', :sharing => 'none',
:name => 'empty_version') :name => 'empty_version')
@project.versions << @version @project.versions << @version
end @output_buffer = @gantt.subjects
assert_select "div.version-name a", :text => /#{@version.name}/, :count => 0
end
should "not be rendered" do test "#subjects issue should be rendered" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.version-name a", :text => /#{@version.name}/, :count => 0 @output_buffer = @gantt.subjects
end assert_select "div.issue-subject", /#{@issue.subject}/
end end
end
context "issue" do test "#subjects issue should be indented 44 (two levels)" do
should "be rendered" do setup_subjects
@output_buffer = @gantt.subjects @output_buffer = @gantt.subjects
assert_select "div.issue-subject", /#{@issue.subject}/ assert_select "div.issue-subject[style*=left:44px]"
end end
should "be indented 44 (two levels)" do test "#subjects issue assigned to a shared version of another project should be rendered" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.issue-subject[style*=left:44px]" p = Project.generate!
end p.enabled_module_names = [:issue_tracking]
@shared_version = Version.generate!(:sharing => 'system')
context "assigned to a shared version of another project" do p.versions << @shared_version
setup do # Reassign the issue to a shared version of another project
p = Project.generate! @issue = Issue.generate!(:fixed_version => @shared_version,
p.enabled_module_names = [:issue_tracking]
@shared_version = Version.generate!(:sharing => 'system')
p.versions << @shared_version
# Reassign the issue to a shared version of another project
@issue = Issue.generate!(:fixed_version => @shared_version,
:subject => "gantt#assigned_to_shared_version", :subject => "gantt#assigned_to_shared_version",
:tracker => @tracker, :tracker => @tracker,
:project => @project, :project => @project,
:done_ratio => 30, :done_ratio => 30,
:start_date => (today - 1), :start_date => (today - 1),
:due_date => (today + 7)) :due_date => (today + 7))
@project.issues << @issue @project.issues << @issue
end @output_buffer = @gantt.subjects
assert_select "div.issue-subject", /#{@issue.subject}/
end
should "be rendered" do test "#subjects issue with subtasks should indent subtasks" do
@output_buffer = @gantt.subjects setup_subjects
assert_select "div.issue-subject", /#{@issue.subject}/ attrs = {:project => @project, :tracker => @tracker, :fixed_version => @version}
end @child1 = Issue.generate!(
end
context "with subtasks" do
setup do
attrs = {:project => @project, :tracker => @tracker, :fixed_version => @version}
@child1 = Issue.generate!(
attrs.merge(:subject => 'child1', attrs.merge(:subject => 'child1',
:parent_issue_id => @issue.id, :parent_issue_id => @issue.id,
:start_date => (today - 1), :start_date => (today - 1),
:due_date => (today + 2)) :due_date => (today + 2))
) )
@child2 = Issue.generate!( @child2 = Issue.generate!(
attrs.merge(:subject => 'child2', attrs.merge(:subject => 'child2',
:parent_issue_id => @issue.id, :parent_issue_id => @issue.id,
:start_date => today, :start_date => today,
:due_date => (today + 7)) :due_date => (today + 7))
) )
@grandchild = Issue.generate!( @grandchild = Issue.generate!(
attrs.merge(:subject => 'grandchild', attrs.merge(:subject => 'grandchild',
:parent_issue_id => @child1.id, :parent_issue_id => @child1.id,
:start_date => (today - 1), :start_date => (today - 1),
:due_date => (today + 2)) :due_date => (today + 2))
) )
end @output_buffer = @gantt.subjects
# parent task 44px
should "indent subtasks" do assert_select "div.issue-subject[style*=left:44px]", /#{@issue.subject}/
@output_buffer = @gantt.subjects # children 64px
# parent task 44px assert_select "div.issue-subject[style*=left:64px]", /child1/
assert_select "div.issue-subject[style*=left:44px]", /#{@issue.subject}/ assert_select "div.issue-subject[style*=left:64px]", /child2/
# children 64px # grandchild 84px
assert_select "div.issue-subject[style*=left:64px]", /child1/ assert_select "div.issue-subject[style*=left:84px]", /grandchild/, @output_buffer
assert_select "div.issue-subject[style*=left:64px]", /child2/
# grandchild 84px
assert_select "div.issue-subject[style*=left:84px]", /grandchild/, @output_buffer
end
end
end
end end
context "#lines" do context "#lines" do