SRGB Specs + refactor
afoong, panda, 10 Change-Id: I583a31b6147f85e425462b223eb51b535fbe4b59 Reviewed-on: https://gerrit.instructure.com/60543 Reviewed-by: Taylor Wilson <twilson@instructure.com> Tested-by: Jenkins Product-Review: Derek Hansen <dhansen@instructure.com> QA-Review: Derek Hansen <dhansen@instructure.com>
This commit is contained in:
parent
b935e1a84f
commit
23afcd1d2e
|
@ -2,6 +2,234 @@ require File.expand_path(File.dirname(__FILE__) + '/helpers/gradebook2_common')
|
|||
|
||||
describe "screenreader gradebook" do
|
||||
include_context "in-process server selenium tests"
|
||||
let(:srgb) {"/courses/#{@course.id}/gradebook/change_gradebook_version?version=srgb"}
|
||||
|
||||
def basic_setup(num=1)
|
||||
init_course_with_students num
|
||||
@course.assignments.create!(
|
||||
title: 'Test 1',
|
||||
submission_types: 'online_text_entry',
|
||||
points_possible: 20,
|
||||
grading_type: 'percent'
|
||||
)
|
||||
end
|
||||
|
||||
it 'can select a student', priority: "1", test_id: 163994 do
|
||||
init_course_with_students 2
|
||||
@course.assignment_groups.create! name: 'Group 1'
|
||||
@course.assignment_groups.create! name: 'Group 2'
|
||||
a1 = @course.assignments.create!(
|
||||
title: 'Test 1',
|
||||
points_possible: 20,
|
||||
assignment_group: @course.assignment_groups[0]
|
||||
)
|
||||
a2 = @course.assignments.create!(
|
||||
title: 'Test 2',
|
||||
points_possible: 20,
|
||||
assignment_group: @course.assignment_groups[1]
|
||||
)
|
||||
|
||||
grades = ['15', '12', '11', '3']
|
||||
|
||||
a1.grade_student @students[0], grade: grades[0]
|
||||
a1.grade_student @students[1], grade: grades[1]
|
||||
a2.grade_student @students[0], grade: grades[2]
|
||||
a2.grade_student @students[1], grade: grades[3]
|
||||
|
||||
get srgb
|
||||
|
||||
expect(get_options('#student_select').map(&:text)).to eq ['No Student Selected', @students[0].name, @students[1].name]
|
||||
click_option '#student_select', @students[0].name
|
||||
expect(ff('#student_information .assignment-group-grade .points').map(&:text)).to eq ["(#{grades[0]} / 20)", "(#{grades[2]} / 20)"]
|
||||
click_option '#student_select', @students[1].name
|
||||
expect(ff('#student_information .assignment-group-grade .points').map(&:text)).to eq ["(#{grades[1]} / 20)", "(#{grades[3]} / 20)"]
|
||||
end
|
||||
|
||||
it 'can select a student using buttons', priority: "1", test_id: 163997 do
|
||||
init_course_with_students 3
|
||||
get srgb
|
||||
|
||||
before = f('.student_navigation button.previous_object')
|
||||
after = f('.student_navigation button.next_object')
|
||||
|
||||
# first student
|
||||
expect(before.attribute 'disabled').to be_truthy
|
||||
after.click
|
||||
expect(f('#student_information .student_selection').text).to eq @students[0].name
|
||||
|
||||
# second student
|
||||
after.click
|
||||
expect(f('#student_information .student_selection').text).to eq @students[1].name
|
||||
|
||||
# third student
|
||||
after.click
|
||||
expect(after.attribute 'disabled').to be_truthy
|
||||
expect(f('#student_information .student_selection').text).to eq @students[2].name
|
||||
expect(before).to eq driver.switch_to.active_element
|
||||
|
||||
# click twice to go back to first student
|
||||
before.click
|
||||
before.click
|
||||
expect(f('#student_information .student_selection').text).to eq @students[0].name
|
||||
expect(after).to eq driver.switch_to.active_element
|
||||
end
|
||||
|
||||
it 'can select an assignment', priority: "1", test_id: 163998 do
|
||||
a1 = basic_setup
|
||||
a2 = @course.assignments.create!(
|
||||
title: 'Test 2',
|
||||
points_possible: 20,
|
||||
)
|
||||
|
||||
a1.grade_student @students[0], grade: 14
|
||||
get srgb
|
||||
|
||||
expect(get_options('#assignment_select').map(&:text)).to eq ['No Assignment Selected', a1.name, a2.name]
|
||||
click_option '#assignment_select', a1.name
|
||||
expect(f('#assignment_information .assignment_selection').text).to eq a1.name
|
||||
expect(f('#assignment_information').text).to include 'Online text entry'
|
||||
end
|
||||
|
||||
it 'updates grade to percentage in percentage grade field', priority: "1", test_id: 163999 do
|
||||
skip "Skipped because this spec fails if not run in foreground\n"\
|
||||
"This is believed to be the issue: https://code.google.com/p/selenium/issues/detail?id=7346"
|
||||
assignment = basic_setup
|
||||
get srgb
|
||||
|
||||
click_option '#assignment_select', assignment.name
|
||||
click_option '#student_select', @students[0].name
|
||||
replace_content f('#student_and_assignment_grade'), "10\t"
|
||||
wait_for_ajaximations
|
||||
expect(f('#student_and_assignment_grade').attribute 'value').to eq '50%'
|
||||
end
|
||||
|
||||
it 'displays/removes warning message for resubmitted assignments', priority: "1", test_id: 164000 do
|
||||
skip "Skipped because this spec fails if not run in foreground\n"\
|
||||
"This is believed to be the issue: https://code.google.com/p/selenium/issues/detail?id=7346"
|
||||
assignment = basic_setup
|
||||
user_session @students[0]
|
||||
assignment.submit_homework @students[0], submission_type: 'online_text_entry', body: 'Hello!'
|
||||
|
||||
user_session @teacher
|
||||
assignment.grade_student @students[0], grade: 12
|
||||
|
||||
user_session @students[0]
|
||||
assignment.submit_homework @students[0], submission_type: 'online_text_entry', body: 'Hello again!'
|
||||
|
||||
user_session @teacher
|
||||
get srgb
|
||||
click_option '#assignment_select', assignment.name
|
||||
click_option '#student_select', @students[0].name
|
||||
expect(f('p.resubmitted')).to be_displayed
|
||||
|
||||
replace_content f('#student_and_assignment_grade'), "15\t"
|
||||
wait_for_ajaximations
|
||||
expect(f('p.resubmitted')).to be_nil
|
||||
end
|
||||
|
||||
it 'grades match default gradebook grades', priority: "1", test_id: 163994 do
|
||||
skip "Skipped because this spec fails if not run in foreground\n"\
|
||||
"This is believed to be the issue: https://code.google.com/p/selenium/issues/detail?id=7346"
|
||||
a1 = basic_setup
|
||||
a2 = @course.assignments.create!(
|
||||
title: 'Test 2',
|
||||
points_possible: 20
|
||||
)
|
||||
|
||||
grades = [15, 12]
|
||||
|
||||
get "/courses/#{@course.id}/gradebook"
|
||||
f('.canvas_1 .slick-row .slick-cell').click
|
||||
f('.canvas_1 .slick-row .slick-cell .grade').send_keys grades[0], :return
|
||||
|
||||
get srgb
|
||||
click_option '#student_select', @students[0].name
|
||||
click_option '#assignment_select', a1.name
|
||||
expect(f('#student_and_assignment_grade').attribute 'value').to eq grades[0]
|
||||
expect(f('#student_information .total-grade').text).to eq "75% (#{grades[0]} / 20 points)"
|
||||
|
||||
click_option '#assignment_select', a2.name
|
||||
f('#student_and_assignment_grade').clear
|
||||
f('#student_and_assignment_grade').send_keys grades[1], :return
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=2"
|
||||
expect(f('.canvas_1 .slick-row .slick-cell:nth-of-type(2)').text).to eq grades[1]
|
||||
end
|
||||
|
||||
it 'can mute assignments', priority: "1", test_id: 164001 do
|
||||
assignment = basic_setup
|
||||
get srgb
|
||||
|
||||
click_option '#student_select', @students[0].name
|
||||
click_option '#assignment_select', assignment.name
|
||||
f('#assignment_muted_check').click
|
||||
wait_for_ajaximations
|
||||
fj('.ui-dialog:visible button').click
|
||||
wait_for_ajaximations
|
||||
|
||||
get "/courses/#{@course.id}/grades/#{@students[0].id}"
|
||||
expect(f('.student_assignment.editable').attribute 'data-muted').to eq 'true'
|
||||
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=2"
|
||||
expect(fj('.slick-header-columns .slick-header-column:eq(2) a')).to have_class 'muted'
|
||||
end
|
||||
|
||||
it 'can unmute assignments', priority: "1", test_id: 288859 do
|
||||
assignment = basic_setup
|
||||
assignment.mute!
|
||||
|
||||
get srgb
|
||||
click_option '#student_select', @students[0].name
|
||||
click_option '#assignment_select', assignment.name
|
||||
f('#assignment_muted_check').click
|
||||
wait_for_ajaximations
|
||||
fj('.ui-dialog:visible button').click
|
||||
wait_for_ajaximations
|
||||
|
||||
get "/courses/#{@course.id}/grades/#{@students[0].id}"
|
||||
expect(f('.student_assignment.editable').attribute 'data-muted').to eq 'false'
|
||||
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=2"
|
||||
expect(fj('.slick-header-columns .slick-header-column:eq(2) a')).to_not have_class 'muted'
|
||||
end
|
||||
|
||||
it 'can message students who... ', priority: "1", test_id: 164002 do
|
||||
basic_setup
|
||||
get srgb
|
||||
|
||||
click_option '#assignment_select', 'Test 1'
|
||||
f('#message_students').click
|
||||
wait_for_ajaximations
|
||||
expect(f('#message_students_dialog')).to be_displayed
|
||||
|
||||
f('#body').send_keys 'Hello!'
|
||||
fj('.ui-dialog:visible button.button_type_submit').click
|
||||
wait_for_ajaximations
|
||||
expect(f('#message_students_dialog')).to_not be_displayed
|
||||
end
|
||||
|
||||
it 'has total graded submission', priority: "1", test_id: 164003 do
|
||||
assignment = basic_setup 2
|
||||
|
||||
assignment.grade_student @students[0], grade: 15
|
||||
assignment.grade_student @students[1], grade: 5
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=2"
|
||||
f('a.assignment_header_drop').click
|
||||
fj('#ui-id-18').click
|
||||
|
||||
data = [
|
||||
'Average Score: 10',
|
||||
'High Score: 15',
|
||||
'Low Score: 5',
|
||||
'Total Graded Submissions: 2 submissions'
|
||||
]
|
||||
expect(f('#assignment-details-dialog-stats-table').text.split /\n/).to eq data
|
||||
|
||||
get srgb
|
||||
click_option '#student_select', @students[0].name
|
||||
click_option '#assignment_select', assignment.name
|
||||
expect(f('#assignment_information p:nth-of-type(2)').text).to eq 'Graded submissions: 2'
|
||||
expect(ff('#assignment_information table td').map(&:text)).to eq ['20', '10', '15', '5']
|
||||
end
|
||||
|
||||
context "as a teacher" do
|
||||
before(:each) do
|
||||
|
@ -24,7 +252,7 @@ describe "screenreader gradebook" do
|
|||
sections << @course.course_sections.create!(:name => "other section #{i}")
|
||||
end
|
||||
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=srgb"
|
||||
get srgb
|
||||
|
||||
ui_options = Selenium::WebDriver::Support::Select.new(f("#section_select")).options().map { |option| option.text}
|
||||
sections.each do |section|
|
||||
|
@ -63,29 +291,22 @@ describe "screenreader gradebook" do
|
|||
end
|
||||
|
||||
let!(:get_screenreader_gradebook) do
|
||||
get "/courses/#{@course.id}/gradebook/change_gradebook_version?version=srgb"
|
||||
get srgb
|
||||
end
|
||||
|
||||
let(:assignment_selector) do
|
||||
Selenium::WebDriver::Support::Select.new(f("#assignment_select"))
|
||||
end
|
||||
|
||||
# The Download Submission button should be displayed for online_upload,
|
||||
# online_text_entry, online_url, and online_quiz assignments. It should
|
||||
# not be displayed for any other types.
|
||||
it "is displayed for online assignments" do
|
||||
assignment_selector.select_by(:text, 'second assignment')
|
||||
click_option '#assignment_select', 'second assignment'
|
||||
|
||||
expect(f("#submissions_download_button")).to be_present
|
||||
end
|
||||
|
||||
it "is not displayed for assignments which are not submitted online" do
|
||||
assignment_selector.select_by(:text, @first_assignment.name)
|
||||
click_option '#assignment_select', @assignment.name
|
||||
|
||||
expect(f("#submissions_download_button")).to_not be_present
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue