spec: update version of chrome to 78
closes: CCI-162 flag = none Change-Id: Id03868b8095a948929fd39ae74d0c70a5eef0df9 Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/221262 Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com> Reviewed-by: Rex Fleischer <rfleischer@instructure.com> Reviewed-by: Derek Bender <djbender@instructure.com> QA-Review: James Butters <jbutters@instructure.com> Product-Review: James Butters <jbutters@instructure.com>
This commit is contained in:
parent
0987aa6e1a
commit
fcd5a4fee8
|
@ -46,9 +46,9 @@ group :test do
|
|||
gem 'sauce_whisk', '0.1.0'
|
||||
|
||||
# Keep this gem synced with docker-compose/seleniumff/Dockerfile
|
||||
gem 'selenium-webdriver', '3.142.3'
|
||||
gem 'selenium-webdriver', '3.141.5926'
|
||||
gem 'childprocess', '1.0.1', require: false
|
||||
gem 'chromedriver-helper', '2.1.0', require: false
|
||||
gem 'webdrivers', '~> 4.0', require: false
|
||||
gem 'selinimum', '0.0.1', require: false, path: 'gems/selinimum'
|
||||
gem 'test-queue', github: 'instructure/test-queue', ref: 'd35166408df3a5396cd809e85dcba175136a69ba', require: false
|
||||
gem 'testrailtagging', '0.3.8.7', require: false
|
||||
|
|
|
@ -5,6 +5,6 @@ set -x -o errexit -o errtrace -o nounset -o pipefail
|
|||
# pull docker images (or build them if missing)
|
||||
REGISTRY_BASE=starlord.inscloudgate.net/jenkins
|
||||
|
||||
docker pull $REGISTRY_BASE/selenium-chrome:3.141.59-selenium || \
|
||||
(docker build -t $REGISTRY_BASE/selenium-chrome:3.141.59-selenium docker-compose/selenium-chrome && \
|
||||
docker push $REGISTRY_BASE/selenium-chrome:3.141.59-selenium)
|
||||
docker pull $REGISTRY_BASE/selenium-chrome:3.141.59-xenon || \
|
||||
(docker build -t $REGISTRY_BASE/selenium-chrome:3.141.59-xenon docker-compose/selenium-chrome && \
|
||||
docker push $REGISTRY_BASE/selenium-chrome:3.141.59-xenon)
|
||||
|
|
|
@ -14,7 +14,7 @@ services:
|
|||
SASS_STYLE: 'compressed'
|
||||
|
||||
selenium-chrome:
|
||||
image: starlord.inscloudgate.net/jenkins/selenium-chrome:3.141.59-selenium
|
||||
image: starlord.inscloudgate.net/jenkins/selenium-chrome:3.141.59-xenon
|
||||
environment:
|
||||
SCREEN_WIDTH: 1680
|
||||
SCREEN_HEIGHT: 1050
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# Keep this image version tag synced with Gemfile.d/test.rb
|
||||
FROM selenium/standalone-chrome-debug:3.141.59-selenium
|
||||
FROM selenium/standalone-chrome-debug:3.141.59-xenon
|
||||
|
||||
COPY entry_point.sh /opt/bin/custom_entry_point.sh
|
||||
USER root
|
||||
|
|
|
@ -46,7 +46,7 @@ describe "settings tabs" do
|
|||
expect(notification.start_at.day).to eq 1
|
||||
expect(notification.end_at.day).to eq 15
|
||||
expect(f("#tab-announcements .announcement-details")).to include_text(displayed_username)
|
||||
dismiss_flash_messages
|
||||
dismiss_flash_messages_if_present
|
||||
|
||||
# close the "user account" Tray that opened so we could read the displayed username
|
||||
f('body').click
|
||||
|
|
|
@ -71,6 +71,7 @@ describe "discussion assignments" do
|
|||
f('.announcement_cog').click
|
||||
fln('Delete').click
|
||||
driver.switch_to.alert.accept
|
||||
wait_for_ajaximations
|
||||
assert_flash_notice_message("#{discussion_title} deleted successfully")
|
||||
end
|
||||
end
|
||||
|
|
|
@ -194,7 +194,7 @@ describe "assignment groups" do
|
|||
|
||||
get "/courses/#{@course.id}/assignments"
|
||||
expect(f('.assignment .assignment-date-due')).to include_text "Multiple Dates"
|
||||
driver.mouse.move_to f(".assignment .assignment-date-due a")
|
||||
driver.action.move_to(f(".assignment .assignment-date-due a")).perform
|
||||
wait_for_ajaximations
|
||||
|
||||
tooltip = fj('.vdd_tooltip_content:visible')
|
||||
|
|
|
@ -59,6 +59,7 @@ describe 'submissions' do
|
|||
end
|
||||
|
||||
it 'Submitting Group Assignments - No File Warning', priority: "1", test_id: 238165 do
|
||||
skip('investigate in CCI-182')
|
||||
create_assignment_for_group('online_upload')
|
||||
get "/courses/#{@course.id}/assignments/#{@assignment.id}"
|
||||
f('.submit_assignment_link').click
|
||||
|
|
|
@ -112,9 +112,9 @@ describe "scheduler" do
|
|||
reserve_appointment_for(@student1, @student1, @app1)
|
||||
expect(@app1.appointments.first.workflow_state).to eq('locked')
|
||||
get "/calendar2"
|
||||
move_to_click('.fc-event.scheduler-event')
|
||||
f('.fc-event.scheduler-event').click
|
||||
wait_for_ajaximations
|
||||
move_to_click('.unreserve_event_link')
|
||||
f('.unreserve_event_link').click
|
||||
expect(f('#delete_event_dialog')).to be_present
|
||||
f('.ui-dialog-buttonset .btn-primary').click
|
||||
# save the changes so the appointment object is updated
|
||||
|
|
|
@ -298,7 +298,7 @@ describe "scheduler" do
|
|||
load_agenda_view
|
||||
|
||||
agenda_item.click
|
||||
move_to_click('.event-details .unreserve_event_link')
|
||||
f('.event-details .unreserve_event_link').click
|
||||
wait_for_ajaximations
|
||||
f('#delete_event_dialog~.ui-dialog-buttonpane .btn-primary').click
|
||||
|
||||
|
|
|
@ -130,8 +130,7 @@ describe "calendar2" do
|
|||
events = ff('.fc-event')
|
||||
|
||||
# Scroll the elements into view
|
||||
events[0].location_once_scrolled_into_view
|
||||
events[1].location_once_scrolled_into_view
|
||||
scroll_into_view(".fc-event")
|
||||
|
||||
# Drag object event onto target event
|
||||
driver.action.move_to(events[0]).click_and_hold.move_to(events[1]).release.perform
|
||||
|
|
|
@ -496,7 +496,7 @@ describe "context modules" do
|
|||
|
||||
it "should show a tooltip for locked icon when module is locked", priority:"1", test_id: 255918 do
|
||||
go_to_modules
|
||||
driver.mouse.move_to(f("#context_module_#{@module_2.id} .completion_status .icon-lock"), 0, 0)
|
||||
driver.action.move_to(f("#context_module_#{@module_2.id} .completion_status .icon-lock"), 0, 0).perform
|
||||
expect(fj('.ui-tooltip:visible')).to include_text('Locked')
|
||||
end
|
||||
|
||||
|
@ -525,7 +525,7 @@ describe "context modules" do
|
|||
it "shows a tooltip when hovering over a completed icon", priority: "1", test_id: 255915 do
|
||||
go_to_modules
|
||||
navigate_to_module_item(0, @assignment_1.title)
|
||||
driver.mouse.move_to(f('.ig-header-admin .completion_status .icon-check'), 0, 0)
|
||||
driver.action.move_to(f('.ig-header-admin .completion_status .icon-check'), 0, 0).perform
|
||||
expect(fj('.ui-tooltip:visible')).to include_text('Completed')
|
||||
end
|
||||
|
||||
|
@ -571,14 +571,14 @@ describe "context modules" do
|
|||
it "shows tool tip text when hovering over the warning icon for a min score requirement", priority: "1", test_id: 255916 do
|
||||
grade_assignment(50)
|
||||
go_to_modules
|
||||
driver.mouse.move_to(f('.ig-header-admin .completion_status .icon-minimize'), 0, 0)
|
||||
driver.action.move_to(f('.ig-header-admin .completion_status .icon-minimize'), 0, 0).perform
|
||||
expect(fj('.ui-tooltip:visible')).to include_text('Started')
|
||||
end
|
||||
|
||||
it "shows tooltip warning for a min score assignemnt", priority: "1", test_id: 255917 do
|
||||
grade_assignment(50)
|
||||
go_to_modules
|
||||
driver.mouse.move_to(f('.ig-row .module-item-status-icon .icon-minimize'), 0, 0)
|
||||
driver.action.move_to(f('.ig-row .module-item-status-icon .icon-minimize'), 0, 0).perform
|
||||
expect(fj('.ui-tooltip:visible')).to include_text('You scored a 50. Must score at least a 90.0.')
|
||||
end
|
||||
|
||||
|
|
|
@ -1015,7 +1015,7 @@ describe "context modules" do
|
|||
|
||||
get "/courses/#{@course.id}/modules"
|
||||
expect(f(selector)).to include_text "Multiple Due Dates"
|
||||
driver.mouse.move_to f("#{selector} a")
|
||||
driver.action.move_to(f("#{selector} a")).perform
|
||||
wait_for_ajaximations
|
||||
|
||||
tooltip = fj('.vdd_tooltip_content:visible')
|
||||
|
@ -1159,7 +1159,7 @@ describe "context modules" do
|
|||
wait_for_ajax_requests
|
||||
expect(tag.reload).to be_published
|
||||
refresh_page
|
||||
driver.mouse.move_to f('i.icon-unpublish')
|
||||
driver.action.move_to(f('i.icon-unpublish')).perform
|
||||
expect(f('span.publish-icon.published.publish-icon-published')).to be_displayed
|
||||
expect(tag).to be_published
|
||||
end
|
||||
|
|
|
@ -103,14 +103,14 @@ describe "conversations new" do
|
|||
|
||||
it "should reply to message from mouse hover", priority: "2", test_id: 1069285 do
|
||||
go_to_inbox_and_select_message
|
||||
driver.mouse.move_to(f('.message-content .message-item-view'))
|
||||
driver.action.move_to(f('.message-content .message-item-view')).perform
|
||||
f('.message-info .reply-btn').click
|
||||
assert_number_of_recipients(1)
|
||||
end
|
||||
|
||||
it "should reply to all from mouse hover", priority: "2", test_id: 1069836 do
|
||||
go_to_inbox_and_select_message
|
||||
driver.mouse.move_to(f('.message-content .message-item-view'))
|
||||
driver.action.move_to(f('.message-content .message-item-view')).perform
|
||||
f('.message-info .icon-settings').click
|
||||
f('.ui-menu-item .reply-all-btn').click
|
||||
assert_number_of_recipients(2)
|
||||
|
|
|
@ -127,14 +127,8 @@ describe "discussions" do
|
|||
close_visible_dialog
|
||||
f('#edit_discussion_form_buttons .btn-primary[type=submit]').click
|
||||
wait_for_ajaximations
|
||||
keep_trying_until do
|
||||
expect(driver.execute_script(
|
||||
"return $('.errorBox').filter('[id!=error_box_template]')"
|
||||
)).to be_present
|
||||
end
|
||||
errorBoxes = driver.execute_script("return $('.errorBox').filter('[id!=error_box_template]').toArray();")
|
||||
visBoxes, hidBoxes = errorBoxes.partition { |eb| eb.displayed? }
|
||||
expect(visBoxes.first.text).to eq "Please create a group set"
|
||||
error_box = f("div[role='alert'] .error_text")
|
||||
expect(error_box.text).to eq "Please create a group set"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -120,14 +120,8 @@ describe "discussions" do
|
|||
close_visible_dialog
|
||||
f('#edit_discussion_form_buttons .btn-primary[type=submit]').click
|
||||
wait_for_ajaximations
|
||||
keep_trying_until do
|
||||
expect(driver.execute_script(
|
||||
"return $('.errorBox').filter('[id!=error_box_template]')"
|
||||
)).to be_present
|
||||
end
|
||||
errorBoxes = driver.execute_script("return $('.errorBox').filter('[id!=error_box_template]').toArray();")
|
||||
visBoxes, hidBoxes = errorBoxes.partition { |eb| eb.displayed? }
|
||||
expect(visBoxes.first.text).to eq "Please create a group set"
|
||||
error_box = f("div[role='alert'] .error_text")
|
||||
expect(error_box.text).to eq "Please create a group set"
|
||||
end
|
||||
end
|
||||
|
||||
|
|
|
@ -27,26 +27,34 @@ describe "gradebook" do
|
|||
before(:each) { user_session(@teacher) }
|
||||
|
||||
it "should handle multiple enrollments correctly" do
|
||||
@course.enroll_student(@student_1, section: @other_section, allow_multiple_enrollments: true)
|
||||
@course.enroll_student(@student_2, section: @course.default_section, allow_multiple_enrollments: true)
|
||||
|
||||
get "/courses/#{@course.id}/gradebook"
|
||||
# must start on All Sections
|
||||
fj('.section-select-button:visible').click
|
||||
fj('.section-select-menu:visible') # wait for options to be visible
|
||||
f("label[for='section_option_']").click
|
||||
|
||||
meta_cells = find_slick_cells(0, f('.grid-canvas'))
|
||||
meta_cells = find_slick_cells(1, f('.grid-canvas'))
|
||||
expect(meta_cells[0]).to include_text @course.default_section.display_name
|
||||
expect(meta_cells[0]).to include_text @other_section.display_name
|
||||
|
||||
switch_to_section(@course.default_section)
|
||||
meta_cells = find_slick_cells(0, f('.grid-canvas'))
|
||||
expect(meta_cells[0]).to include_text @student_name_1
|
||||
meta_cells = find_slick_cells(1, f('.grid-canvas'))
|
||||
expect(meta_cells[0]).to include_text @student_name_2
|
||||
|
||||
switch_to_section(@other_section)
|
||||
meta_cells = find_slick_cells(0, f('.grid-canvas'))
|
||||
expect(meta_cells[0]).to include_text @student_name_1
|
||||
expect(meta_cells[0]).to include_text @student_name_2
|
||||
end
|
||||
|
||||
it "should allow showing only a certain section", priority: "1", test_id: 210024 do
|
||||
get "/courses/#{@course.id}/gradebook"
|
||||
# grade the first assignment
|
||||
# must start on All Sections
|
||||
fj('.section-select-button:visible').click
|
||||
fj('.section-select-menu:visible') # wait for options to be visible
|
||||
f("label[for='section_option_']").click
|
||||
|
||||
edit_grade('#gradebook_grid .container_1 .slick-row:nth-child(1) .b2', 0)
|
||||
edit_grade('#gradebook_grid .container_1 .slick-row:nth-child(2) .b2', 1)
|
||||
|
||||
|
|
|
@ -162,7 +162,7 @@ describe "Gradezilla editing grades" do
|
|||
selected_cell = Gradezilla::Cells.grading_cell(@student_1, @second_assignment)
|
||||
selected_cell.click
|
||||
|
||||
driver.action.send_keys(%i[shift tab]).perform
|
||||
driver.action.key_down(:shift).send_keys(:tab).key_up(:shift).perform
|
||||
driver.action.send_keys(:tab).perform
|
||||
driver.action.send_keys(:tab).perform
|
||||
|
||||
|
|
|
@ -329,8 +329,8 @@ module AssignmentOverridesSeleniumHelper
|
|||
end
|
||||
|
||||
def validate_vdd_quiz_tooltip_dates(context_selector, message)
|
||||
driver.mouse.move_to fln('Multiple Dates', f("#{context_selector}"))
|
||||
expect(fj('.ui-tooltip:visible')).to include_text("#{message}")
|
||||
driver.action.move_to(fln('Multiple Dates', f(context_selector.to_s))).perform
|
||||
expect(fj('.ui-tooltip:visible')).to include_text(message.to_s)
|
||||
end
|
||||
|
||||
def create_assignment_override(assignment, section, due_date)
|
||||
|
|
|
@ -31,7 +31,8 @@ module ConferencesCommon
|
|||
|
||||
def end_first_conference_in_list
|
||||
end_conference_button.click
|
||||
close_modal_if_present
|
||||
accept_alert
|
||||
wait_for_ajaximations
|
||||
end
|
||||
|
||||
def delete_recording_button(recording)
|
||||
|
@ -42,7 +43,8 @@ module ConferencesCommon
|
|||
conference = first_conference_in_list(new_conference_list)
|
||||
recording = first_recording_in_conference(conference)
|
||||
delete_recording_button(recording).click
|
||||
close_modal_if_present
|
||||
accept_alert
|
||||
wait_for_ajaximations
|
||||
end
|
||||
|
||||
def first_recording_in_conference(conference)
|
||||
|
|
|
@ -227,7 +227,7 @@ module ConversationsCommon
|
|||
# First case is for clicking on message gear menu
|
||||
when opts[:message]
|
||||
# The More Options gear menu only shows up on mouse over of message
|
||||
driver.mouse.move_to ff('.message-item-view')[message]
|
||||
driver.action.move_to(ff('.message-item-view')[message]).perform
|
||||
wait_for_ajaximations
|
||||
f('.actions li .inline-block .al-trigger').click
|
||||
# This case is for clicking on gear menu at conversation heading level
|
||||
|
@ -270,7 +270,7 @@ module ConversationsCommon
|
|||
|
||||
# makes a message's star and unread buttons visible via mouse over
|
||||
def hover_over_message(msg)
|
||||
driver.mouse.move_to(msg)
|
||||
driver.action.move_to(msg).perform
|
||||
wait_for_ajaximations
|
||||
end
|
||||
|
||||
|
|
|
@ -62,9 +62,9 @@ module WikiAndTinyCommon
|
|||
|
||||
def add_text_to_tiny(text)
|
||||
clear_wiki_rce
|
||||
type_in_tiny('textarea.body', text)
|
||||
type_in_tiny('textarea.body', text + " ") # space is necessary for html to render in tinymce
|
||||
in_frame wiki_page_body_ifr_id do
|
||||
f('#tinymce').send_keys(:return)
|
||||
f('#tinymce').send_keys(:backspace) # delete the space added above for accurate asserting
|
||||
expect(f('#tinymce')).to include_text(text)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -28,7 +28,7 @@ shared_examples 'profile_settings_page' do |context|
|
|||
it 'should give option to change profile pic', priority: "2", test_id: pick_test_id(context, student: 68936, teacher: 352617, admin: 352618) do
|
||||
enable_avatars(false)
|
||||
get "/profile/settings"
|
||||
driver.mouse.move_to f('.avatar.profile_pic_link.none')
|
||||
driver.action.move_to(f('.avatar.profile_pic_link.none')).perform
|
||||
wait_for_ajaximations
|
||||
|
||||
# We want to make sure the tooltip is displayed,
|
||||
|
@ -47,7 +47,7 @@ shared_examples 'profile_user_about_page' do |context|
|
|||
enable_avatars(false)
|
||||
get "/about/#{@user.id}"
|
||||
|
||||
driver.mouse.move_to f('.avatar.profile-link')
|
||||
driver.action.move_to(f('.avatar.profile-link')).perform
|
||||
wait_for_ajaximations
|
||||
|
||||
# We are checking the title in this tooltip like we do in the one above,
|
||||
|
|
|
@ -46,12 +46,12 @@ describe 'publishing a quiz' do
|
|||
end
|
||||
|
||||
it 'changes the button\'s text to \'Published\'', priority: "1", test_id: 140649 do
|
||||
driver.mouse.move_to f('#header')
|
||||
driver.action.move_to(f('#header')).perform
|
||||
expect(f('#quiz-publish-link')).to include_text 'Published'
|
||||
end
|
||||
|
||||
it 'changes the button text on hover to |Unpublish|', priority: "1", test_id: 398936 do
|
||||
driver.mouse.move_to f('#quiz-publish-link')
|
||||
driver.action.move_to(f('#quiz-publish-link')).perform
|
||||
expect(f('#quiz-publish-link')).to include_text 'Unpublish'
|
||||
end
|
||||
|
||||
|
|
|
@ -74,7 +74,7 @@ describe 'quizzes stats' do
|
|||
expect(fj(".report-generator:contains('#{report_type}')")).not_to include_text('Report has been generated')
|
||||
|
||||
# move mouse over button
|
||||
driver.mouse.move_to f('#header')
|
||||
driver.action.move_to(f('#header')).perform
|
||||
wait_for_ajaximations
|
||||
expect(fj(".report-generator:contains('#{report_type}')")).to include_text("Generate #{report_type.downcase} report")
|
||||
end
|
||||
|
@ -88,11 +88,11 @@ describe 'quizzes stats' do
|
|||
# our env never creates a csv so the best we can do is check for it attempting to download it
|
||||
|
||||
# move away so the tooltip can be recreated
|
||||
driver.mouse.move_to f('#header')
|
||||
driver.action.move_to(f('#header')).perform
|
||||
wait_for_ajaximations
|
||||
|
||||
# move mouse back over button
|
||||
driver.mouse.move_to button
|
||||
driver.action.move_to(button).perform
|
||||
wait_for_ajaximations
|
||||
expect(fj('.quiz-report-status:contains("Report is being generated")')).to be_present
|
||||
end
|
||||
|
|
|
@ -123,7 +123,7 @@ describe 'taking a quiz' do
|
|||
begin
|
||||
fln('Quizzes').click
|
||||
driver.switch_to.alert.accept
|
||||
rescue Selenium::WebDriver::Error::NoAlertOpenError
|
||||
rescue Selenium::WebDriver::Error::NoSuchAlertError
|
||||
# Do nothing
|
||||
end
|
||||
end
|
||||
|
@ -134,14 +134,16 @@ describe 'taking a quiz' do
|
|||
|
||||
it 'prompts for access code upon resuming the quiz', priority: "1", test_id: 421218 do
|
||||
skip_if_safari(:alert)
|
||||
skip('investigate in CCI-182')
|
||||
start_and_exit_quiz do
|
||||
expect_new_page_load { fj('a.ig-title', '#assignment-quizzes').click }
|
||||
expect_new_page_load { f('a.ig-title', '#assignment-quizzes').click }
|
||||
expect_new_page_load { fln('Resume Quiz').click }
|
||||
verify_access_code_prompt
|
||||
end
|
||||
end
|
||||
|
||||
it 'prompts for an access code upon resuming the quiz via the browser back button', priority: "1", test_id: 421222 do
|
||||
skip('investigate in CCI-182')
|
||||
skip_if_safari(:alert)
|
||||
start_and_exit_quiz do
|
||||
expect_new_page_load { driver.navigate.back }
|
||||
|
|
|
@ -56,7 +56,7 @@ describe "quizzes" do
|
|||
|
||||
get "/courses/#{@course.id}/quizzes"
|
||||
expect(f('.item-group-container .date-available')).to include_text "Multiple Dates"
|
||||
driver.mouse.move_to f('.item-group-container .date-available')
|
||||
driver.action.move_to(f('.item-group-container .date-available')).perform
|
||||
wait_for_ajaximations
|
||||
tooltip = fj('.ui-tooltip:visible')
|
||||
expect(tooltip).to include_text 'New Section'
|
||||
|
|
|
@ -50,13 +50,13 @@ describe 'quizzes with draft state' do
|
|||
expect(f('.ig-details .date-available')).to include_text 'Multiple Dates'
|
||||
|
||||
# verify tooltips
|
||||
driver.mouse.move_to f('.ig-details .date-available a')
|
||||
driver.action.move_to(f('.ig-details .date-available a')).perform
|
||||
wait_for_ajaximations
|
||||
tooltip = fj('.ui-tooltip:visible')
|
||||
expect(tooltip).to include_text 'New Section'
|
||||
expect(tooltip).to include_text 'Everyone else'
|
||||
|
||||
driver.mouse.move_to f('.ig-details .date-due a')
|
||||
driver.action.move_to(f('.ig-details .date-due a')).perform
|
||||
wait_for_ajaximations
|
||||
tooltip = fj('.ui-tooltip:visible')
|
||||
expect(tooltip).to include_text 'New Section'
|
||||
|
|
|
@ -40,11 +40,11 @@ describe 'unpublishing a quiz on the quiz show page' do
|
|||
unpublish_quiz_via_ui
|
||||
|
||||
# changes the button's text to |Unpublished|
|
||||
driver.mouse.move_to f('#preview_quiz_button')
|
||||
driver.action.move_to(f('#preview_quiz_button')).perform
|
||||
expect(f('#quiz-publish-link')).to include_text 'Unpublished'
|
||||
|
||||
# changes the button text on hover to |Publish|
|
||||
driver.mouse.move_to f('#quiz-publish-link')
|
||||
driver.action.move_to(f('#quiz-publish-link')).perform
|
||||
expect(f('#quiz-publish-link')).to include_text 'Publish'
|
||||
|
||||
# displays the 'This quiz is unpublished' message
|
||||
|
|
|
@ -552,7 +552,7 @@ describe "RCE next tests" do
|
|||
visit_existing_wiki_edit(@course, page_title)
|
||||
driver.switch_to.frame('wiki_page_body_ifr')
|
||||
f('table td').click # put the cursor in the table
|
||||
f('body').send_keys [:control, :f9]
|
||||
driver.action.key_down(:control).send_keys(:f9).key_up(:control).perform
|
||||
|
||||
driver.switch_to.default_content
|
||||
expect(f('.tox-pop__dialog button[title="Table properties"]')).to eq(driver.switch_to.active_element)
|
||||
|
@ -565,7 +565,7 @@ describe "RCE next tests" do
|
|||
visit_existing_wiki_edit(@course, page_title)
|
||||
driver.switch_to.frame('wiki_page_body_ifr')
|
||||
f('a').click # put the cursor in the table
|
||||
f('body').send_keys [:control, :f9]
|
||||
driver.action.key_down(:control).send_keys(:f9).key_up(:control).perform
|
||||
|
||||
driver.switch_to.default_content
|
||||
expect(f('.tox-pop__dialog button[title="Show link options"]')).to eq(driver.switch_to.active_element)
|
||||
|
|
|
@ -42,9 +42,11 @@ describe "RCS sidebar tests" do
|
|||
|
||||
click_pages_accordion
|
||||
click_new_page_link
|
||||
wait_for_ajaximations
|
||||
expect(new_page_name_input).to be_displayed
|
||||
new_page_name_input.send_keys(title)
|
||||
click_new_page_submit
|
||||
wait_for_ajaximations
|
||||
|
||||
in_frame wiki_page_body_ifr_id do
|
||||
expect(wiki_body_anchor.attribute('href')).to include title
|
||||
|
|
|
@ -34,6 +34,7 @@ describe "Wiki pages and Tiny WYSIWYG editor Files" do
|
|||
end
|
||||
|
||||
it "should add a file to the page and validate a student can see it" do
|
||||
skip('investigate in CCI-182')
|
||||
create_session(@teacher.pseudonym)
|
||||
|
||||
add_file_to_rce
|
||||
|
|
|
@ -126,6 +126,7 @@ describe "Wiki pages and Tiny WYSIWYG editor Files" do
|
|||
end
|
||||
|
||||
it "should be able to upload a file and add the file to the rce" do
|
||||
skip('investigate in CCI-182')
|
||||
add_file_to_rce
|
||||
check_file(f('#wiki_page_show a.instructure_file_link'))
|
||||
end
|
||||
|
|
|
@ -88,6 +88,7 @@ describe "Wiki pages and Tiny WYSIWYG editor Images" do
|
|||
end
|
||||
|
||||
it "should show images uploaded on the files tab in the image list" do
|
||||
skip('investigate in CCI-182')
|
||||
wiki_page_tools_file_tree_setup(true, true)
|
||||
click_files_tab
|
||||
wait_for_ajaximations
|
||||
|
|
|
@ -65,9 +65,15 @@ module CustomValidators
|
|||
end
|
||||
|
||||
def expect_flash_message(type = :warning, message = nil)
|
||||
selector = ".ic-flash-#{type}"
|
||||
selector << ":contains(#{message.inspect})" if message
|
||||
expect(f("#flash_message_holder")).to contain_jqcss(selector)
|
||||
if message
|
||||
keep_trying_until(5) do
|
||||
disable_implicit_wait do
|
||||
expect(ff("#flash_message_holder .ic-flash-#{type}")).to be_any { |el| el.text.include?(message) }
|
||||
end
|
||||
end
|
||||
else
|
||||
expect(f("#flash_message_holder .ic-flash-#{type}")).to be_displayed
|
||||
end
|
||||
end
|
||||
|
||||
def expect_instui_flash_message(message = nil)
|
||||
|
@ -110,6 +116,7 @@ module CustomValidators
|
|||
driver.execute_script("window.INST = window.INST || {}; INST.still_on_old_page = true;")
|
||||
yield if block_given?
|
||||
wait_for(method: :wait_for_new_page_load) do
|
||||
driver.switch_to.alert.accept rescue Selenium::WebDriver::Error::NoSuchAlertError
|
||||
begin
|
||||
driver.execute_script("return window.INST && INST.still_on_old_page !== true;")
|
||||
rescue Selenium::WebDriver::Error::UnexpectedAlertOpenError, Selenium::WebDriver::Error::UnknownError
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
require "fileutils"
|
||||
require 'chromedriver-helper'
|
||||
require 'webdrivers/chromedriver'
|
||||
require_relative "common_helper_methods/custom_alert_actions"
|
||||
require_relative 'common_helper_methods/custom_screen_actions'
|
||||
|
||||
|
@ -71,7 +71,7 @@ module SeleniumDriverSetup
|
|||
|
||||
# prevents subsequent specs from failing because tooltips are showing etc.
|
||||
def move_mouse_to_known_position
|
||||
driver.action.move_to(f("body"), 0, 0) if driver.ready_for_interaction
|
||||
driver.action.move_to(f("body"), 0, 0).perform if driver.ready_for_interaction
|
||||
end
|
||||
|
||||
class ServerStartupError < RuntimeError; end
|
||||
|
@ -330,17 +330,15 @@ module SeleniumDriverSetup
|
|||
|
||||
def ruby_chrome_driver
|
||||
puts "Thread: provisioning local chrome driver"
|
||||
Chromedriver.set_version(CONFIG[:chromedriver_version] || "74.0.3729.6")
|
||||
Webdrivers::Chromedriver.required_version = (CONFIG[:chromedriver_version] || "78.0.3904.105")
|
||||
chrome_options = Selenium::WebDriver::Chrome::Options.new
|
||||
chrome_options.add_argument('--disable-impl-side-painting')
|
||||
|
||||
# put `auto_open_devtools: true` in your selenium.yml if you want to have
|
||||
# the chrome dev tools open by default by selenium
|
||||
if CONFIG[:auto_open_devtools]
|
||||
chrome_options.add_argument('--auto-open-devtools-for-tabs')
|
||||
end
|
||||
|
||||
Selenium::WebDriver.for :chrome, options: chrome_options
|
||||
Selenium::WebDriver.for :chrome, desired_capabilities: desired_capabilities, options: chrome_options
|
||||
end
|
||||
|
||||
def ruby_safari_driver
|
||||
|
@ -372,8 +370,7 @@ module SeleniumDriverSetup
|
|||
when :chrome
|
||||
caps = Selenium::WebDriver::Remote::Capabilities.chrome
|
||||
caps['chromeOptions'] = {
|
||||
args: %w[disable-dev-shm-usage no-sandbox start-maximized],
|
||||
w3c: false
|
||||
args: %w[disable-dev-shm-usage no-sandbox start-maximized]
|
||||
}
|
||||
when :edge
|
||||
# TODO: options for edge driver
|
||||
|
|
Loading…
Reference in New Issue