spec: finish ssd selenium test cases
fixes COMMS-1094 Test Plan * Let jenkins pass Change-Id: I03f09f3e75edb93e3cc9dc83489415489d6eae54 Reviewed-on: https://gerrit.instructure.com/149914 Tested-by: Jenkins Reviewed-by: Landon Gilbert-Bland <lbland@instructure.com> Product-Review: Aaron Kc Hsu <ahsu@instructure.com> QA-Review: Aaron Kc Hsu <ahsu@instructure.com>
This commit is contained in:
parent
5f637c9653
commit
29aae6278d
|
@ -0,0 +1,91 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014 - present Instructure, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of Canvas.
|
||||||
|
#
|
||||||
|
# Canvas is free software: you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU Affero General Public License as published by the Free
|
||||||
|
# Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
require_relative './pages/discussions_new_edit_page'
|
||||||
|
|
||||||
|
describe "discussions index" do
|
||||||
|
include_context "in-process server selenium tests"
|
||||||
|
|
||||||
|
context "as a teacher" do
|
||||||
|
discussion1_title = 'Meaning of life'
|
||||||
|
discussion2_title = 'Meaning of the universe'
|
||||||
|
|
||||||
|
before :once do
|
||||||
|
@teacher = user_with_pseudonym(active_user: true)
|
||||||
|
@student = user_with_pseudonym(active_user: true)
|
||||||
|
@account = Account.create(name: 'New Account', default_time_zone: 'UTC')
|
||||||
|
@course = course_factory(course_name: 'Desks 101',
|
||||||
|
account: @account, active_course: true)
|
||||||
|
@course.enroll_student(@student, { active_all: true })
|
||||||
|
@course.enroll_teacher(@teacher, { active_all: true })
|
||||||
|
DiscussionNewEdit.set_section_specific_discussion_flag(@course,'on')
|
||||||
|
|
||||||
|
# Discussion attributes: title, message, delayed_post_at, user
|
||||||
|
@discussion1 = @course.discussion_topics.create!(
|
||||||
|
title: discussion1_title,
|
||||||
|
message: 'Is it really 42?',
|
||||||
|
user: @teacher,
|
||||||
|
pinned: false
|
||||||
|
)
|
||||||
|
@discussion2 = @course.discussion_topics.create!(
|
||||||
|
title: discussion2_title,
|
||||||
|
message: 'Could it be 43?',
|
||||||
|
delayed_post_at: 1.day.from_now,
|
||||||
|
user: @teacher,
|
||||||
|
locked: true,
|
||||||
|
pinned: false
|
||||||
|
)
|
||||||
|
|
||||||
|
@discussion1.discussion_entries.create!(user: @student, message: "I think I read that somewhere...")
|
||||||
|
@discussion1.discussion_entries.create!(user: @student, message: ":eyeroll:")
|
||||||
|
end
|
||||||
|
|
||||||
|
def login_and_visit_edit_course(teacher, course)
|
||||||
|
user_session(teacher)
|
||||||
|
DiscussionNewEdit.visit(course)
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_course_and_discussion(opts)
|
||||||
|
opts.reverse_merge!({ locked: false, pinned: false })
|
||||||
|
course = course_factory(:active_all => true)
|
||||||
|
discussion = course.discussion_topics.create!(
|
||||||
|
title: opts[:title],
|
||||||
|
message: opts[:message],
|
||||||
|
user: @teacher,
|
||||||
|
locked: opts[:locked],
|
||||||
|
pinned: opts[:pinned]
|
||||||
|
)
|
||||||
|
[course, discussion]
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creating discussion with section gives no error' do
|
||||||
|
@course.course_sections.create!(name: "Section 1")
|
||||||
|
@course.course_sections.create!(name: "Section 2")
|
||||||
|
login_and_visit_edit_course(@teacher, @course)
|
||||||
|
DiscussionNewEdit.select_a_section("Section")
|
||||||
|
DiscussionNewEdit.add_message("Discussion Body")
|
||||||
|
DiscussionNewEdit.add_title("Discussion Title")
|
||||||
|
expect_new_page_load {DiscussionNewEdit.submit_discussion_form}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'no sections will give an error' do
|
||||||
|
login_and_visit_edit_course(@teacher, @course)
|
||||||
|
DiscussionNewEdit.select_a_section("")
|
||||||
|
expect(DiscussionNewEdit.section_error).to include("A section is required")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,81 @@
|
||||||
|
#
|
||||||
|
# Copyright (C) 2014 - present Instructure, Inc.
|
||||||
|
#
|
||||||
|
# This file is part of Canvas.
|
||||||
|
#
|
||||||
|
# Canvas is free software: you can redistribute it and/or modify it under
|
||||||
|
# the terms of the GNU Affero General Public License as published by the Free
|
||||||
|
# Software Foundation, version 3 of the License.
|
||||||
|
#
|
||||||
|
# Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||||
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||||||
|
# A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
||||||
|
# details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU Affero General Public License along
|
||||||
|
# with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
require_relative './pages/discussions_index_page'
|
||||||
|
|
||||||
|
describe "discussions index" do
|
||||||
|
include_context "in-process server selenium tests"
|
||||||
|
|
||||||
|
context "as a student" do
|
||||||
|
discussion1_title = 'Meaning of life'
|
||||||
|
discussion2_title = 'Meaning of the universe'
|
||||||
|
|
||||||
|
before :once do
|
||||||
|
@teacher = user_with_pseudonym(active_user: true)
|
||||||
|
@student = user_with_pseudonym(active_user: true)
|
||||||
|
@account = Account.create(name: 'New Account', default_time_zone: 'UTC')
|
||||||
|
@course = course_factory(course_name: 'Aaron 101', account: @account,
|
||||||
|
active_course: true)
|
||||||
|
course_with_teacher(user: @teacher, active_course: true, active_enrollment: true)
|
||||||
|
course_with_student(course: @course, active_enrollment: true)
|
||||||
|
DiscussionsIndex.set_section_specific_discussions_flag(@course,'on')
|
||||||
|
|
||||||
|
# Discussion attributes: title, message, delayed_post_at, user
|
||||||
|
@discussion1 = @course.discussion_topics.create!(
|
||||||
|
title: discussion1_title,
|
||||||
|
message: 'Is it really 42?',
|
||||||
|
user: @teacher,
|
||||||
|
pinned: false
|
||||||
|
)
|
||||||
|
@discussion2 = @course.discussion_topics.create!(
|
||||||
|
title: discussion2_title,
|
||||||
|
message: 'Could it be 43?',
|
||||||
|
delayed_post_at: 1.day.from_now,
|
||||||
|
user: @teacher,
|
||||||
|
locked: true,
|
||||||
|
pinned: false
|
||||||
|
)
|
||||||
|
|
||||||
|
@discussion1.discussion_entries.create!(user: @student, message: "I think I read that somewhere...")
|
||||||
|
@discussion1.discussion_entries.create!(user: @student, message: ":eyeroll:")
|
||||||
|
end
|
||||||
|
|
||||||
|
def login_and_visit_course(teacher, course)
|
||||||
|
user_session(teacher)
|
||||||
|
DiscussionsIndex.visit(course)
|
||||||
|
end
|
||||||
|
|
||||||
|
def create_course_and_discussion(opts)
|
||||||
|
opts.reverse_merge!({ locked: false, pinned: false })
|
||||||
|
course = course_factory(:active_all => true)
|
||||||
|
discussion = course.discussion_topics.create!(
|
||||||
|
title: opts[:title],
|
||||||
|
message: opts[:message],
|
||||||
|
user: @teacher,
|
||||||
|
locked: opts[:locked],
|
||||||
|
pinned: opts[:pinned]
|
||||||
|
)
|
||||||
|
[course, discussion]
|
||||||
|
end
|
||||||
|
|
||||||
|
it "discussions can be created if setting is on" do
|
||||||
|
@course.allow_student_discussion_topics = true
|
||||||
|
login_and_visit_course(@student, @course)
|
||||||
|
expect_new_page_load {DiscussionsIndex.click_add_discussion}
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -107,6 +107,10 @@ class DiscussionsIndex
|
||||||
f('.subscribe-button', discussion(title))
|
f('.subscribe-button', discussion(title))
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def discussion_availability(title)
|
||||||
|
f('.discussion-availability', discussion(title))
|
||||||
|
end
|
||||||
|
|
||||||
# ---------------------- Discussion Menu ----------------------
|
# ---------------------- Discussion Menu ----------------------
|
||||||
def discussion_menu(title)
|
def discussion_menu(title)
|
||||||
f('.discussions-index-manage-menu button', discussion(title))
|
f('.discussions-index-manage-menu button', discussion(title))
|
||||||
|
|
Loading…
Reference in New Issue