mirror of
https://github.com/redmine/redmine.git
synced 2025-11-13 16:56:00 +01:00
114 lines
3.1 KiB
Ruby
114 lines
3.1 KiB
Ruby
|
|
# frozen_string_literal: true
|
||
|
|
|
||
|
|
require_relative '../application_system_test_case'
|
||
|
|
|
||
|
|
class GanttSystemTest < ApplicationSystemTestCase
|
||
|
|
setup do
|
||
|
|
log_user('jsmith', 'jsmith')
|
||
|
|
end
|
||
|
|
|
||
|
|
test 'columns display toggle shows status priority assignee updated' do
|
||
|
|
visit_gantt
|
||
|
|
expand_options
|
||
|
|
|
||
|
|
assert_no_selector('td#status', visible: :visible)
|
||
|
|
assert_no_selector('td#priority', visible: :visible)
|
||
|
|
assert_no_selector('td#assigned_to', visible: :visible)
|
||
|
|
assert_no_selector('td#updated_on', visible: :visible)
|
||
|
|
|
||
|
|
find('#draw_selected_columns').check
|
||
|
|
|
||
|
|
assert_selector('div.gantt_subjects_container.draw_selected_columns')
|
||
|
|
assert_selector('td#status', visible: :visible)
|
||
|
|
assert_selector('td#priority', visible: :visible)
|
||
|
|
assert_selector('td#assigned_to', visible: :visible)
|
||
|
|
assert_selector('td#updated_on', visible: :visible)
|
||
|
|
end
|
||
|
|
|
||
|
|
test 'related issues toggle displays and hides relation arrows' do
|
||
|
|
visit_gantt
|
||
|
|
expand_options
|
||
|
|
|
||
|
|
assert_selector('#gantt_draw_area path', minimum: 1)
|
||
|
|
|
||
|
|
find('#draw_relations').uncheck
|
||
|
|
|
||
|
|
assert_no_selector('#gantt_draw_area path')
|
||
|
|
|
||
|
|
find('#draw_relations').check
|
||
|
|
|
||
|
|
assert_selector('#gantt_draw_area path', minimum: 1)
|
||
|
|
end
|
||
|
|
|
||
|
|
test 'progress line toggle draws zigzag line' do
|
||
|
|
visit_gantt
|
||
|
|
expand_options
|
||
|
|
|
||
|
|
find('#draw_relations').uncheck
|
||
|
|
assert_no_selector('#gantt_draw_area path')
|
||
|
|
|
||
|
|
find('#draw_progress_line').check
|
||
|
|
|
||
|
|
assert_selector('#gantt_draw_area path', minimum: 1)
|
||
|
|
end
|
||
|
|
|
||
|
|
test 'selected columns can be resized by dragging' do
|
||
|
|
visit_gantt
|
||
|
|
expand_options
|
||
|
|
|
||
|
|
find('#draw_selected_columns').check
|
||
|
|
|
||
|
|
width_before = column_width('status')
|
||
|
|
drag_column_resizer('status', 80)
|
||
|
|
width_after = column_width('status')
|
||
|
|
|
||
|
|
assert width_after > width_before
|
||
|
|
end
|
||
|
|
|
||
|
|
test 'context menu and tooltip interactions' do
|
||
|
|
visit_gantt
|
||
|
|
|
||
|
|
issue_subject = find('div.issue-subject.hascontextmenu', match: :first)
|
||
|
|
issue_reference = issue_subject.find('a.issue', match: :first).text
|
||
|
|
task_area = find('div.tooltip.hascontextmenu', match: :first, visible: :all)
|
||
|
|
|
||
|
|
task_area.hover
|
||
|
|
assert_selector('div.tooltip span.tip', text: issue_reference, visible: :visible)
|
||
|
|
|
||
|
|
issue_subject.right_click
|
||
|
|
|
||
|
|
assert_selector('#context-menu', visible: :visible)
|
||
|
|
assert_selector('#context-menu a.icon-edit', visible: :visible)
|
||
|
|
|
||
|
|
page.send_keys(:escape)
|
||
|
|
|
||
|
|
task_area = find('div.tooltip.hascontextmenu', match: :first, visible: :all)
|
||
|
|
task_area.right_click
|
||
|
|
|
||
|
|
assert_selector('#context-menu', visible: :visible)
|
||
|
|
assert_selector('#context-menu a.icon-edit', visible: :visible)
|
||
|
|
|
||
|
|
page.send_keys(:escape)
|
||
|
|
end
|
||
|
|
|
||
|
|
private
|
||
|
|
|
||
|
|
def visit_gantt
|
||
|
|
visit '/projects/ecookbook/issues/gantt'
|
||
|
|
end
|
||
|
|
|
||
|
|
def expand_options
|
||
|
|
legend = find('fieldset#options legend')
|
||
|
|
legend.click if legend[:class].to_s.include?('collapsed')
|
||
|
|
end
|
||
|
|
|
||
|
|
def column_width(id)
|
||
|
|
page.evaluate_script("document.querySelector('td##{id}').offsetWidth")
|
||
|
|
end
|
||
|
|
|
||
|
|
def drag_column_resizer(column_id, distance)
|
||
|
|
handle = find("td##{column_id} .ui-resizable-e", visible: :visible)
|
||
|
|
page.driver.browser.action.click_and_hold(handle.native).move_by(distance, 0).release.perform
|
||
|
|
end
|
||
|
|
end
|