Add specs for testing various groups page features
added teacher specs for several I only had student context tests for sshepherd,panda,17 Test Plan: - Run specs - Check for test_id/priority errors Change-Id: If9bcd8780ee7e7c816ef5debc31a8af1f31920fb Reviewed-on: https://gerrit.instructure.com/62030 Reviewed-by: Derek Hansen <dhansen@instructure.com> Product-Review: Steven Shepherd <sshepherd@instructure.com> QA-Review: Steven Shepherd <sshepherd@instructure.com> Tested-by: Jenkins
This commit is contained in:
parent
5c33b035ad
commit
47a8feb57b
|
@ -19,6 +19,7 @@ describe "groups" do
|
|||
add_users_to_group(@students + [@user],@testgroup.first)
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "home page" do
|
||||
it_behaves_like 'home_page', 'student'
|
||||
|
||||
|
@ -29,12 +30,9 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "announcements page" do
|
||||
it "should center the add announcement button if no announcements are present", priority: "1", test_id: 273606 do
|
||||
get announcements_page
|
||||
expect(f('#content.container-fluid div')).to have_attribute(:style, 'text-align: center;')
|
||||
expect(f('.btn.btn-large.btn-primary')).to be_displayed
|
||||
end
|
||||
it_behaves_like 'announcements_page', 'student'
|
||||
|
||||
it "should allow any group member to create an announcement", priority: "1", test_id: 273607 do
|
||||
get announcements_page
|
||||
|
@ -52,29 +50,6 @@ describe "groups" do
|
|||
expect(ff('.discussion-topic').size).to eq 2
|
||||
end
|
||||
|
||||
it "should list all announcements", priority: "1", test_id: 273608 do
|
||||
# Create 5 announcements in the group
|
||||
announcements = []
|
||||
5.times do |n|
|
||||
announcements << @testgroup.first.announcements.create!(title: "Announcement #{n+1}", message: "Message #{n+1}",user: @teacher)
|
||||
end
|
||||
|
||||
get announcements_page
|
||||
expect(ff('.discussion-topic').size).to eq 5
|
||||
end
|
||||
|
||||
it "should only list in-group announcements in the content right pane", priority: "1", test_id: 273621 do
|
||||
# create group and course announcements
|
||||
@testgroup.first.announcements.create!(title: 'Group Announcement', message: 'Group',user: @teacher)
|
||||
@course.announcements.create!(title: 'Course Announcement', message: 'Course',user: @teacher)
|
||||
|
||||
get announcements_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
fj(".ui-accordion-header a:contains('Announcements')").click
|
||||
expect(fln('Group Announcement')).to be_displayed
|
||||
expect(fln('Course Announcement')).to be_nil
|
||||
end
|
||||
|
||||
it "should allow all group members to see announcements", priority: "1", test_id: 273613 do
|
||||
@announcement = @testgroup.first.announcements.create!(title: 'Group Announcement', message: 'Group',user: @teacher)
|
||||
# Verifying with a few different group members should be enough to ensure all group members can see it
|
||||
|
@ -84,14 +59,6 @@ describe "groups" do
|
|||
verify_member_sees_announcement
|
||||
end
|
||||
|
||||
it "should only access group files in announcements right content pane", priority: "1", test_id: 273624 do
|
||||
add_test_files
|
||||
get announcements_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
|
||||
it "should only allow group members to access announcements", priority: "1", test_id: 315329 do
|
||||
get announcements_page
|
||||
expect(fj('.btn-primary:contains("Announcement")')).to be_displayed
|
||||
|
@ -99,7 +66,10 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "people page" do
|
||||
it_behaves_like 'people_page', 'student'
|
||||
|
||||
it "should display and show a list of group members", priority: "1", test_id: 273614 do
|
||||
get people_page
|
||||
# Checks that all students and teachers created in setup are listed on page
|
||||
|
@ -114,7 +84,10 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "discussions page" do
|
||||
it_behaves_like 'discussions_page', 'student'
|
||||
|
||||
it "should allow discussions to be created within a group", priority: "1", test_id: 273615 do
|
||||
get discussions_page
|
||||
expect_new_page_load { f('#new-discussion-btn').click }
|
||||
|
@ -140,28 +113,6 @@ describe "groups" do
|
|||
expect(f('#podcast_enabled')).to be_nil
|
||||
end
|
||||
|
||||
it "should only list in-group discussions in the content right pane", priority: "1", test_id: 273622 do
|
||||
# create group and course announcements
|
||||
group_dt = DiscussionTopic.create!(context: @testgroup.first, user: @teacher,
|
||||
title: 'Group Discussion', message: 'Group')
|
||||
course_dt = DiscussionTopic.create!(context: @course, user: @teacher,
|
||||
title: 'Course Discussion', message: 'Course')
|
||||
|
||||
get discussions_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
fj(".ui-accordion-header a:contains('Discussions')").click
|
||||
expect(fln("#{group_dt.title}")).to be_displayed
|
||||
expect(fln("#{course_dt.title}")).to be_nil
|
||||
end
|
||||
|
||||
it "should only access group files in discussions right content pane", priority: "1", test_id: 303701 do
|
||||
add_test_files
|
||||
get discussions_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
|
||||
it "should only allow group members to access discussions", priority: "1", test_id: 315332 do
|
||||
get discussions_page
|
||||
expect(f('#new-discussion-btn')).to be_displayed
|
||||
|
@ -169,13 +120,9 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "pages page" do
|
||||
it "should load pages index and display all pages", priority: "1", test_id: 273610 do
|
||||
@testgroup.first.wiki.wiki_pages.create!(title: "Page 1", user: @teacher)
|
||||
@testgroup.first.wiki.wiki_pages.create!(title: "Page 2", user: @teacher)
|
||||
get pages_page
|
||||
expect(ff('.collectionViewItems .clickable').size).to eq 2
|
||||
end
|
||||
it_behaves_like 'pages_page', 'student'
|
||||
|
||||
it "should allow group members to create a page", priority: "1", test_id: 273611 do
|
||||
get pages_page
|
||||
|
@ -191,30 +138,6 @@ describe "groups" do
|
|||
verify_member_sees_group_page
|
||||
end
|
||||
|
||||
it "should only list in-group pages in the content right pane", priority: "1", test_id: 273620 do
|
||||
# create group and course announcements
|
||||
group_page = @testgroup.first.wiki.wiki_pages.create!(user: @teacher,
|
||||
title: 'Group Page', message: 'Group')
|
||||
course_page = @course.wiki.wiki_pages.create!(user: @teacher,
|
||||
title: 'Course Page', message: 'Course')
|
||||
|
||||
get pages_page
|
||||
f('.btn-primary').click
|
||||
wait_for_ajaximations
|
||||
fj(".ui-accordion-header a:contains('Wiki Pages')").click
|
||||
expect(fln("#{group_page.title}")).to be_displayed
|
||||
expect(fln("#{course_page.title}")).to be_nil
|
||||
end
|
||||
|
||||
it "should only access group files in pages right content pane", priority: "1", test_id: 303700 do
|
||||
add_test_files
|
||||
get pages_page
|
||||
f('.btn-primary').click
|
||||
wait_for_ajaximations
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
|
||||
it "should only allow group members to access pages", priority: "1", test_id: 315331 do
|
||||
get pages_page
|
||||
expect(fj('.btn-primary:contains("Page")')).to be_displayed
|
||||
|
@ -222,6 +145,7 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "Files page" do
|
||||
it_behaves_like 'files_page', 'student'
|
||||
|
||||
|
@ -267,17 +191,6 @@ describe "groups" do
|
|||
move_file_to_folder('example.pdf','destination_folder')
|
||||
end
|
||||
|
||||
it "should search files only within the scope of a group", priority: "1", test_id: 273627 do
|
||||
add_test_files
|
||||
get files_page
|
||||
f('input[type="search"]').send_keys 'example.pdf'
|
||||
driver.action.send_keys(:return).perform
|
||||
refresh_page
|
||||
# This checks to make sure there is only one file and it is the group-level one
|
||||
expect(get_all_files_folders.count).to eq 1
|
||||
expect(ff('.media-body').first).to include_text('example.pdf')
|
||||
end
|
||||
|
||||
it "should allow group members to publish and unpublish a file", priority: "1", test_id: 273628 do
|
||||
add_test_files
|
||||
get files_page
|
||||
|
@ -295,6 +208,7 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "conferences page" do
|
||||
before(:all) do
|
||||
PluginSetting.create!(name: "wimba", settings: {"domain" => "wimba.instructure.com"})
|
||||
|
|
|
@ -19,11 +19,15 @@ describe "groups" do
|
|||
add_users_to_group(@students,@testgroup.first)
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "home page" do
|
||||
it_behaves_like 'home_page', 'teacher'
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "announcements page" do
|
||||
it_behaves_like 'announcements_page', 'teacher'
|
||||
|
||||
it "should allow teachers to see announcements", priority: "1", test_id: 287049 do
|
||||
@announcement = @testgroup.first.announcements.create!(title: 'Group Announcement', message: 'Group',user: @students.first)
|
||||
verify_member_sees_announcement
|
||||
|
@ -40,7 +44,22 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "people page" do
|
||||
it_behaves_like 'people_page', 'teacher'
|
||||
|
||||
it "should display and show a list of group members", priority: "2", test_id: 324929 do
|
||||
get people_page
|
||||
# Checks that all students and teachers created in setup are listed on page
|
||||
expect(ff('.student_roster .user_name').size).to eq 4
|
||||
expect(ff('.teacher_roster .user_name').size).to eq 2
|
||||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "discussions page" do
|
||||
it_behaves_like 'discussions_page', 'teacher'
|
||||
|
||||
it "should allow teachers to create discussions within a group", priority: "1", test_id: 285586 do
|
||||
get discussions_page
|
||||
expect_new_page_load { f('#new-discussion-btn').click }
|
||||
|
@ -66,7 +85,10 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "pages page" do
|
||||
it_behaves_like 'pages_page', 'teacher'
|
||||
|
||||
it "should allow teachers to create a page", priority: "1", test_id: 289993 do
|
||||
get pages_page
|
||||
manually_create_wiki_page('stuff','it happens')
|
||||
|
@ -79,6 +101,7 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "Files page" do
|
||||
it_behaves_like 'files_page', 'teacher'
|
||||
|
||||
|
@ -133,6 +156,7 @@ describe "groups" do
|
|||
end
|
||||
end
|
||||
|
||||
#-------------------------------------------------------------------------------------------------------------------
|
||||
describe "conferences page" do
|
||||
before(:all) do
|
||||
PluginSetting.create!(name: "wimba", settings: {"domain" => "wimba.instructure.com"})
|
||||
|
|
|
@ -18,3 +18,13 @@ def create_conference(title = 'test conference')
|
|||
f('.ui-dialog .btn-primary').click
|
||||
wait_for_ajaximations
|
||||
end
|
||||
|
||||
def conclude_conference(conf)
|
||||
conf.close
|
||||
conf.save!
|
||||
end
|
||||
|
||||
def click_gear_menu(num)
|
||||
ff('.icon-settings')[num].click
|
||||
wait_for_ajaximations
|
||||
end
|
|
@ -48,15 +48,116 @@ shared_examples 'home_page' do |context|
|
|||
end
|
||||
end
|
||||
|
||||
shared_examples 'conferences_page' do |context|
|
||||
it "should allow group users to create a conference", priority: pick_priority(context,"1","2"),test_id: pick_test_id(context, 307624, 308534) do
|
||||
title = 'test conference'
|
||||
get conferences_page
|
||||
create_conference(title)
|
||||
expect(f('#new-conference-list .ig-title').text).to include(title)
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'announcements_page' do |context|
|
||||
it "should center the add announcement button if no announcements are present", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273606, 324936) do
|
||||
get announcements_page
|
||||
expect(f('#content.container-fluid div')).to have_attribute(:style, 'text-align: center;')
|
||||
expect(f('.btn.btn-large.btn-primary')).to be_displayed
|
||||
end
|
||||
|
||||
it "should list all announcements", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273608, 324935) do
|
||||
# Create 5 announcements in the group
|
||||
announcements = []
|
||||
5.times do |n|
|
||||
announcements << @testgroup.first.announcements.create!(title: "Announcement #{n+1}", message: "Message #{n+1}",user: @teacher)
|
||||
end
|
||||
|
||||
get announcements_page
|
||||
expect(ff('.discussion-topic').size).to eq 5
|
||||
end
|
||||
|
||||
it "should only list in-group announcements in the content right pane", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273621, 324934) do
|
||||
# create group and course announcements
|
||||
@testgroup.first.announcements.create!(title: 'Group Announcement', message: 'Group',user: @teacher)
|
||||
@course.announcements.create!(title: 'Course Announcement', message: 'Course',user: @teacher)
|
||||
|
||||
get announcements_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
fj(".ui-accordion-header a:contains('Announcements')").click
|
||||
expect(fln('Group Announcement')).to be_displayed
|
||||
expect(fln('Course Announcement')).to be_nil
|
||||
end
|
||||
|
||||
it "should only access group files in announcements right content pane", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273624,324931) do
|
||||
add_test_files
|
||||
get announcements_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'pages_page' do |context|
|
||||
it "should load pages index and display all pages", priority: pick_priority(context,"1","2"), test_id: pick_test_id(context, 273610, 324927) do
|
||||
@testgroup.first.wiki.wiki_pages.create!(title: "Page 1", user: @teacher)
|
||||
@testgroup.first.wiki.wiki_pages.create!(title: "Page 2", user: @teacher)
|
||||
get pages_page
|
||||
expect(ff('.collectionViewItems .clickable').size).to eq 2
|
||||
end
|
||||
|
||||
it "should only list in-group pages in the content right pane", priority: pick_priority(context,"1","2"), test_id: pick_test_id(context, 273620,324928) do
|
||||
# create group and course announcements
|
||||
group_page = @testgroup.first.wiki.wiki_pages.create!(user: @teacher,
|
||||
title: 'Group Page', message: 'Group')
|
||||
course_page = @course.wiki.wiki_pages.create!(user: @teacher,
|
||||
title: 'Course Page', message: 'Course')
|
||||
|
||||
get pages_page
|
||||
f('.btn-primary').click
|
||||
wait_for_ajaximations
|
||||
fj(".ui-accordion-header a:contains('Wiki Pages')").click
|
||||
expect(fln("#{group_page.title}")).to be_displayed
|
||||
expect(fln("#{course_page.title}")).to be_nil
|
||||
end
|
||||
|
||||
it "should only access group files in pages right content pane", priority: pick_priority(context,"1","2"), test_id: pick_test_id(context, 303700,324932) do
|
||||
add_test_files
|
||||
get pages_page
|
||||
f('.btn-primary').click
|
||||
wait_for_ajaximations
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'people_page' do |context|
|
||||
it "should allow group users to see group registered services page", priority: pick_priority(context,"1","2"),test_id: pick_test_id(context, 323329, 324926) do
|
||||
get people_page
|
||||
expect_new_page_load { fln('View Registered Services').click }
|
||||
# Checks that we are on the Registered Services page
|
||||
expect(f('.btn.button-sidebar-wide')).to be_displayed
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'discussions_page' do |context|
|
||||
it "should only list in-group discussions in the content right pane", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273622,324930) do
|
||||
# create group and course announcements
|
||||
group_dt = DiscussionTopic.create!(context: @testgroup.first, user: @teacher,
|
||||
title: 'Group Discussion', message: 'Group')
|
||||
course_dt = DiscussionTopic.create!(context: @course, user: @teacher,
|
||||
title: 'Course Discussion', message: 'Course')
|
||||
|
||||
get discussions_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
fj(".ui-accordion-header a:contains('Discussions')").click
|
||||
expect(fln("#{group_dt.title}")).to be_displayed
|
||||
expect(fln("#{course_dt.title}")).to be_nil
|
||||
end
|
||||
|
||||
it "should only access group files in discussions right content pane", pick_priority(context,"1","2"), test_id: pick_test_id(context, 303701, 324933) do
|
||||
add_test_files
|
||||
get discussions_page
|
||||
expect_new_page_load { f('.btn-primary').click }
|
||||
expand_files_on_content_pane
|
||||
expect(ffj('.file .text:visible').size).to eq 1
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'files_page' do |context|
|
||||
it "should allow group users to rename a file", priority: "2", test_id: pick_test_id(context, 312869, 315577) do
|
||||
add_test_files
|
||||
|
@ -65,7 +166,47 @@ shared_examples 'files_page' do |context|
|
|||
wait_for_ajaximations
|
||||
expect(fln('cool new name')).to be_present
|
||||
end
|
||||
|
||||
it "should search files only within the scope of a group", pick_priority(context,"1","2"), test_id: pick_test_id(context, 273627, 324937) do
|
||||
add_test_files
|
||||
get files_page
|
||||
f('input[type="search"]').send_keys 'example.pdf'
|
||||
driver.action.send_keys(:return).perform
|
||||
refresh_page
|
||||
# This checks to make sure there is only one file and it is the group-level one
|
||||
expect(get_all_files_folders.count).to eq 1
|
||||
expect(ff('.media-body').first).to include_text('example.pdf')
|
||||
end
|
||||
end
|
||||
|
||||
#-----------------------------------------------------------------------------------------------------------------------
|
||||
shared_examples 'conferences_page' do |context|
|
||||
it "should allow group users to create a conference", priority: pick_priority(context,"1","2"),test_id: pick_test_id(context, 307624, 308534) do
|
||||
title = 'test conference'
|
||||
get conferences_page
|
||||
create_conference(title)
|
||||
expect(f('#new-conference-list .ig-title').text).to include(title)
|
||||
end
|
||||
|
||||
it "should allow group users to delete an active conference", priority: pick_priority(context,"1","2"),test_id: pick_test_id(context, 323557, 323558) do
|
||||
WimbaConference.create!(title: "new conference", user: @user, context: @testgroup.first)
|
||||
get conferences_page
|
||||
|
||||
click_gear_menu(0)
|
||||
delete_conference
|
||||
expect(f('#new-conference-list')).to include_text('There are no new conferences')
|
||||
end
|
||||
|
||||
it "should allow group users to delete a concluded conference", priority: pick_priority(context,"1","2"),test_id: pick_test_id(context, 323559, 323560) do
|
||||
cc = WimbaConference.create!(title: "cncluded conference", user: @user, context: @testgroup.first)
|
||||
conclude_conference(cc)
|
||||
get conferences_page
|
||||
click_gear_menu(0)
|
||||
delete_conference
|
||||
expect(f('#concluded-conference-list')).to include_text('There are no concluded conferences')
|
||||
end
|
||||
end
|
||||
|
||||
# ======================================================================================================================
|
||||
# Helper Methods
|
||||
# ======================================================================================================================
|
||||
|
|
Loading…
Reference in New Issue