mediawiki-extensions-Revisi.../tests/browser/features/support/pages/diff_page.rb
Tobias Gritschacher 722242a600 Refactor history and pointers browsertests
- Applied the Given-When-Then rule
- Created alias for the "diff-has-loaded" step for readability
- Created higher-level step for loading the revisionslider
- Added assertions where missing
- Added ability to click the upper or lower area of revisionbars

Bug: T146276
Change-Id: Iad5abbb6e73a31afad1e2058b26ece3fbc7ad942
2016-10-12 10:46:24 +02:00

73 lines
2.4 KiB
Ruby

class DiffPage
include PageObject
p(:revisionslider_placeholder, css: '.mw-revslider-placeholder')
div(:revisionslider_wrapper, css: '.mw-revslider-slider-wrapper')
div(:revisionslider_auto_expand_button, css: '.mw-revslider-auto-expand-button')
div(:revisionslider_toggle_button, css: '.mw-revslider-toggle-button')
table(:revisionslider_loading, css: '.mw-revslider-diff-loading')
div(:revisionslider_help_dialog, css: '.revisionslider-help-dialog')
button(:revisionslider_help, css: '.mw-revision-slider-container > button')
a(:revisionslider_help_next, css: '.revisionslider-help-next > a')
a(:revisionslider_help_previous, css: '.revisionslider-help-previous > a')
a(:revisionslider_help_close_start, css: '.revisionslider-help-close-start > a')
a(:revisionslider_help_close_end, css: '.revisionslider-help-close-end > a')
div(:revisionslider_timeline_backwards, css: '.mw-revslider-arrow.mw-revslider-arrow-backwards')
div(:revisionslider_timeline_forwards, css: '.mw-revslider-arrow.mw-revslider-arrow-forwards')
div(:revisionslider_pointer_lower, css: '.mw-revslider-pointer-lower')
div(:revisionslider_pointer_upper, css: '.mw-revslider-pointer-upper')
div(:revisionslider_left_summary, id: 'mw-diff-otitle3')
div(:revisionslider_right_summary, id: 'mw-diff-ntitle3')
def revisionslider_rev(index = 1)
element('div', css: '.mw-revslider-revision[data-pos="' + index.to_s + '"]')
end
def click_revision_lower(index = 1)
revbar = revisionslider_rev(index).element.wd
browser.driver.action.move_to(revbar, 1, revbar.size.height - 1).click.perform
end
def click_revision_upper(index = 1)
revbar = revisionslider_rev(index).element.wd
browser.driver.action.move_to(revbar, 1, 0).click.perform
end
def revisionslider_tooltip(index = 1)
element('div', css: '.mw-revslider-revision-tooltip-' + index.to_s)
end
def wait_for_slider_to_load
wait_until do
!revisionslider_placeholder?
end
end
def wait_for_ajax_calls
sleep_period = 0.25
max_timeout_seconds = 2
timeout_loops = (max_timeout_seconds / sleep_period).to_i
while execute_script('return jQuery.active') != 0 && timeout_loops > 0
sleep(sleep_period)
timeout_loops -= 1
end
true
end
def wait_for_diff_to_load
wait_until do
!revisionslider_loading?
end
end
def wait_for_help_dialog_to_hide
wait_until do
!revisionslider_help_dialog_element.visible?
end
end
end