spec: rails 5.1: rewrite controller spec format - part F-G

Change-Id: Ie5bce0ade92b053b9ac3d4254f0d8074746e232b
Reviewed-on: https://gerrit.instructure.com/120222
Tested-by: Jenkins
Reviewed-by: Cody Cutrer <cody@instructure.com>
Product-Review: James Williams  <jamesw@instructure.com>
QA-Review: James Williams  <jamesw@instructure.com>
This commit is contained in:
James Williams 2017-07-24 06:38:12 -06:00
parent c7f682c8c6
commit f444ab2e27
14 changed files with 414 additions and 412 deletions

View File

@ -32,13 +32,13 @@ describe FilePreviewsController do
it "should require authorization to view the file" do
course_model
attachment_model
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response.status).to eq 401
end
it "should render lock information for the file" do
attachment_model locked: true
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response).to render_template 'lock_explanation'
end
@ -46,7 +46,7 @@ describe FilePreviewsController do
attachment_model
file_id = @attachment.id
@attachment.destroy_permanently!
get :show, course_id: @course.id, file_id: file_id
get :show, params: {course_id: @course.id, file_id: file_id}
expect(response.status).to eq 404
expect(assigns['headers']).to eq false
expect(assigns['show_left_side']).to eq false
@ -56,7 +56,7 @@ describe FilePreviewsController do
Attachment.any_instance.stubs(:crocodoc_url).returns('http://example.com/fake_crocodoc_url')
Attachment.any_instance.stubs(:canvadoc_url).returns('http://example.com/fake_canvadoc_url')
attachment_model content_type: 'application/msword'
get :show, course_id: @course.id, file_id: @attachment.id, annotate: 1
get :show, params: {course_id: @course.id, file_id: @attachment.id, annotate: 1}
expect(response).to redirect_to @attachment.crocodoc_url
end
@ -64,7 +64,7 @@ describe FilePreviewsController do
Attachment.any_instance.stubs(:crocodoc_url).returns('http://example.com/fake_crocodoc_url')
Attachment.any_instance.stubs(:canvadoc_url).returns('http://example.com/fake_canvadoc_url')
attachment_model content_type: 'application/msword'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response).to redirect_to @attachment.canvadoc_url
end
@ -72,7 +72,7 @@ describe FilePreviewsController do
Attachment.any_instance.stubs(:crocodoc_url).returns(nil)
Attachment.any_instance.stubs(:canvadoc_url).returns(nil)
attachment_model content_type: 'application/msword'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response).to be_redirect
expect(response.location).to match %r{\A//docs.google.com/viewer}
end
@ -81,7 +81,7 @@ describe FilePreviewsController do
Attachment.any_instance.stubs(:crocodoc_url).returns(nil)
Attachment.any_instance.stubs(:canvadoc_url).returns(nil)
attachment_model content_type: 'text/html'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response).to be_redirect
expect(response.location).to match %r{/courses/#{@course.id}/files/#{@attachment.id}/preview}
end
@ -92,21 +92,21 @@ describe FilePreviewsController do
@account.disable_service(:google_docs_previews)
@account.save!
attachment_model content_type: 'application/msword'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response.status).to eq 200
expect(response).to render_template 'no_preview'
end
it "should render an img element for image types" do
attachment_model content_type: 'image/png'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response.status).to eq 200
expect(response).to render_template 'img_preview'
end
it "should render a media tag for media types" do
attachment_model content_type: 'video/mp4'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response.status).to eq 200
expect(response).to render_template 'media_preview'
end
@ -118,14 +118,14 @@ describe FilePreviewsController do
mod.completion_requirements = { tag.id => {:type => 'must_view'} }
mod.save!
expect(mod.evaluate_for(@user).workflow_state).to eq "unlocked"
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(mod.evaluate_for(@user).workflow_state).to eq "completed"
end
it "should log asset accesses when previewable" do
Setting.set('enable_page_views', 'db')
attachment_model content_type: 'image/png'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
access = AssetUserAccess.for_user(@user).first
expect(access.asset).to eq @attachment
end
@ -133,7 +133,7 @@ describe FilePreviewsController do
it "should not log asset accesses when not previewable" do
Setting.set('enable_page_views', 'db')
attachment_model content_type: 'unknown/unknown'
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
access = AssetUserAccess.for_user(@user)
expect(access).to be_empty
end
@ -141,7 +141,7 @@ describe FilePreviewsController do
it "should work with hidden files" do
attachment_model content_type: 'image/png'
@attachment.update_attribute(:file_state, 'hidden')
get :show, course_id: @course.id, file_id: @attachment.id
get :show, params: {course_id: @course.id, file_id: @attachment.id}
expect(response).to be_success
end
end

View File

@ -93,20 +93,20 @@ describe FilesController do
describe "GET 'quota'" do
it "should require authorization" do
get 'quota', :course_id => @course.id
get 'quota', params: {:course_id => @course.id}
assert_unauthorized
end
it "should assign variables for course quota" do
user_session(@teacher)
get 'quota', :course_id => @course.id
get 'quota', params: {:course_id => @course.id}
expect(assigns[:quota]).not_to be_nil
expect(response).to be_success
end
it "should assign variables for user quota" do
user_session(@student)
get 'quota', :user_id => @student.id
get 'quota', params: {:user_id => @student.id}
expect(assigns[:quota]).not_to be_nil
expect(response).to be_success
end
@ -114,7 +114,7 @@ describe FilesController do
it "should assign variables for group quota" do
user_session(@teacher)
group_model(:context => @course)
get 'quota', :group_id => @group.id
get 'quota', params: {:group_id => @group.id}
expect(assigns[:quota]).not_to be_nil
expect(response).to be_success
end
@ -122,7 +122,7 @@ describe FilesController do
it "should allow changing group quota" do
user_session(@teacher)
group_model(:context => @course, :storage_quota => 500.megabytes)
get 'quota', :group_id => @group.id
get 'quota', params: {:group_id => @group.id}
expect(assigns[:quota]).to eq 500.megabytes
expect(response).to be_success
end
@ -130,21 +130,21 @@ describe FilesController do
describe "GET 'index'" do
it "should require authorization" do
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
assert_unauthorized
end
it "should redirect 'disabled', if disabled by the teacher" do
user_session(@student)
@course.update_attribute(:tab_configuration, [{'id'=>11,'hidden'=>true}])
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(response).to be_redirect
expect(flash[:notice]).to match(/That page has been disabled/)
end
it "should assign variables" do
user_session(@teacher)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(response).to be_success
expect(assigns[:contexts]).not_to be_nil
expect(assigns[:contexts][0]).to eql(@course)
@ -155,7 +155,7 @@ describe FilesController do
r1 = Folder.root_folders(@course).first
f1 = course_folder
a1 = folder_file
get 'index', :course_id => @course.id, :format => 'json'
get 'index', params: {:course_id => @course.id}, :format => 'json'
expect(response).to be_success
data = json_parse
expect(data).not_to be_nil
@ -165,13 +165,13 @@ describe FilesController do
it "should work for a user context, too" do
user_session(@student)
get 'index', :user_id => @student.id
get 'index', params: {:user_id => @student.id}
expect(response).to be_success
end
it "should work for a group context, too" do
group_with_user_logged_in(:group_context => Account.default)
get 'index', :group_id => @group.id
get 'index', params: {:group_id => @group.id}
expect(response).to be_success
end
@ -180,7 +180,7 @@ describe FilesController do
new_valid_tool(@course)
user_file
@file.context = @group
get 'index', :group_id => @group.id
get 'index', params: {:group_id => @group.id}
expect(assigns[:js_env][:FILES_CONTEXTS][0][:file_menu_tools]).to eq []
end
@ -203,14 +203,14 @@ describe FilesController do
it "should show restricted external tools to teachers" do
@course.enroll_teacher(@user).accept!
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(assigns[:js_env][:FILES_CONTEXTS][0][:file_menu_tools].count).to eq 1
end
it "should not show restricted external tools to students" do
@course.enroll_student(@user).accept!
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(assigns[:js_env][:FILES_CONTEXTS][0][:file_menu_tools]).to eq []
end
end
@ -229,12 +229,12 @@ describe FilesController do
end
it "authorizes users on a remote shard" do
get 'index', :user_id => @user.global_id
get 'index', params: {:user_id => @user.global_id}
expect(response).to be_success
end
it "authorizes users on a remote shard for JSON data" do
get 'index', :user_id => @user.global_id, :format => :json
get 'index', params: {:user_id => @user.global_id}, :format => :json
expect(response).to be_success
end
end
@ -246,14 +246,14 @@ describe FilesController do
end
it "should require authorization" do
get 'show', :course_id => @course.id, :id => @file.id
get 'show', params: {:course_id => @course.id, :id => @file.id}
assert_unauthorized
end
describe "with verifiers" do
it "should allow public access with legacy verifier" do
Attachment.any_instance.stubs(:canvadoc_url).returns "stubby"
get 'show', :course_id => @course.id, :id => @file.id, :verifier => @file.uuid, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @file.id, :verifier => @file.uuid}, :format => 'json'
expect(response).to be_success
expect(json_parse['attachment']).to_not be_nil
expect(json_parse['attachment']['canvadoc_session_url']).to eq "stubby"
@ -262,7 +262,7 @@ describe FilesController do
it "should allow public access with new verifier" do
verifier = Attachments::Verification.new(@file).verifier_for_user(nil)
get 'show', :course_id => @course.id, :id => @file.id, :verifier => verifier, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @file.id, :verifier => verifier}, :format => 'json'
expect(response).to be_success
expect(json_parse['attachment']).to_not be_nil
expect(json_parse['attachment']['md5']).to be_nil
@ -272,14 +272,14 @@ describe FilesController do
user_session(@teacher)
session[:require_terms] = true
verifier = Attachments::Verification.new(@file).verifier_for_user(@teacher)
get 'show', :course_id => @course.id, :id => @file.id, :verifier => verifier, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @file.id, :verifier => verifier}, :format => 'json'
expect(response).to be_success
end
end
it "should assign variables" do
user_session(@teacher)
get 'show', :course_id => @course.id, :id => @file.id
get 'show', params: {:course_id => @course.id, :id => @file.id}
expect(response).to be_success
expect(assigns[:attachment]).not_to be_nil
expect(assigns[:attachment]).to eql(@file)
@ -287,7 +287,7 @@ describe FilesController do
it "should redirect for download" do
user_session(@teacher)
get 'show', :course_id => @course.id, :id => @file.id, :download => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1}
expect(response).to be_redirect
end
@ -295,7 +295,7 @@ describe FilesController do
user_session(@teacher)
# this call should happen inside of FilesController#send_attachment
FilesController.any_instance.expects(:send_stored_file).with(@file, false)
get 'show', :course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1}
end
it "should remember most recent sf_verifier in session" do
@ -309,7 +309,7 @@ describe FilesController do
# first verifier
user_session(user1)
get 'show', :user_id => user1.id, :id => file1.id, :ts => ts1, :sf_verifier => sf_verifier1
get 'show', params: {:user_id => user1.id, :id => file1.id, :ts => ts1, :sf_verifier => sf_verifier1}
expect(response).to be_success
expect(session[:file_access_user_id]).to eq user1.id
@ -318,7 +318,7 @@ describe FilesController do
permissions_key = session[:permissions_key]
# second verifier, should update session
get 'show', :user_id => user2.id, :id => @file.id, :ts => ts2, :sf_verifier => sf_verifier2
get 'show', params: {:user_id => user2.id, :id => @file.id, :ts => ts2, :sf_verifier => sf_verifier2}
expect(response).to be_success
expect(session[:file_access_user_id]).to eq user2.id
@ -329,14 +329,14 @@ describe FilesController do
# repeat access, even without verifier, should extend expiration (though
# we can't assert that, because milliseconds) and thus change
# permissions_key
get 'show', :user_id => user2.id, :id => @file.id
get 'show', params: {:user_id => user2.id, :id => @file.id}
expect(response).to be_success
expect(session[:permissions_key]).not_to eq permissions_key
end
it "should set cache headers for non text files" do
get 'show', :course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1}
expect(response.header["Cache-Control"]).to include "private, max-age"
expect(response.header["Cache-Control"]).not_to include "no-cache"
expect(response.header["Cache-Control"]).not_to include "no-store"
@ -349,7 +349,7 @@ describe FilesController do
it "should not set cache headers for text files" do
@file.content_type = "text/html"
@file.save
get 'show', :course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1, :verifier => @file.uuid, :download_frd => 1}
expect(response.header["Cache-Control"]).not_to include "private, max-age"
expect(response.header["Cache-Control"]).to include "no-cache"
expect(response.header["Cache-Control"]).to include "no-store"
@ -362,9 +362,9 @@ describe FilesController do
it "should allow concluded teachers to read and download files" do
user_session(@teacher)
@enrollment.conclude
get 'show', :course_id => @course.id, :id => @file.id
get 'show', params: {:course_id => @course.id, :id => @file.id}
expect(response).to be_success
get 'show', :course_id => @course.id, :id => @file.id, :download => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1}
expect(response).to be_redirect
end
@ -375,7 +375,7 @@ describe FilesController do
@old_file.save!
user_session(@teacher)
get 'show', course_id: @course.id, id: @old_file.id, preview: 1
get 'show', params: {course_id: @course.id, id: @old_file.id, preview: 1}
expect(response).to be_redirect
expect(response.location).to match /\/courses\/#{@course.id}\/files\/#{@file.id}/
end
@ -387,15 +387,15 @@ describe FilesController do
it "should allow concluded students to read and download files" do
@enrollment.conclude
get 'show', :course_id => @course.id, :id => @file.id
get 'show', params: {:course_id => @course.id, :id => @file.id}
expect(response).to be_success
get 'show', :course_id => @course.id, :id => @file.id, :download => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1}
expect(response).to be_redirect
end
it "should mark files as viewed for module progressions if the file is previewed inline" do
file_in_a_module
get 'show', :course_id => @course.id, :id => @file.id, :inline => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :inline => 1}
expect(json_parse).to eq({'ok' => true})
@module.reload
expect(@module.evaluate_for(@student).state).to eql(:completed)
@ -403,7 +403,7 @@ describe FilesController do
it "should mark files as viewed for module progressions if the file is downloaded" do
file_in_a_module
get 'show', :course_id => @course.id, :id => @file.id, :download => 1
get 'show', params: {:course_id => @course.id, :id => @file.id, :download => 1}
@module.reload
expect(@module.evaluate_for(@student).state).to eql(:completed)
end
@ -411,7 +411,7 @@ describe FilesController do
it "should mark files as viewed for module progressions if the file data is requested and is canvadocable" do
file_in_a_module
Attachment.any_instance.stubs(:canvadocable?).returns true
get 'show', :course_id => @course.id, :id => @file.id, :format => :json
get 'show', params: {:course_id => @course.id, :id => @file.id}, :format => :json
@module.reload
expect(@module.evaluate_for(@student).state).to eql(:completed)
end
@ -419,7 +419,7 @@ describe FilesController do
it "should mark media files viewed when rendering html with file_preview" do
@file = attachment_model(:context => @course, :uploaded_data => stub_file_data('test.m4v', 'asdf', 'video/mp4'))
file_in_a_module
get 'show', :course_id => @course.id, :id => @file.id, :format => :html
get 'show', params: {:course_id => @course.id, :id => @file.id}, :format => :html
@module.reload
expect(@module.evaluate_for(@student).state).to eql(:completed)
end
@ -430,7 +430,7 @@ describe FilesController do
owned_file.user_id = @student.id
owned_file.save
owned_file.destroy
get 'show', :course_id => @course.id, :id => owned_file.id
get 'show', params: {:course_id => @course.id, :id => owned_file.id}
expect(response).to be_redirect
expect(flash[:notice]).to match(/has been deleted/)
expect(URI.parse(response['Location']).path).to eq "/courses/#{@course.id}/files"
@ -441,7 +441,7 @@ describe FilesController do
new_file.display_name = 'holla'
new_file.save
get 'show', :course_id => @course.id, :id => new_file.id
get 'show', params: {:course_id => @course.id, :id => new_file.id}
expect(response).to be_success
expect(assigns(:attachment)).to eq new_file
end
@ -452,7 +452,7 @@ describe FilesController do
unowned_file.save
unowned_file.destroy
get 'show', :course_id => @course.id, :id => unowned_file.id
get 'show', params: {:course_id => @course.id, :id => unowned_file.id}
expect(response.status).to eq(404)
expect(assigns(:not_found_message)).to eq("This file has been deleted")
end
@ -464,7 +464,7 @@ describe FilesController do
unowned_file.destroy
remove_user_session
get 'show', :course_id => @course.id, :id => unowned_file.id
get 'show', params: {:course_id => @course.id, :id => unowned_file.id}
expect(response.status).to eq(404)
expect(assigns(:not_found_message)).to eq("This file has been deleted")
end
@ -475,7 +475,7 @@ describe FilesController do
@assignment.submit_homework @student, attachments: [@attachment]
# create an orphaned attachment_association
@assignment.all_submissions.delete_all
get 'show', user_id: @student.id, id: @attachment.id, download_frd: 1
get 'show', params: {user_id: @student.id, id: @attachment.id, download_frd: 1}
expect(response).to be_success
end
end
@ -488,8 +488,8 @@ describe FilesController do
it "should work for quiz_statistics" do
quiz_model
file = @quiz.statistics_csv('student_analysis').csv_attachment
get 'show', :quiz_statistics_id => file.reload.context.id,
:file_id => file.id, :download => '1', :verifier => file.uuid
get 'show', params: {:quiz_statistics_id => file.reload.context.id,
:file_id => file.id, :download => '1', :verifier => file.uuid}
expect(response).to be_redirect
end
@ -497,7 +497,7 @@ describe FilesController do
@assignment = @course.assignments.create!(:title => 'upload_assignment', :submission_types => 'online_upload')
attachment_model :context => @student
@assignment.submit_homework @student, :attachments => [@attachment]
get 'show', :user_id => @student.id, :id => @attachment.id, :inline => 1
get 'show', params: {:user_id => @student.id, :id => @attachment.id, :inline => 1}
expect(response).to be_success
end
end
@ -510,20 +510,20 @@ describe FilesController do
end
it "is included if :download is allowed" do
get 'show', :course_id => @course.id, :id => @file.id, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @file.id}, :format => 'json'
expect(json_parse['attachment']['canvadoc_session_url']).to be_present
end
it "is not included if locked" do
@file.lock_at = 1.month.ago
@file.save!
get 'show', :course_id => @course.id, :id => @file.id, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @file.id}, :format => 'json'
expect(json_parse['attachment']['canvadoc_session_url']).to be_nil
end
it "is included in newly uploaded files" do
user_session(@teacher)
post 'create', :format => 'json', :course_id => @course.id, :attachment => {:display_name => "bob", :uploaded_data => io}
post 'create', params: {:course_id => @course.id, :attachment => {:display_name => "bob", :uploaded_data => io}}, :format => 'json'
expect(json_parse['attachment']['canvadoc_session_url']).to be_present
end
end
@ -541,16 +541,16 @@ describe FilesController do
end
it "should find files by relative path" do
get "show_relative", :course_id => @course.id, :file_path => @file.full_display_path
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_display_path}
expect(response).to be_redirect
get "show_relative", :course_id => @course.id, :file_path => @file.full_path
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_path}
expect(response).to be_redirect
def test_path(path)
file_with_path(path)
get "show_relative", :course_id => @course.id, :file_path => @file.full_display_path
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_display_path}
expect(response).to be_redirect
get "show_relative", :course_id => @course.id, :file_path => @file.full_path
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_path}
expect(response).to be_redirect
end
@ -560,21 +560,21 @@ describe FilesController do
end
it "should render unauthorized access page if the file path doesn't match" do
get "show_relative", :course_id => @course.id, :file_path => @file.full_display_path+"blah"
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_display_path+"blah"}
expect(response).to render_template("shared/errors/file_not_found")
get "show_relative", :file_id => @file.id, :course_id => @course.id, :file_path => @file.full_display_path+"blah"
get "show_relative", params: {:file_id => @file.id, :course_id => @course.id, :file_path => @file.full_display_path+"blah"}
expect(response).to render_template("shared/errors/file_not_found")
end
it "should render file_not_found even if the format is non-html" do
get "show_relative", :file_id => @file.id, :course_id => @course.id, :file_path => @file.full_display_path+".css", :format => 'css'
get "show_relative", params: {:file_id => @file.id, :course_id => @course.id, :file_path => @file.full_display_path+".css"}, :format => 'css'
expect(response).to render_template("shared/errors/file_not_found")
end
it "should ignore bad file_ids" do
get "show_relative", :file_id => @file.id + 1, :course_id => @course.id, :file_path => @file.full_display_path
get "show_relative", params: {:file_id => @file.id + 1, :course_id => @course.id, :file_path => @file.full_display_path}
expect(response).to be_redirect
get "show_relative", :file_id => "blah", :course_id => @course.id, :file_path => @file.full_display_path
get "show_relative", params: {:file_id => "blah", :course_id => @course.id, :file_path => @file.full_display_path}
expect(response).to be_redirect
end
@ -589,7 +589,7 @@ describe FilesController do
allow(s3object).to receive(:body).and_return(s3object)
allow(s3object).to receive(:read).and_return('hello')
@file.any_instantiation.stubs(:s3object).returns(s3object)
get "show_relative", file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1
get "show_relative", params: {file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1}
expect(response).to be_success
expect(response.body).to eq 'hello'
expect(response.content_type).to eq 'text/html'
@ -602,7 +602,7 @@ describe FilesController do
@file.update_attribute(:content_type, 'text/html')
@file.update_attribute(:size, 1024 * 1024)
@file.any_instantiation.stubs(:inline_url).returns("https://s3/myfile")
get "show_relative", file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1
get "show_relative", params: {file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1}
expect(response).to redirect_to("https://s3/myfile")
end
@ -612,7 +612,7 @@ describe FilesController do
request.host = 'files.test'
@file.update_attribute(:content_type, 'image/jpeg')
@file.any_instantiation.stubs(:inline_url).returns("https://s3/myfile")
get "show_relative", file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1
get "show_relative", params: {file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1}
expect(response).to redirect_to("https://s3/myfile")
end
@ -622,7 +622,7 @@ describe FilesController do
request.host = 'files.test'
# it's a .doc file
@file.any_instantiation.stubs(:download_url).returns("https://s3/myfile")
get "show_relative", file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1
get "show_relative", params: {file_id: @file.id, course_id: @course.id, file_path: @file.full_display_path, inline: 1, download: 1}
expect(response).to redirect_to("https://s3/myfile")
end
@ -630,12 +630,12 @@ describe FilesController do
context "unauthenticated user" do
it "renders unauthorized if the file exists" do
get "show_relative", :course_id => @course.id, :file_path => @file.full_display_path
get "show_relative", params: {:course_id => @course.id, :file_path => @file.full_display_path}
assert_unauthorized
end
it "renders unauthorized if the file doesn't exist" do
get "show_relative", :course_id => @course.id, :file_path => "course files/nope"
get "show_relative", params: {:course_id => @course.id, :file_path => "course files/nope"}
assert_unauthorized
end
end
@ -643,13 +643,13 @@ describe FilesController do
describe "POST 'create'" do
it "should require authorization" do
post 'create', :course_id => @course.id, :attachment => {:display_name => "bob"}
post 'create', params: {:course_id => @course.id, :attachment => {:display_name => "bob"}}
assert_unauthorized
end
it "should create file" do
user_session(@teacher)
post 'create', :course_id => @course.id, :attachment => {:display_name => "bob", :uploaded_data => io}
post 'create', params: {:course_id => @course.id, :attachment => {:display_name => "bob", :uploaded_data => io}}
expect(response).to be_redirect
expect(assigns[:attachment]).not_to be_nil
expect(assigns[:attachment].display_name).to eql("bob")
@ -659,14 +659,14 @@ describe FilesController do
@course.account.allow_feature! :usage_rights_required
@course.enable_feature! :usage_rights_required
user_session(@teacher)
post 'create', :course_id => @course.id, :attachment => {:display_name => "wat", :uploaded_data => io}
post 'create', params: {:course_id => @course.id, :attachment => {:display_name => "wat", :uploaded_data => io}}
expect(assigns[:attachment]).to be_locked
end
it "should reject an upload that would exceed quota" do
user_session(@teacher)
Setting.set('user_default_quota', 7) # seven... seven bytes.
post 'create', :user_id => @teacher.id, :format => :json, :attachment => {:display_name => "bob", :uploaded_data => io}
post 'create', params: {:user_id => @teacher.id, :attachment => {:display_name => "bob", :uploaded_data => io}}, :format => :json
expect(response.status).to eq 400
expect(response.body).to include 'quota exceeded'
end
@ -679,21 +679,21 @@ describe FilesController do
file.file_state = 'deleted'
file.workflow_state = 'unattached'
file.save!
post 'create', :user_id => @student.id,
:format => 'json',
post 'create', params: {:user_id => @student.id,
:check_quota_after => '0',
:filename => 'submission.doc',
:attachment => {
:unattached_attachment_id => file.id,
:uploaded_data => io
}
}},
:format => 'json'
expect(response).to be_success
expect(file.reload).to be_available
end
it "refuses to create a file in a submissions folder" do
user_session(@student)
post 'create', :user_id => @student.id, :format => :json, :attachment => {:display_name => 'blah', :uploaded_data => io, :folder_id => @student.submissions_folder.id}
post 'create', params: {:user_id => @student.id, :attachment => {:display_name => 'blah', :uploaded_data => io, :folder_id => @student.submissions_folder.id}}, :format => :json
expect(response.status).to eq 401
end
@ -714,7 +714,7 @@ describe FilesController do
@assignment = @course.assignments.create!(:title => 'upload_assignment', :submission_types => 'online_upload')
user_session(@student)
post 'create', :attachment => {:display_name => "bob", :uploaded_data => io, :unattached_attachment_id => @attachment.id}
post 'create', params: {:attachment => {:display_name => "bob", :uploaded_data => io, :unattached_attachment_id => @attachment.id}}
expect(response).to be_redirect
expect(assigns[:attachment]).not_to be_nil
expect(assigns[:attachment].display_name).to eql("bob")
@ -729,13 +729,13 @@ describe FilesController do
end
it "should require authorization" do
put 'update', :course_id => @course.id, :id => @file.id
put 'update', params: {:course_id => @course.id, :id => @file.id}
assert_unauthorized
end
it "should update file" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:display_name => "new name", :uploaded_data => nil}
put 'update', params: {:course_id => @course.id, :id => @file.id, :attachment => {:display_name => "new name", :uploaded_data => nil}}
expect(response).to be_redirect
expect(assigns[:attachment]).to eql(@file)
expect(assigns[:attachment].display_name).to eql("new name")
@ -746,7 +746,7 @@ describe FilesController do
user_session(@teacher)
course_folder
put 'update', :course_id => @course.id, :id => @file.id, :attachment => { :folder_id => @folder.id }, :format => 'json'
put 'update', params: {:course_id => @course.id, :id => @file.id, :attachment => { :folder_id => @folder.id }}, :format => 'json'
expect(response).to be_success
@file.reload
@ -764,13 +764,13 @@ describe FilesController do
it "should not move a file into a submissions folder" do
user_session(@student)
put 'update', :user_id => @student.id, :id => @file.id, :attachment => { :folder_id => @sub_folder.id }, :format => 'json'
put 'update', params: {:user_id => @student.id, :id => @file.id, :attachment => { :folder_id => @sub_folder.id }}, :format => 'json'
expect(response.status).to eq 401
end
it "should not move a file out of a submissions folder" do
user_session(@student)
put 'update', :user_id => @student.id, :id => @sub_file.id, :attachment => { :folder_id => @root_folder.id }, :format => 'json'
put 'update', params: {:user_id => @student.id, :id => @sub_file.id, :attachment => { :folder_id => @root_folder.id }}, :format => 'json'
expect(response.status).to eq 401
end
end
@ -779,7 +779,7 @@ describe FilesController do
course_with_teacher_logged_in(:active_all => true)
course_file
new_content = default_uploaded_data
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:uploaded_data => new_content}
put 'update', params: {:course_id => @course.id, :id => @file.id, :attachment => {:uploaded_data => new_content}}
expect(response).to be_redirect
expect(assigns[:attachment]).to eql(@file)
@file.reload
@ -795,14 +795,14 @@ describe FilesController do
end
it "should not publish if usage_rights unset" do
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
put 'update', params: {:course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}}
expect(@file.reload).to be_locked
end
it "should publish if usage_rights set" do
@file.usage_rights = @course.usage_rights.create! use_justification: 'public_domain'
@file.save!
put 'update', :course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}
put 'update', params: {:course_id => @course.id, :id => @file.id, :attachment => {:locked => "false"}}
expect(@file.reload).not_to be_locked
end
end
@ -815,14 +815,14 @@ describe FilesController do
end
it "should require authorization" do
delete 'destroy', :course_id => @course.id, :id => @file.id
delete 'destroy', params: {:course_id => @course.id, :id => @file.id}
expect(response.body).to eql("{\"message\":\"Unauthorized to delete this file\"}")
expect(assigns[:attachment].file_state).to eq 'available'
end
it "should delete file" do
user_session(@teacher)
delete 'destroy', :course_id => @course.id, :id => @file.id
delete 'destroy', params: {:course_id => @course.id, :id => @file.id}
expect(response).to be_redirect
expect(assigns[:attachment]).to eql(@file)
expect(assigns[:attachment].file_state).to eq 'deleted'
@ -831,7 +831,7 @@ describe FilesController do
it "refuses to delete a file in a submissions folder" do
file = @student.attachments.create! :display_name => 'blah', :uploaded_data => default_uploaded_data, :folder => @student.submissions_folder
delete 'destroy', :user_id => @student.id, :id => file.id
delete 'destroy', params: {:user_id => @student.id, :id => file.id}
expect(response.status).to eq 401
end
@ -851,7 +851,7 @@ describe FilesController do
end
it "should not delete" do
delete 'destroy', :id => @file.id
delete 'destroy', params: {:id => @file.id}
expect(response.body).to eql("{\"message\":\"Cannot delete a file that has been submitted as part of an assignment\"}")
expect(assigns[:attachment].file_state).to eq 'available'
end
@ -861,19 +861,19 @@ describe FilesController do
describe "POST 'create_pending'" do
it "should require authorization" do
user_session(@other_user)
post 'create_pending', {:attachment => {:context_code => @course.asset_string}}
post 'create_pending', params: {:attachment => {:context_code => @course.asset_string}}
assert_unauthorized
end
it "should require a pseudonym" do
post 'create_pending', {:attachment => {:context_code => @course.asset_string}}
post 'create_pending', params: {:attachment => {:context_code => @course.asset_string}}
expect(response).to redirect_to login_url
end
it "should create file placeholder (in local mode)" do
local_storage!
user_session(@teacher)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "bob.txt"
}}
@ -892,7 +892,7 @@ describe FilesController do
it "should create file placeholder (in s3 mode)" do
s3_storage!
user_session(@teacher)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "bob.txt"
}}
@ -912,7 +912,7 @@ describe FilesController do
# the API does, and the files page sends it based on the browser's detection
s3_storage!
user_session(@teacher)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "something.rb",
:content_type => "text/magical-incantation"
@ -925,7 +925,7 @@ describe FilesController do
s3_storage!
user_session(@student)
Setting.set('user_default_quota', -1)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @student.asset_string,
:filename => "bob.txt"
}}
@ -938,7 +938,7 @@ describe FilesController do
user_session(@student)
@assignment = @course.assignments.create!(:title => 'upload_assignment', :submission_types => 'online_upload')
Setting.set('user_default_quota', -1)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @assignment.context_code,
:asset_string => @assignment.asset_string,
:intent => 'submit',
@ -967,7 +967,7 @@ describe FilesController do
#assignment.grants_right?(@student, :nothing).should be_true
s3_storage!
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:asset_string => assignment.asset_string,
:intent => 'submit',
@ -982,7 +982,7 @@ describe FilesController do
it "should create the file in unlocked state if :usage_rights_required is disabled" do
@course.disable_feature! :usage_rights_required
user_session(@teacher)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "bob.txt"
}}
@ -993,7 +993,7 @@ describe FilesController do
it "should create the file in locked state if :usage_rights_required is enabled" do
@course.enable_feature! :usage_rights_required
user_session(@teacher)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "bob.txt"
}}
@ -1003,7 +1003,7 @@ describe FilesController do
it "refuses to create a file in a submissions folder" do
user_session(@student)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @student.asset_string,
:filename => 'test.txt',
:folder_id => @student.submissions_folder.id
@ -1015,7 +1015,7 @@ describe FilesController do
@course.root_account.enable_feature! :submissions_folder
user_session(@student)
assignment = @course.assignments.create!(:submission_types => 'online_upload')
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => assignment.context_code,
:asset_string => assignment.asset_string,
:filename => 'test.txt',
@ -1033,7 +1033,7 @@ describe FilesController do
group = category.groups.create(:context => @course)
group.add_user(@student)
user_session(@student)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:asset_string => assignment.asset_string,
:intent => 'submit',
@ -1054,7 +1054,7 @@ describe FilesController do
group = category.groups.create(:context => @course)
group.add_user(@student)
user_session(@student)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:asset_string => assignment.asset_string,
:intent => 'submit',
@ -1074,7 +1074,7 @@ describe FilesController do
account = Account.create!
course_with_teacher_logged_in(:active_all => true, :account => account)
end
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:filename => "bob.txt"
}}
@ -1101,7 +1101,7 @@ describe FilesController do
@assignment = @course.assignments.create!(:title => 'upload_assignment', :submission_types => 'online_upload')
user_session(@student)
post 'create_pending', {:attachment => {
post 'create_pending', params: {:attachment => {
:context_code => @course.asset_string,
:asset_string => @assignment.asset_string,
:intent => 'submit',
@ -1137,7 +1137,7 @@ describe FilesController do
it "should accept the upload data if the policy and attachment are acceptable" do
params = @attachment.ajax_upload_params(@teacher.pseudonym, "", "")
post "api_create", params[:upload_params].merge(:file => @content)
post "api_create", params: params[:upload_params].merge(:file => @content)
expect(response).to be_redirect
@attachment.reload
# the file is not available until the third api call is completed
@ -1147,7 +1147,7 @@ describe FilesController do
it "opens up cors headers" do
params = @attachment.ajax_upload_params(@teacher.pseudonym, "", "")
post "api_create", params[:upload_params].merge(:file => @content)
post "api_create", params: params[:upload_params].merge(:file => @content)
expect(response.header["Access-Control-Allow-Origin"]).to eq "*"
end
@ -1157,20 +1157,20 @@ describe FilesController do
end
it "should reject a blank policy" do
post "api_create", { :file => @content }
post "api_create", params: { :file => @content }
assert_status(400)
end
it "should reject an expired policy" do
params = @attachment.ajax_upload_params(@teacher.pseudonym, "", "", :expiration => -60.seconds)
post "api_create", params[:upload_params].merge({ :file => @content })
post "api_create", params: params[:upload_params].merge({ :file => @content })
assert_status(400)
end
it "should reject a modified policy" do
params = @attachment.ajax_upload_params(@teacher.pseudonym, "", "")
params[:upload_params]['Policy'] << 'a'
post "api_create", params[:upload_params].merge({ :file => @content })
post "api_create", params: params[:upload_params].merge({ :file => @content })
assert_status(400)
end
@ -1178,7 +1178,7 @@ describe FilesController do
params = @attachment.ajax_upload_params(@teacher.pseudonym, "", "")
@attachment.uploaded_data = @content
@attachment.save!
post "api_create", params[:upload_params].merge(:file => @content)
post "api_create", params: params[:upload_params].merge(:file => @content)
assert_status(400)
end
end
@ -1196,7 +1196,7 @@ describe FilesController do
end
it "should give a download url" do
get "public_url", :id => @attachment.id
get "public_url", params: {:id => @attachment.id}
expect(response).to be_success
data = json_parse
expect(data).to eq({ "public_url" => @attachment.authenticated_s3_url })
@ -1209,12 +1209,12 @@ describe FilesController do
end
it "should fail if no submission_id is given" do
get "public_url", :id => @attachment.id
get "public_url", params: {:id => @attachment.id}
assert_unauthorized
end
it "should allow a teacher to download a student's submission" do
get "public_url", :id => @attachment.id, :submission_id => @submission.id
get "public_url", params: {:id => @attachment.id, :submission_id => @submission.id}
expect(response).to be_success
data = json_parse
expect(data).to eq({ "public_url" => @attachment.authenticated_s3_url })
@ -1222,7 +1222,7 @@ describe FilesController do
it "should verify that the requested file belongs to the submission" do
otherfile = attachment_model
get "public_url", :id => otherfile, :submission_id => @submission.id
get "public_url", params: {:id => otherfile, :submission_id => @submission.id}
assert_unauthorized
end
@ -1230,7 +1230,7 @@ describe FilesController do
old_file = @attachment
new_file = attachment_model(:context => @student)
@assignment.submit_homework @student, :attachments => [new_file]
get "public_url", :id => old_file.id, :submission_id => @submission.id
get "public_url", params: {:id => old_file.id, :submission_id => @submission.id}
expect(response).to be_success
data = json_parse
expect(data).to eq({ "public_url" => old_file.authenticated_s3_url })

View File

@ -45,13 +45,13 @@ describe FoldersController do
file.context = @course
file.save!
get 'show', :course_id => @course.id, :id => @folder.id, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @folder.id}, :format => 'json'
json = json_parse
expect(json['files'].count).to eql(1)
file.hidden = true
file.save!
get 'show', :course_id => @course.id, :id => @folder.id, :format => 'json'
get 'show', params: {:course_id => @course.id, :id => @folder.id}, :format => 'json'
json = json_parse
expect(json['files'].count).to eql(0)
end
@ -60,13 +60,13 @@ describe FoldersController do
describe "PUT 'update'" do
before(:once) { course_folder }
it "should require authorization" do
put 'update', :course_id => @course.id, :id => @folder.id, :folder => {:name => "hi"}
put 'update', params: {:course_id => @course.id, :id => @folder.id, :folder => {:name => "hi"}}
assert_unauthorized
end
it "should update folder" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @folder.id, :folder => {:name => "new name"}
put 'update', params: {:course_id => @course.id, :id => @folder.id, :folder => {:name => "new name"}}
expect(response).to be_redirect
expect(assigns[:folder]).not_to be_nil
expect(assigns[:folder]).to eql(@folder)
@ -76,13 +76,13 @@ describe FoldersController do
describe "POST 'create'" do
it "should require authorization" do
post 'create', :course_id => @course.id, :folder => {:name => "folder"}
post 'create', params: {:course_id => @course.id, :folder => {:name => "folder"}}
assert_unauthorized
end
it "should create folder" do
user_session(@teacher)
post 'create', :course_id => @course.id, :folder => {:name => "new name"}
post 'create', params: {:course_id => @course.id, :folder => {:name => "new name"}}
expect(response).to be_redirect
expect(assigns[:folder]).not_to be_nil
expect(assigns[:folder].name).to eql("new name")
@ -90,7 +90,7 @@ describe FoldersController do
it "should force new folders to be sub_folders" do
user_session(@teacher)
post 'create', :course_id => @course.id, :folder => {:name => "new name"}
post 'create', params: {:course_id => @course.id, :folder => {:name => "new name"}}
expect(response).to be_redirect
expect(assigns[:folder]).not_to be_nil
expect(assigns[:folder].name).to eql("new name")
@ -101,7 +101,7 @@ describe FoldersController do
it "should create sub_folder" do
user_session(@teacher)
course_folder
post 'create', :course_id => @course.id, :folder => {:name => "new folder", :parent_folder_id => @folder.id}
post 'create', params: {:course_id => @course.id, :folder => {:name => "new folder", :parent_folder_id => @folder.id}}
expect(response).to be_redirect
end
end
@ -109,14 +109,14 @@ describe FoldersController do
describe "DELETE 'destroy'" do
before(:once) { course_folder }
it "should require authorization" do
delete 'destroy', :course_id => @course.id, :id => @folder.id
delete 'destroy', params: {:course_id => @course.id, :id => @folder.id}
assert_unauthorized
end
def delete_folder
user_session(@teacher)
yield if block_given?
delete 'destroy', :course_id => @course.id, :id => @folder.id
delete 'destroy', params: {:course_id => @course.id, :id => @folder.id}
expect(response).to be_redirect
expect(assigns[:folder]).not_to be_frozen
expect(assigns[:folder]).to be_deleted

View File

@ -34,7 +34,7 @@ describe GradebookCsvsController do
it "returns the attachment and progress" do
user_session @teacher
get 'show', course_id: @course.id, format: :json
get 'show', params: {course_id: @course.id}, format: :json
json = json_parse(response.body)
expect(response).to be_success
expect(json).to have_key 'attachment_id'
@ -44,7 +44,7 @@ describe GradebookCsvsController do
it "creates the attachment and progress" do
user_session @teacher
get 'show', course_id: @course.id, format: :json
get 'show', params: {course_id: @course.id}, format: :json
json = json_parse(response.body)
expect(Attachment.find json['attachment_id']).not_to be_nil
expect(Progress.find json['progress_id']).not_to be_nil
@ -53,7 +53,7 @@ describe GradebookCsvsController do
it "names the CSV file after course#short_name" do
user_session @teacher
get 'show', course_id: @course.id, format: :json
get 'show', params: {course_id: @course.id}, format: :json
json = json_parse(response.body)
attachment = Attachment.find(json['attachment_id'])
expect(@course.short_name).to eq(File.basename(attachment.filename.split("-").last, ".csv"))

View File

@ -67,7 +67,7 @@ describe GradebookHistoryApiController do
describe 'default params' do
before { get 'days', :course_id => @course.id, :format => 'json' }
before { get 'days', params: {:course_id => @course.id}, :format => 'json' }
it 'provides an array of the dates where there are submissions' do
expect(json_body.map{ |d| d['date'] }.sort).to eq [date_key(@submission1), date_key(@submission3)].sort
@ -85,13 +85,13 @@ describe GradebookHistoryApiController do
end
it 'paginates' do
get 'days', :course_id => @course.id, :format => 'json', :page => 2, :per_page => 2
get 'days', params: {:course_id => @course.id, :page => 2, :per_page => 2}, :format => 'json'
expect(json_body.map{|d| d['date'] }).to eq [@submission3.graded_at.to_date.as_json]
end
end
describe 'GET day_details' do
before { get 'day_details', :course_id => @course.id, :format => 'json', :date => @submission1.graded_at.strftime('%Y-%m-%d') }
before { get 'day_details', params: {:course_id => @course.id, :date => @submission1.graded_at.strftime('%Y-%m-%d')}, format: 'json' }
it 'has the graders as the top level piece of data' do
expect(json_body.map{|g| g['id'] }.sort).to eq [@grader.id, @super_grader.id].sort
@ -106,7 +106,7 @@ describe GradebookHistoryApiController do
let(:date) { @submission1.graded_at.strftime('%Y-%m-%d') }
let(:params) { { :course_id => @course.id, :date => date, :grader_id => @grader.id, :assignment_id => @assignment1.id } }
before { get( 'submissions', { :format => 'json' }.merge(params) ) }
before { get( 'submissions', params: params, format: 'json' ) }
it 'lists submissions' do
expect(json_body.first['submission_id']).to eq @submission1.id
@ -118,7 +118,7 @@ describe GradebookHistoryApiController do
context 'deleted submissions' do
before :each do
@submission1.destroy
get 'feed', course_id: @course.id, format: 'json'
get 'feed', params: {course_id: @course.id}, format: 'json'
end
it 'does not return an error' do

View File

@ -73,7 +73,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
end
it "saves new gradebook_settings in preferences" do
put :update, valid_params
put :update, params: valid_params
expect(response).to be_ok
expected_settings = {
@ -85,7 +85,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
end
it "transforms 'null' string values to nil" do
put :update, valid_params
put :update, params: valid_params
expect(teacher.preferences[:gradebook_settings][@course.id]['filter_rows_by']['section_id']).to be_nil
end
@ -98,7 +98,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
}
teacher.save!
put :update, valid_params
put :update, params: valid_params
expected_user_settings = {
@course.id => show_settings_massaged.except("colors"),
@ -119,7 +119,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
@course.enrollment_term = term # `update_attribute` with a term has unwanted side effects
@course.save!
put :update, valid_params
put :update, params: valid_params
expect(response).to be_ok
expected_settings = {
@ -134,7 +134,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
@course.workflow_state = "concluded"
@course.save!
put :update, valid_params
put :update, params: valid_params
expect(response).to be_ok
expected_settings = {
@ -149,7 +149,7 @@ RSpec.describe GradebookSettingsController, type: :controller do
context "given invalid params" do
it "give an error response" do
invalid_params = { "course_id" => @course.id }
put :update, invalid_params
put :update, params: invalid_params
expect(response).not_to be_ok
expect(json_response).to include(

View File

@ -41,7 +41,7 @@ describe GradebookUploadsController do
def upload_gradebook_import(course, file)
data = Rack::Test::UploadedFile.new(file.path, 'text/csv', true)
post 'create', course_id: course.id, gradebook_upload: {uploaded_data: data}
post 'create', params: {course_id: course.id, gradebook_upload: {uploaded_data: data}}
end
def check_create_response(include_sis_id=false)
@ -77,7 +77,7 @@ describe GradebookUploadsController do
describe "POST 'create'" do
it "should require authorization" do
post 'create', :course_id => @course.id
post 'create', params: {:course_id => @course.id}
assert_unauthorized
end
@ -114,7 +114,7 @@ describe GradebookUploadsController do
describe "GET 'data'" do
it "requires authorization" do
get 'data', course_id: @course.id
get 'data', params: {course_id: @course.id}
assert_unauthorized
end
@ -125,7 +125,7 @@ describe GradebookUploadsController do
@gb_upload = GradebookUpload.new course: @course, user: @teacher, progress: progress, gradebook: {foo: 'bar'}
@gb_upload.save
get 'data', course_id: @course.id
get 'data', params: {course_id: @course.id}
expect(response).to be_success
expect(response.body).to eq("while(1);{\"foo\":\"bar\"}")
end
@ -135,7 +135,7 @@ describe GradebookUploadsController do
progress = Progress.create!(tag: "test", context: @teacher)
@gb_upload = GradebookUpload.new course: @course, user: @teacher, progress: progress, gradebook: {foo: 'bar'}
@gb_upload.save
get 'data', course_id: @course.id
get 'data', params: {course_id: @course.id}
expect { GradebookUpload.find(@gb_upload.id) }.to raise_error(ActiveRecord::RecordNotFound)
expect(response).to be_success
end

View File

@ -39,33 +39,33 @@ describe GradebooksController do
describe "GET 'grade_summary'" do
it "redirects to the login page if the user is logged out" do
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to redirect_to(login_url)
expect(flash[:warning]).to be_present
end
it "redirects teacher to gradebook" do
user_session(@teacher)
get 'grade_summary', :course_id => @course.id, :id => nil
get 'grade_summary', params: {:course_id => @course.id, :id => nil}
expect(response).to redirect_to(:action => 'show')
end
it "renders for current user" do
user_session(@student)
get 'grade_summary', :course_id => @course.id, :id => nil
get 'grade_summary', params: {:course_id => @course.id, :id => nil}
expect(response).to render_template('grade_summary')
end
it "does not allow access for inactive enrollment" do
user_session(@student)
@student_enrollment.deactivate
get 'grade_summary', :course_id => @course.id, :id => nil
get 'grade_summary', params: {:course_id => @course.id, :id => nil}
assert_unauthorized
end
it "renders with specified user_id" do
user_session(@student)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to render_template('grade_summary')
expect(assigns[:presenter].courses_with_grades).not_to be_nil
end
@ -73,15 +73,15 @@ describe GradebooksController do
it "does not allow access for wrong user" do
user_factory(active_all: true)
user_session(@user)
get 'grade_summary', :course_id => @course.id, :id => nil
get 'grade_summary', params: {:course_id => @course.id, :id => nil}
assert_unauthorized
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
assert_unauthorized
end
it "allows access for a linked observer" do
user_session(@observer)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to render_template('grade_summary')
expect(assigns[:courses_with_grades]).to be_nil
end
@ -93,7 +93,7 @@ describe GradebooksController do
@se.accept
@se.update_attribute(:associated_user_id, @student.id)
@user.reload
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
assert_unauthorized
end
@ -104,14 +104,14 @@ describe GradebooksController do
user_session(@observer)
get 'grade_summary', :course_id => @course2.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course2.id, :id => @student.id}
assert_unauthorized
end
it "allows concluded teachers to see a student grades pages" do
user_session(@teacher)
@teacher_enrollment.conclude
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to be_success
expect(response).to render_template('grade_summary')
expect(assigns[:courses_with_grades]).to be_nil
@ -120,7 +120,7 @@ describe GradebooksController do
it "allows concluded students to see their grades pages" do
user_session(@student)
@student_enrollment.conclude
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to render_template('grade_summary')
end
@ -130,7 +130,7 @@ describe GradebooksController do
course_with_teacher(:user => @teacher, :active_all => 1)
student_in_course :user => @student, :active_all => 1
user_session(@student)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to be_success
expect(assigns[:presenter].courses_with_grades).not_to be_nil
expect(assigns[:presenter].courses_with_grades.length).to eq 2
@ -142,7 +142,7 @@ describe GradebooksController do
course_with_teacher(:user => @teacher, :active_all => 1)
student_in_course :user => @student, :active_all => 1
user_session(@teacher)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(response).to be_success
expect(assigns[:courses_with_grades]).to be_nil
end
@ -161,14 +161,14 @@ describe GradebooksController do
oe.accept
user_session(@observer)
get 'grade_summary', :course_id => course1.id, :id => @student.id
get 'grade_summary', params: {:course_id => course1.id, :id => @student.id}
expect(response).to be_success
expect(assigns[:courses_with_grades]).to be_nil
end
it "assigns assignment group values for grade calculator to ENV" do
user_session(@teacher)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(assigns[:js_env][:submissions]).not_to be_nil
expect(assigns[:js_env][:assignment_groups]).not_to be_nil
end
@ -179,7 +179,7 @@ describe GradebooksController do
assignment1.submission_types = "discussion_topic"
assignment1.save!
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
expect(assigns[:js_env][:assignment_groups].first[:assignments].first["discussion_topic"]).to be_nil
end
@ -187,7 +187,7 @@ describe GradebooksController do
user_session(@student)
assignment = @course.assignments.create!(title: "Example Assignment")
assignment.mute!
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assigns[:js_env][:assignment_groups].first[:assignments].size).to eq 1
expect(assigns[:js_env][:assignment_groups].first[:assignments].first[:muted]).to eq true
end
@ -200,7 +200,7 @@ describe GradebooksController do
a1.mute!
a1.grade_student(@student, grade: 10, grader: @teacher)
a2.grade_student(@student, grade: 5, grader: @teacher)
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expected =
expect(assigns[:js_env][:submissions].sort_by { |s|
s['assignment_id']
@ -213,7 +213,7 @@ describe GradebooksController do
user_session(@student)
assignment = @course.assignments.create!(points_possible: 10)
assignment.grade_student(@student, grade: 10, grader: @teacher)
get('grade_summary', course_id: @course.id, id: @student.id)
get('grade_summary', params: {course_id: @course.id, id: @student.id})
submission = assigns[:js_env][:submissions].first
expect(submission).to include :excused
expect(submission).to include :workflow_state
@ -232,14 +232,14 @@ describe GradebooksController do
let(:assignment_ids) { assigns[:presenter].assignments.select{ |a| a.class == Assignment }.map(&:id) }
it "sorts assignments by due date (null last), then title if there is no saved order preference" do
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment3, assignment2, assignment1].map(&:id)
end
it "sort order of 'due_at' sorts by due date (null last), then title" do
@teacher.preferences[:course_grades_assignment_order] = { @course.id => :due_at }
@teacher.save!
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment3, assignment2, assignment1].map(&:id)
end
@ -250,14 +250,14 @@ describe GradebooksController do
end
it "sorts assignments by title" do
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment2, assignment1, assignment3].map(&:id)
end
it "ingores case" do
assignment1.title = 'banana'
assignment1.save!
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment2, assignment1, assignment3].map(&:id)
end
end
@ -265,7 +265,7 @@ describe GradebooksController do
it "sort order of 'assignment_group' sorts by assignment group position, then assignment position" do
@teacher.preferences[:course_grades_assignment_order] = { @course.id => :assignment_group }
@teacher.save!
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment1, assignment2, assignment3].map(&:id)
end
@ -296,14 +296,14 @@ describe GradebooksController do
end
it "sorts by module position, then context module tag position" do
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment3, assignment2, assignment1].map(&:id)
end
it "sorts by module position, then context module tag position, " \
"with those not belonging to a module sorted last" do
assignment3.context_module_tags.first.destroy!
get 'grade_summary', course_id: @course.id, id: @student.id
get 'grade_summary', params: {course_id: @course.id, id: @student.id}
expect(assignment_ids).to eq [assignment2, assignment1, assignment3].map(&:id)
end
end
@ -324,34 +324,34 @@ describe GradebooksController do
it "does not display totals if 'All Grading Periods' is selected" do
user_session(@student)
all_grading_periods_id = 0
get 'grade_summary', :course_id => @course.id, :id => @student.id, grading_period_id: all_grading_periods_id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id, grading_period_id: all_grading_periods_id}
expect(assigns[:exclude_total]).to eq true
end
it "assigns grading period values for grade calculator to ENV" do
user_session(@teacher)
all_grading_periods_id = 0
get 'grade_summary', :course_id => @course.id, :id => @student.id, grading_period_id: all_grading_periods_id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id, grading_period_id: all_grading_periods_id}
expect(assigns[:js_env][:submissions]).not_to be_nil
expect(assigns[:js_env][:grading_periods]).not_to be_nil
end
it "displays totals if any grading period other than 'All Grading Periods' is selected" do
user_session(@student)
get 'grade_summary', :course_id => @course.id, :id => @student.id, grading_period_id: 1
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id, grading_period_id: 1}
expect(assigns[:exclude_total]).to eq false
end
it "includes the grading period group (as 'set') in the ENV" do
user_session(@teacher)
get :grade_summary, { course_id: @course.id, id: @student.id }
get :grade_summary, params: { course_id: @course.id, id: @student.id }
grading_period_set = assigns[:js_env][:grading_period_set]
expect(grading_period_set[:id]).to eq @grading_period_group.id
end
it "includes grading periods within the group" do
user_session(@teacher)
get :grade_summary, { course_id: @course.id, id: @student.id }
get :grade_summary, params: { course_id: @course.id, id: @student.id }
grading_period_set = assigns[:js_env][:grading_period_set]
expect(grading_period_set[:grading_periods].count).to eq 3
period = grading_period_set[:grading_periods][0]
@ -361,7 +361,7 @@ describe GradebooksController do
it "includes necessary keys with each grading period" do
user_session(@teacher)
get :grade_summary, { course_id: @course.id, id: @student.id }
get :grade_summary, params: { course_id: @course.id, id: @student.id }
periods = assigns[:js_env][:grading_period_set][:grading_periods]
expect(periods).to all include(:id, :start_date, :end_date, :close_date, :is_closed, :is_last)
end
@ -391,7 +391,7 @@ describe GradebooksController do
[@student, @teacher, @observer].each do |u|
controller.js_env.clear
user_session(u)
get 'grade_summary', :course_id => @course.id, :id => @student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @student.id}
assignment_due_at = assigns[:presenter].assignments.find{|a| a.class == Assignment}.due_at
expect(assignment_due_at.to_i).to eq due_at.to_i
end
@ -423,7 +423,7 @@ describe GradebooksController do
@fake_student = @course.student_view_student
session[:become_user_id] = @fake_student.id
get 'grade_summary', :course_id => @course.id, :id => @fake_student.id
get 'grade_summary', params: {:course_id => @course.id, :id => @fake_student.id}
assignment_due_at = assigns[:presenter].assignments.find{|a| a.class == Assignment}.due_at
expect(assignment_due_at.to_i).to eq @due_at.to_i
end
@ -484,7 +484,7 @@ describe GradebooksController do
it "raises an exception on a non-integer :id" do
user_session(@teacher)
assert_page_not_found do
get 'grade_summary', :course_id => @course.id, :id => "lqw"
get 'grade_summary', params: {:course_id => @course.id, :id => "lqw"}
end
end
end
@ -494,7 +494,7 @@ describe GradebooksController do
it "renders successfully" do
account_admin_user(account: @course.root_account)
user_session(@admin)
get "show", :course_id => @course.id
get "show", params: {:course_id => @course.id}
expect(response).to render_template("gradebook")
end
end
@ -507,20 +507,20 @@ describe GradebooksController do
it "renders new gradebook when enabled" do
@course.enable_feature!(:new_gradebook)
get "show", course_id: @course.id
get "show", params: {course_id: @course.id}
expect(response).to render_template("gradebooks/gradezilla/gradebook")
end
it "renders new indidivual view when enabled" do
@course.enable_feature!(:new_gradebook)
allow(@admin).to receive(:preferred_gradebook_version).and_return('individual')
get "show", course_id: @course.id
get "show", params: {course_id: @course.id}
expect(response).to render_template("gradebooks/gradezilla/individual")
end
it "ignores the version parameter outside development environments" do
allow(Rails.env).to receive(:development?).and_return(false)
get "show", course_id: @course.id, version: 'gradezilla-gradebook'
get "show", params: {course_id: @course.id, version: 'gradezilla-gradebook'}
expect(response).to render_template(:gradebook)
end
end
@ -534,12 +534,12 @@ describe GradebooksController do
it "includes colors if New Gradebook is enabled" do
@course.enable_feature!(:new_gradebook)
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(gradebook_options).to have_key :colors
end
it "does not include colors if New Gradebook is disabled" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(gradebook_options).not_to have_key :colors
end
@ -556,14 +556,14 @@ describe GradebooksController do
it 'includes api_max_per_page' do
Setting.set('api_max_per_page', 50)
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
api_max_per_page = assigns[:js_env][:GRADEBOOK_OPTIONS][:api_max_per_page]
expect(api_max_per_page).to eq(50)
end
describe "graded_late_or_missing_submissions_exist" do
it "is not included if New Gradebook is disabled" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(gradebook_options).not_to have_key :graded_late_or_missing_submissions_exist
end
@ -585,7 +585,7 @@ describe GradebooksController do
end
it "is included if New Gradebook is enabled" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
gradebook_options = controller.js_env.fetch(:GRADEBOOK_OPTIONS)
expect(gradebook_options).to have_key :graded_late_or_missing_submissions_exist
end
@ -593,30 +593,30 @@ describe GradebooksController do
it "is true if graded late submissions exist" do
assignment.submit_homework(@student, body: "a body")
assignment.grade_student(@student, grader: @teacher, grade: 8)
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(graded_late_or_missing_submissions_exist).to eq(true)
end
it "is false if late submissions exist, but they are not graded" do
assignment.submit_homework(@student, body: "a body")
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(graded_late_or_missing_submissions_exist).to eq(false)
end
it "is true if graded missing submissions exist" do
assignment.grade_student(@student, grader: @teacher, grade: 8)
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(graded_late_or_missing_submissions_exist).to eq(true)
end
it "is false if missing submissions exist, but they are not graded" do
assignment # create the assignment so that missing submissions exist
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(graded_late_or_missing_submissions_exist).to eq(false)
end
it "is false if there are no graded late or missing submissions" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(graded_late_or_missing_submissions_exist).to eq(false)
end
end
@ -636,7 +636,7 @@ describe GradebooksController do
shared_examples_for "working download" do
it "does not recompute enrollment grades" do
Enrollment.expects(:recompute_final_score).never
get 'show', :course_id => @course.id, :init => 1, :assignments => 1, :format => 'csv'
get 'show', params: {:course_id => @course.id, :init => 1, :assignments => 1}, :format => 'csv'
end
it "should get all the expected datas even with multibytes characters", :focus => true do
@course.assignments.create(:title => "Déjà vu")
@ -672,25 +672,25 @@ describe GradebooksController do
it "redirects to Grid View with a friendly URL" do
@teacher.preferences[:gradebook_version] = "2"
get "show", :course_id => @course.id
get "show", params: {:course_id => @course.id}
expect(response).to render_template("gradebook")
end
it "redirects to Individual View with a friendly URL" do
@teacher.preferences[:gradebook_version] = "srgb"
get "show", :course_id => @course.id
get "show", params: {:course_id => @course.id}
expect(response).to render_template("screenreader")
end
it "requests groups without wiki_page assignments" do
get "show", :course_id => @course.id
get "show", params: {:course_id => @course.id}
url = controller.js_env[:GRADEBOOK_OPTIONS][:assignment_groups_url]
expect(URI.unescape(url)).to include 'exclude_assignment_submission_types[]=wiki_page'
end
end
it "renders the unauthorized page without gradebook authorization" do
get "show", :course_id => @course.id
get "show", params: {:course_id => @course.id}
assert_unauthorized
end
@ -698,7 +698,7 @@ describe GradebooksController do
before do
user_session(@teacher)
get 'show', course_id: @course.id
get 'show', params: {course_id: @course.id}
@gradebook_env = assigns[:js_env][:GRADEBOOK_OPTIONS]
end
@ -726,19 +726,19 @@ describe GradebooksController do
before { user_session(@teacher) }
it "includes context_id" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
context_id = assigns[:js_env][:GRADEBOOK_OPTIONS][:context_id]
expect(context_id).to eq @course.id.to_param
end
it "doesn't enable context cards when feature is off" do
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(assigns[:js_env][:STUDENT_CONTEXT_CARDS_ENABLED]).to eq false
end
it "enables context cards when feature is on" do
@course.root_account.enable_feature! :student_context_cards
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
expect(assigns[:js_env][:STUDENT_CONTEXT_CARDS_ENABLED]).to eq true
end
end
@ -749,7 +749,7 @@ describe GradebooksController do
it 'includes login_handle_name' do
@course.account.update!(login_handle_name: custom_login_id)
get :show, course_id: @course.id
get :show, params: {course_id: @course.id}
login_handle_name = assigns[:js_env][:GRADEBOOK_OPTIONS][:login_handle_name]
@ -772,13 +772,13 @@ describe GradebooksController do
before { user_session(@teacher) }
it "includes the grading period group (as 'set') in the ENV" do
get :show, { course_id: @course.id }
get :show, params: { course_id: @course.id }
grading_period_set = assigns[:js_env][:GRADEBOOK_OPTIONS][:grading_period_set]
expect(grading_period_set[:id]).to eq @grading_period_group.id
end
it "includes grading periods within the group" do
get :show, { course_id: @course.id }
get :show, params: { course_id: @course.id }
grading_period_set = assigns[:js_env][:GRADEBOOK_OPTIONS][:grading_period_set]
expect(grading_period_set[:grading_periods].count).to eq 3
period = grading_period_set[:grading_periods][0]
@ -787,7 +787,7 @@ describe GradebooksController do
end
it "includes necessary keys with each grading period" do
get :show, { course_id: @course.id }
get :show, params: { course_id: @course.id }
periods = assigns[:js_env][:GRADEBOOK_OPTIONS][:grading_period_set][:grading_periods]
expect(periods).to all include(:id, :start_date, :end_date, :close_date, :is_closed, :is_last)
end
@ -796,26 +796,26 @@ describe GradebooksController do
describe "GET 'user_ids'" do
it "returns unauthorized if there is no current user" do
get :user_ids, course_id: @course.id, format: :json
get :user_ids, params: {course_id: @course.id}, format: :json
assert_status(401)
end
it "returns unauthorized if the user is not authorized to manage grades" do
user_session(@student)
get :user_ids, course_id: @course.id, format: :json
get :user_ids, params: {course_id: @course.id}, format: :json
assert_status(401)
end
it "grants authorization to teachers in active courses" do
user_session(@teacher)
get :user_ids, course_id: @course.id, format: :json
get :user_ids, params: {course_id: @course.id}, format: :json
expect(response).to be_ok
end
it "grants authorization to teachers in concluded courses" do
@course.complete!
user_session(@teacher)
get :user_ids, course_id: @course.id, format: :json
get :user_ids, params: {course_id: @course.id}, format: :json
expect(response).to be_ok
end
@ -832,7 +832,7 @@ describe GradebooksController do
}
user_session(@teacher)
get :user_ids, course_id: @course.id, format: :json
get :user_ids, params: {course_id: @course.id}, format: :json
user_ids = json_parse(response.body)["user_ids"]
expect(user_ids).to eq([student2.id, student1.id, student3.id])
end
@ -885,12 +885,12 @@ describe GradebooksController do
describe "GET 'change_gradebook_version'" do
it 'switches to gradebook if clicked' do
user_session(@teacher)
get 'grade_summary', :course_id => @course.id, :id => nil
get 'grade_summary', params: {:course_id => @course.id, :id => nil}
expect(response).to redirect_to(:action => 'show')
# tell it to use gradebook 2
get 'change_gradebook_version', :course_id => @course.id, :version => 2
get 'change_gradebook_version', params: {:course_id => @course.id, :version => 2}
expect(response).to redirect_to(:action => 'show')
end
end
@ -899,7 +899,7 @@ describe GradebooksController do
it "requires authentication" do
course_factory
assignment_model
post 'submissions_zip_upload', :course_id => @course.id, :assignment_id => @assignment.id, :submissions_zip => 'dummy'
post 'submissions_zip_upload', params: {:course_id => @course.id, :assignment_id => @assignment.id, :submissions_zip => 'dummy'}
assert_unauthorized
end
end
@ -911,13 +911,15 @@ describe GradebooksController do
@student = @course.enroll_user(User.create!(:name => "some user"))
post(
'update_submission',
format: :json,
course_id: @course.id,
submission: {
assignment_id: @assignment.id,
user_id: @student.user_id,
grade: 10
}
params: {
course_id: @course.id,
submission: {
assignment_id: @assignment.id,
user_id: @student.user_id,
grade: 10
}
},
format: :json
)
submissions = JSON.parse(response.body).map{ |sub| sub['submission']}
@ -928,8 +930,8 @@ describe GradebooksController do
user_session(@teacher)
@assignment = @course.assignments.create!(:title => "some assignment")
@student = @course.enroll_user(User.create!(:name => "some user"))
post 'update_submission', :course_id => @course.id, :submission =>
{:comment => "some comment",:assignment_id => @assignment.id, :user_id => @student.user_id}
post 'update_submission', params: {:course_id => @course.id, :submission =>
{:comment => "some comment",:assignment_id => @assignment.id, :user_id => @student.user_id}}
expect(response).to be_redirect
expect(assigns[:assignment]).to eql(@assignment)
expect(assigns[:submissions]).not_to be_nil
@ -944,11 +946,11 @@ describe GradebooksController do
@student = @course.enroll_user(User.create!(:name => "some user"))
data = fixture_file_upload("scribd_docs/doc.doc", "application/msword", true)
post 'update_submission',
:course_id => @course.id,
params: {:course_id => @course.id,
:attachments => { "0" => { :uploaded_data => data } },
:submission => { :comment => "some comment",
:assignment_id => @assignment.id,
:user_id => @student.user_id }
:user_id => @student.user_id }}
expect(response).to be_redirect
expect(assigns[:assignment]).to eql(@assignment)
expect(assigns[:submissions]).not_to be_nil
@ -965,10 +967,10 @@ describe GradebooksController do
@assignment = @course.assignments.create!(:title => "some assignment")
@student = @course.enroll_user(User.create!(:name => "some user"))
post 'update_submission',
:course_id => @course.id,
params: {:course_id => @course.id,
:submission => { :comment => "some comment",
:assignment_id => @assignment.id,
:user_id => @student.user_id }
:user_id => @student.user_id }}
assert_unauthorized
end
@ -982,18 +984,18 @@ describe GradebooksController do
:assignment => @assignment)
post 'update_submission',
:course_id => @course.id,
params: {:course_id => @course.id,
:submission => { :comment => "some comment",
:assignment_id => @assignment.id,
:user_id => s1.user_id }
:user_id => s1.user_id }}
expect(response).to be_redirect
# attempt to grade another section throws not found
post 'update_submission',
:course_id => @course.id,
params: {:course_id => @course.id,
:submission => { :comment => "some comment",
:assignment_id => @assignment.id,
:user_id => s2.user_id }
:user_id => s2.user_id }}
expect(flash[:error]).to eql 'Submission was unsuccessful: Submission Failed'
end
@ -1010,13 +1012,13 @@ describe GradebooksController do
it "creates a provisional grade" do
submission = @assignment.submit_homework(@student, :body => "hello")
post 'update_submission',
:format => :json,
:course_id => @course.id,
params: {:course_id => @course.id,
:submission => { :score => 100,
:comment => "provisional!",
:assignment_id => @assignment.id,
:user_id => @student.id,
:provisional => true }
:provisional => true }},
:format => :json
# confirm "real" grades/comments were not written
submission.reload
@ -1040,14 +1042,14 @@ describe GradebooksController do
it "includes the graded anonymously flag in the provisional grade object" do
submission = @assignment.submit_homework(@student, body: "hello")
post 'update_submission',
format: :json,
course_id: @course.id,
params: {course_id: @course.id,
submission: { score: 100,
comment: "provisional!",
assignment_id: @assignment.id,
user_id: @student.id,
provisional: true,
graded_anonymously: true }
graded_anonymously: true }},
format: :json
submission.reload
pg = submission.provisional_grade(@teacher)
@ -1055,14 +1057,14 @@ describe GradebooksController do
submission = @assignment.submit_homework(@student, body: "hello")
post 'update_submission',
format: :json,
course_id: @course.id,
params: {course_id: @course.id,
submission: { score: 100,
comment: "provisional!",
assignment_id: @assignment.id,
user_id: @student.id,
provisional: true,
graded_anonymously: false }
graded_anonymously: false }},
format: :json
submission.reload
pg = submission.provisional_grade(@teacher)
@ -1074,9 +1076,9 @@ describe GradebooksController do
other_teacher = teacher_in_course(:course => @course, :active_all => true).user
submission.find_or_create_provisional_grade!(other_teacher)
post 'update_submission', :format => :json, :course_id => @course.id,
post 'update_submission', params: {:course_id => @course.id,
:submission => { :score => 100, :comment => "provisional!", :assignment_id => @assignment.id,
:user_id => @student.id, :provisional => true }
:user_id => @student.id, :provisional => true }}, :format => :json
expect(response).to_not be_success
expect(response.body).to include("Student already has the maximum number of provisional grades")
end
@ -1088,9 +1090,9 @@ describe GradebooksController do
@assignment.moderated_grading_selections.create!(:student => @student)
post 'update_submission', :format => :json, :course_id => @course.id,
post 'update_submission', params: {:course_id => @course.id,
:submission => { :score => 100, :comment => "provisional!", :assignment_id => @assignment.id,
:user_id => @student.id, :provisional => true }
:user_id => @student.id, :provisional => true }}, :format => :json
expect(response).to be_success
end
@ -1100,15 +1102,15 @@ describe GradebooksController do
submission.find_or_create_provisional_grade!(other_teacher) # create one so we can make a final
post 'update_submission',
:format => :json,
:course_id => @course.id,
params: {:course_id => @course.id,
:submission => { :score => 100,
:comment => "provisional!",
:assignment_id => @assignment.id,
:user_id => @student.id,
:provisional => true,
:final => true
}
}},
:format => :json
expect(response).to be_success
# confirm "real" grades/comments were not written
@ -1141,7 +1143,7 @@ describe GradebooksController do
Course.any_instance.stubs(:large_roster?).returns(true)
get 'speed_grader', :course_id => @course.id, :assignment_id => assignment.id
get 'speed_grader', params: {:course_id => @course.id, :assignment_id => assignment.id}
expect(response).to be_redirect
expect(flash[:notice]).to eq 'SpeedGrader is disabled for this course'
end
@ -1157,7 +1159,7 @@ describe GradebooksController do
end
it "redirects if the assignment is unpublished" do
get 'speed_grader', course_id: @course, assignment_id: @assign.id
get 'speed_grader', params: {course_id: @course, assignment_id: @assign.id}
expect(response).to be_redirect
expect(flash[:notice]).to eq I18n.t(
:speedgrader_enabled_only_for_published_content,
@ -1166,7 +1168,7 @@ describe GradebooksController do
it "does not redirect if the assignment is published" do
@assign.publish
get 'speed_grader', course_id: @course, assignment_id: @assign.id
get 'speed_grader', params: {course_id: @course, assignment_id: @assign.id}
expect(response).not_to be_redirect
end
end
@ -1175,7 +1177,7 @@ describe GradebooksController do
user_session(@teacher)
@assignment = @course.assignments.create!(title: "A Title", submission_types: 'online_url,online_file')
get 'speed_grader', course_id: @course, assignment_id: @assignment.id
get 'speed_grader', params: {course_id: @course, assignment_id: @assignment.id}
expect(assigns[:js_env][:lti_retrieve_url]).not_to be_nil
end
@ -1187,7 +1189,7 @@ describe GradebooksController do
grading_type: 'percent'
)
get 'speed_grader', course_id: @course, assignment_id: @assignment.id
get 'speed_grader', params: {course_id: @course, assignment_id: @assignment.id}
expect(assigns[:js_env][:grading_type]).to eq('percent')
end
end
@ -1197,12 +1199,12 @@ describe GradebooksController do
user_session(@teacher)
expect(@teacher.preferences[:enable_speedgrader_grade_by_question]).not_to be_truthy
post 'speed_grader_settings', course_id: @course.id,
enable_speedgrader_grade_by_question: "1"
post 'speed_grader_settings', params: {course_id: @course.id,
enable_speedgrader_grade_by_question: "1"}
expect(@teacher.reload.preferences[:enable_speedgrader_grade_by_question]).to be_truthy
post 'speed_grader_settings', course_id: @course.id,
enable_speedgrader_grade_by_question: "0"
post 'speed_grader_settings', params: {course_id: @course.id,
enable_speedgrader_grade_by_question: "0"}
expect(@teacher.reload.preferences[:enable_speedgrader_grade_by_question]).not_to be_truthy
end
end
@ -1210,7 +1212,7 @@ describe GradebooksController do
describe "POST 'save_assignment_order'" do
it "saves the sort order in the user's preferences" do
user_session(@teacher)
post 'save_assignment_order', course_id: @course.id, assignment_order: 'due_at'
post 'save_assignment_order', params: {course_id: @course.id, assignment_order: 'due_at'}
saved_order = @teacher.preferences[:course_grades_assignment_order][@course.id]
expect(saved_order).to eq(:due_at)
end

View File

@ -38,7 +38,7 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
it "fetches grading period sets" do
group_helper.create_for_account(root_account)
get :index, {account_id: root_account.to_param}, valid_session
get :index, params: {account_id: root_account.to_param}, session: valid_session
expect(json_parse.fetch('grading_period_sets').count).to eql 1
end
@ -46,7 +46,7 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
it "includes grading periods" do
group = group_helper.create_for_account(root_account)
period = Factories::GradingPeriodHelper.new.create_for_group(group)
get :index, {account_id: root_account.to_param}, valid_session
get :index, params: {account_id: root_account.to_param}, session: valid_session
sets = json_parse.fetch('grading_period_sets')
periods = sets.first.fetch('grading_periods')
expect(periods.count).to eql 1
@ -56,11 +56,11 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
describe "POST #create" do
let(:post_create) do
post :create, {
post :create, params: {
account_id: root_account.to_param,
enrollment_term_ids: [enrollment_term.to_param],
grading_period_set: group_helper.valid_attributes(weighted: true)
}, valid_session
}, session: valid_session
end
context "with valid params" do
@ -82,7 +82,7 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
account_id: root_account.to_param,
grading_period_set: group_helper.valid_attributes
}
expect { post :create, params, valid_session }.to change(GradingPeriodGroup, :count).by(1)
expect { post :create, params: params, session: valid_session }.to change(GradingPeriodGroup, :count).by(1)
end
context "given a sub account enrollment term" do
@ -92,11 +92,11 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
end
it "returns a Not Found status code" do
post :create, {
post :create, params: {
account_id: root_account.to_param,
enrollment_term_ids: [sub_account_enrollment_term.id],
grading_period_set: group_helper.valid_attributes
}, valid_session
}, session: valid_session
expect(response.status).to eql Rack::Utils.status_code(:not_found)
end
end
@ -108,12 +108,12 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
context "with valid params" do
let(:patch_update) do
patch :update, {
patch :update, params: {
account_id: root_account.to_param,
id: grading_period_set.to_param,
enrollment_term_ids: [enrollment_term.to_param],
grading_period_set: new_attributes
}, valid_session
}, session: valid_session
end
it "updates the requested grading_period_set" do
@ -135,18 +135,18 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
expect(GradeCalculator).to receive(:recompute_final_score) do |_, course_id, _|
course_id == course.id
end
patch :update, {
patch :update, params: {
account_id: root_account.to_param,
id: grading_period_set.to_param,
enrollment_term_ids: [],
grading_period_set: new_attributes
}, valid_session
}, session: valid_session
end
end
it "defaults enrollment_term_ids to empty array" do
grading_period_set.enrollment_terms << enrollment_term
patch :update, {
patch :update, params: {
account_id: root_account.to_param,
id: grading_period_set.to_param,
grading_period_set: group_helper.valid_attributes
@ -162,12 +162,12 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
end
it "returns a Not Found status code" do
patch :update, {
patch :update, params: {
id: grading_period_set.to_param,
account_id: root_account.to_param,
enrollment_term_ids: [sub_account_enrollment_term.id],
grading_period_set: group_helper.valid_attributes
}, valid_session
}, session: valid_session
expect(response.status).to eql Rack::Utils.status_code(:not_found)
end
end
@ -177,10 +177,10 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
it "destroys the requested grading period set" do
grading_period_set = group_helper.create_for_account(root_account)
expect(grading_period_set.reload.workflow_state).to eq 'active'
delete :destroy, {
delete :destroy, params: {
account_id: Account.default,
id: grading_period_set.to_param
}, valid_session
}, session: valid_session
expect(grading_period_set.reload.workflow_state).to eq 'deleted'
end
end
@ -192,7 +192,7 @@ RSpec.describe GradingPeriodSetsController, type: :controller do
it "it fetches sets through the root account" do
grading_period_set = group_helper.create_for_account(root_account)
get :index, {account_id: sub_account.to_param}, valid_session
get :index, params: {account_id: sub_account.to_param}, session: valid_session
expect(json_parse.fetch('grading_period_sets').count).to eql 1
end

View File

@ -67,7 +67,7 @@ describe GradingPeriodsController do
describe 'GET index' do
it "paginates" do
create_course_grading_period(course)
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect(json_parse).to have_key('meta')
expect(json_parse['meta']).to have_key('pagination')
expect(json_parse['meta']['primaryCollection']).to eql('grading_periods')
@ -75,7 +75,7 @@ describe GradingPeriodsController do
describe 'with root account admins' do
it 'disallows creating grading periods' do
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect(json_parse['can_create_grading_periods']).to be false
end
end
@ -83,7 +83,7 @@ describe GradingPeriodsController do
describe 'with sub account admins' do
it 'disallows creating grading periods' do
login_sub_account
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect(json_parse['can_create_grading_periods']).to be false
end
end
@ -91,7 +91,7 @@ describe GradingPeriodsController do
describe 'with course context' do
it "can get any course associated grading periods with read_only set to false" do
period = create_course_grading_period(course)
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect_grading_period_id_match(json_parse, period)
expect(json_parse['grading_periods_read_only']).to eql(false)
end
@ -100,13 +100,13 @@ describe GradingPeriodsController do
create_course_grading_period(course, start_date: 2.days.from_now)
create_course_grading_period(course, start_date: 5.days.from_now)
create_course_grading_period(course, start_date: 3.days.from_now)
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect(json_parse['grading_periods']).to be_sorted_by('start_date')
end
it "can get any account associated grading periods with read_only set to true" do
period = create_account_grading_period(root_account)
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect_grading_period_id_match(json_parse, period)
expect(json_parse['grading_periods_read_only']).to eql(true)
end
@ -114,12 +114,12 @@ describe GradingPeriodsController do
it "gets course associated grading periods if both are available" do
course_period = create_course_grading_period(course)
account_period = create_account_grading_period(root_account)
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect_grading_period_id_match(json_parse, course_period)
end
it "sets read_only to false if no grading periods are given" do
get :index, { course_id: course.id }
get :index, params: { course_id: course.id }
expect(json_parse['grading_periods_read_only']).to eql(false)
end
end
@ -127,7 +127,7 @@ describe GradingPeriodsController do
describe 'with account context' do
it "can get any account associated grading periods with read_only set to false" do
period = create_account_grading_period(root_account)
get :index, { account_id: root_account.id }
get :index, params: { account_id: root_account.id }
expect_grading_period_id_match(json_parse, period)
expect(json_parse['grading_periods_read_only']).to eql(false)
end
@ -136,18 +136,18 @@ describe GradingPeriodsController do
create_account_grading_period(root_account, start_date: 2.days.from_now)
create_account_grading_period(root_account, start_date: 5.days.from_now)
create_account_grading_period(root_account, start_date: 3.days.from_now)
get :index, { account_id: root_account.id }
get :index, params: { account_id: root_account.id }
expect(json_parse['grading_periods']).to be_sorted_by('start_date')
end
it "cannot get any course associated grading periods" do
period = create_course_grading_period(course)
get :index, { account_id: root_account.id }
get :index, params: { account_id: root_account.id }
expect(json_parse['grading_periods'].count).to eql(0)
end
it "sets read_only to false if no grading periods are given" do
get :index, { account_id: root_account.id }
get :index, params: { account_id: root_account.id }
expect(json_parse['grading_periods_read_only']).to eql(false)
end
end
@ -156,19 +156,19 @@ describe GradingPeriodsController do
describe 'GET show' do
it 'can show course associated grading periods' do
period = create_course_grading_period(course)
get :show, { course_id: course.id, id: period.to_param }
get :show, params: { course_id: course.id, id: period.to_param }
expect_grading_period_id_match(json_parse, period)
end
it 'can show account associated grading periods' do
period = create_account_grading_period(root_account)
get :show, { course_id: course.id, id: period.to_param }
get :show, params: { course_id: course.id, id: period.to_param }
expect_grading_period_id_match(json_parse, period)
end
it 'returns the expected attributes' do
period = create_course_grading_period(course)
get :show, { course_id: course.id, id: period.to_param }
get :show, params: { course_id: course.id, id: period.to_param }
expected_attributes = [
"id",
"grading_period_group_id",
@ -191,7 +191,7 @@ describe GradingPeriodsController do
it "can update any course associated grading periods" do
period = create_course_grading_period(course, { title: 'Grading Period' })
put :update, {
put :update, params: {
course_id: course.id,
id: period.to_param,
grading_periods: [{
@ -203,7 +203,7 @@ describe GradingPeriodsController do
it "cannot update any account associated grading periods" do
period = create_account_grading_period(root_account, { title: 'Grading Period' })
put :update, {
put :update, params: {
course_id: course.id,
id: period.to_param,
grading_periods: [{
@ -223,13 +223,13 @@ describe GradingPeriodsController do
describe "with course context" do
it "can destroy any course associated grading periods" do
period = create_course_grading_period(course)
delete :destroy, { course_id: course.id, id: period.to_param }
delete :destroy, params: { course_id: course.id, id: period.to_param }
expect(period.reload).to be_deleted
end
it "cannot destroy any account associated grading periods" do
period = create_account_grading_period(root_account)
delete :destroy, { course_id: course.id, id: period.to_param }
delete :destroy, params: { course_id: course.id, id: period.to_param }
expect(period.reload).not_to be_deleted
expect(response).to be_not_found
end
@ -238,13 +238,13 @@ describe GradingPeriodsController do
describe "with account context" do
it "can destroy any account associated grading periods" do
period = create_account_grading_period(root_account)
delete :destroy, { account_id: root_account.id, id: period.to_param }
delete :destroy, params: { account_id: root_account.id, id: period.to_param }
expect(period.reload).to be_deleted
end
it "cannot destroy any course associated grading periods" do
period = create_course_grading_period(course)
delete :destroy, { account_id: root_account.id, id: period.to_param }
delete :destroy, params: { account_id: root_account.id, id: period.to_param }
expect(period.reload).not_to be_deleted
expect(response).to be_not_found
end
@ -274,7 +274,7 @@ describe GradingPeriodsController do
it "ignores unrelated grading period sets" do
unrelated_group = group_helper.create_for_account(root_account)
patch :batch_update, {
patch :batch_update, params: {
set_id: group.id,
grading_periods: [period_1_params]
}
@ -283,7 +283,7 @@ describe GradingPeriodsController do
end
it "compares the in memory periods' dates for overlapping" do
patch :batch_update, {
patch :batch_update, params: {
set_id: group.id,
grading_periods: [
period_1_params.merge(id: period_1.id, end_date: 3.days.from_now(now), close_date: 3.days.from_now(now)),
@ -302,7 +302,7 @@ describe GradingPeriodsController do
end_date: (i+1).days.from_now(now)
}
end
patch :batch_update, {
patch :batch_update, params: {
set_id: group.id,
grading_periods: period_params
}
@ -318,13 +318,13 @@ describe GradingPeriodsController do
it "can create a single grading period" do
expect do
patch :batch_update, { set_id: group.id, grading_periods: [period_1_params] }
patch :batch_update, params: { set_id: group.id, grading_periods: [period_1_params] }
end.to change { group.grading_periods.count }.by 1
end
it "can create multiple grading periods" do
expect do
patch :batch_update, {
patch :batch_update, params: {
set_id: group.id,
grading_periods: [period_1_params, period_2_params]
}
@ -332,14 +332,14 @@ describe GradingPeriodsController do
end
it "can update a single grading period" do
patch :batch_update, { set_id: group.id, grading_periods: [
patch :batch_update, params: { set_id: group.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Updated Title')
] }
expect(group.reload.grading_periods.find(period_1.id).title).to eq 'Updated Title'
end
it "can update multiple grading periods" do
patch :batch_update, { set_id: group.id, grading_periods: [
patch :batch_update, params: { set_id: group.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title'),
period_2_params.merge(id: period_2.id, title: 'Updated Title')
] }
@ -350,7 +350,7 @@ describe GradingPeriodsController do
it "can create and update multiple grading periods" do
period_1 = group.grading_periods.create!(period_1_params)
expect do
patch :batch_update, { set_id: group.id, grading_periods: [
patch :batch_update, params: { set_id: group.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'A Different Title'),
period_2_params
] }
@ -376,7 +376,7 @@ describe GradingPeriodsController do
end
it "cannot update any grading periods" do
patch :batch_update, { set_id: group.id, grading_periods: [
patch :batch_update, params: { set_id: group.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Updated Title')
] }
expect(period_1.reload.title).to eql('Original Title')
@ -384,7 +384,7 @@ describe GradingPeriodsController do
end
it "responds with 404 not found upon failure" do
patch :batch_update, { set_id: group.id, grading_periods: [
patch :batch_update, params: { set_id: group.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Updated Title')
] }
expect(response).to be_not_found
@ -413,7 +413,7 @@ describe GradingPeriodsController do
let(:period_2) { group.grading_periods.create!(period_2_params) }
it "compares the in memory periods' dates for overlapping" do
patch :batch_update, {
patch :batch_update, params: {
course_id: course.id,
grading_periods: [
period_1_params.merge(id: period_1.id, end_date: 3.days.from_now(now), close_date: 3.days.from_now(now)),
@ -426,7 +426,7 @@ describe GradingPeriodsController do
it "responds with json upon success" do
request.content_type = 'application/json'
patch :batch_update, { course_id: course.id, grading_periods: [] }
patch :batch_update, params: { course_id: course.id, grading_periods: [] }
expect(response).to be_ok
json = JSON.parse(response.body)
expect(json['grading_periods']).to be_empty
@ -435,7 +435,7 @@ describe GradingPeriodsController do
it "responds with json upon failure" do
period = period_helper.create_with_group_for_course(course)
patch :batch_update, { course_id: course.id, grading_periods: [{id: period.id, title: ''}] }
patch :batch_update, params: { course_id: course.id, grading_periods: [{id: period.id, title: ''}] }
expect(response).not_to be_ok
json = JSON.parse(response.body)
expect(json['errors']).to be_present
@ -449,14 +449,14 @@ describe GradingPeriodsController do
it "cannot create a single grading period" do
expect do
patch :batch_update, { course_id: course.id, grading_periods: [period_1_params] }
patch :batch_update, params: { course_id: course.id, grading_periods: [period_1_params] }
end.not_to change { course.grading_periods.count }
expect(response.status).to eql(Rack::Utils.status_code(:unauthorized))
end
it "cannot create multiple grading periods" do
expect do
patch :batch_update, {
patch :batch_update, params: {
course_id: course.id,
grading_periods: [period_1_params, period_2_params]
}
@ -464,14 +464,14 @@ describe GradingPeriodsController do
end
it "can update a single grading period" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title')
] }
expect(course.grading_periods.find(period_1.id).title).to eql('Original Title')
end
it "can update multiple grading periods" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title'),
period_2_params.merge(id: period_2.id, title: 'Updated Title')
] }
@ -482,7 +482,7 @@ describe GradingPeriodsController do
it "cannot create and update multiple grading periods" do
period_1 = group.grading_periods.create!(period_1_params)
expect do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title'),
period_2_params
] }
@ -498,14 +498,14 @@ describe GradingPeriodsController do
it "cannot create a single grading period" do
expect do
patch :batch_update, { course_id: course.id, grading_periods: [period_1_params] }
patch :batch_update, params: { course_id: course.id, grading_periods: [period_1_params] }
end.not_to change { course.grading_periods.count }
expect(response.status).to eql(Rack::Utils.status_code(:unauthorized))
end
it "cannot create multiple grading periods" do
expect do
patch :batch_update, {
patch :batch_update, params: {
course_id: course.id,
grading_periods: [period_1_params, period_2_params]
}
@ -513,14 +513,14 @@ describe GradingPeriodsController do
end
it "can update a single grading period" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title')
] }
expect(course.grading_periods.find(period_1.id).title).to eql('Original Title')
end
it "can update multiple grading periods" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title'),
period_2_params.merge(id: period_2.id, title: 'Updated Title')
] }
@ -531,7 +531,7 @@ describe GradingPeriodsController do
it "cannot create and update multiple grading periods" do
period_1 = group.grading_periods.create!(period_1_params)
expect do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Original Title'),
period_2_params
] }
@ -558,7 +558,7 @@ describe GradingPeriodsController do
end
it "cannot update any grading periods" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Updated Title')
] }
expect(period_1.reload.title).to eql('Original Title')
@ -566,7 +566,7 @@ describe GradingPeriodsController do
end
it "responds with json upon failure" do
patch :batch_update, { course_id: course.id, grading_periods: [
patch :batch_update, params: { course_id: course.id, grading_periods: [
period_1_params.merge(id: period_1.id, title: 'Updated Title')
] }
expect(response.status).to eql(Rack::Utils.status_code(:not_found))

View File

@ -34,12 +34,12 @@ describe GradingStandardsController do
let(:json_response) { json_parse['grading_standard']['data'] }
it "responds with a 200 with a valid user, course id, and json format" do
post 'create', course_id: @course.id, format: 'json'
post 'create', params: {course_id: @course.id}, format: 'json'
expect(response).to be_ok
end
it "uses the default grading standard if no standard data is provided" do
post 'create', course_id: @course.id, format: 'json'
post 'create', params: {course_id: @course.id}, format: 'json'
expect(json_response).to eq(default_grading_standard)
end
@ -50,7 +50,7 @@ describe GradingStandardsController do
}
# send the request as JSON, so that the nested arrays are preserved
request.content_type = 'application/json'
post 'create', course_id: @course.id, grading_standard: standard, format: 'json'
post 'create', params: {course_id: @course.id, grading_standard: standard}, format: 'json'
expect(json_response).to eq(standard[:data])
end
@ -62,7 +62,7 @@ describe GradingStandardsController do
scheme_2: {name: 'F',value: 0}
}
}
post 'create', course_id: @course.id, grading_standard: standard, format: 'json'
post 'create', params: {course_id: @course.id, grading_standard: standard}, format: 'json'
expected_response_data = [['A', 0.61], ['F', 0.00]]
expect(json_response).to eq(expected_response_data)
end
@ -75,7 +75,7 @@ describe GradingStandardsController do
@admin = account_admin_user(account: @account)
end
subject { get :index, account_id: @account.id }
subject { get :index, params: {account_id: @account.id} }
it "returns a 200 for a valid request" do
user_session(@admin)
@ -93,7 +93,7 @@ describe GradingStandardsController do
course_with_teacher(active_all: true)
end
subject { get :index, course_id: @course.id }
subject { get :index, params: {course_id: @course.id} }
it "returns a 200 for a valid request" do
user_session(@teacher)

View File

@ -62,7 +62,7 @@ describe GraphQLController do
before { Account.default.enable_feature!("graphql") }
it "works" do
post :execute, query: "{}"
post :execute, params: {query: "{}"}
expect(JSON.parse(response.body)["errors"]).not_to be_blank
end
end

View File

@ -27,7 +27,7 @@ describe GroupCategoriesController do
describe "POST create" do
it "should require authorization" do
@group = @course.groups.create(:name => "some groups")
post 'create', :course_id => @course.id, :category => {}
post 'create', params: {:course_id => @course.id, :category => {}}
assert_unauthorized
end
@ -35,7 +35,7 @@ describe GroupCategoriesController do
user_session(@teacher)
@group = @course.groups.create(:name => "some groups")
create_users_in_course(@course, 5) # plus one student in before block
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :split_group_count => 2, :split_groups => '1'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :split_group_count => 2, :split_groups => '1'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
groups = assigns[:group_category].groups
@ -46,7 +46,7 @@ describe GroupCategoriesController do
it "should give the new groups the right group_category" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :split_group_count => 1, :split_groups => '1'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :split_group_count => 1, :split_groups => '1'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
expect(assigns[:group_category].groups[0].group_category.name).to eq "Study Groups"
@ -54,26 +54,26 @@ describe GroupCategoriesController do
it "should error if the group name is protected" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Student Groups"}
post 'create', params: {:course_id => @course.id, :category => {:name => "Student Groups"}}
expect(response).not_to be_success
end
it "should error if the group name is already in use" do
user_session(@teacher)
@course.group_categories.create(:name => "My Category")
post 'create', :course_id => @course.id, :category => {:name => "My Category"}
post 'create', params: {:course_id => @course.id, :category => {:name => "My Category"}}
expect(response).not_to be_success
end
it "should require the group name" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {}
post 'create', params: {:course_id => @course.id, :category => {}}
expect(response).not_to be_success
end
it "should respect enable_self_signup" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
expect(assigns[:group_category]).to be_self_signup
@ -82,7 +82,7 @@ describe GroupCategoriesController do
it "should use create_group_count when self-signup" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_group_count => '3'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_group_count => '3'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
expect(assigns[:group_category].groups.size).to eq 3
@ -90,7 +90,7 @@ describe GroupCategoriesController do
it "respects auto_leader params" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_auto_leader => '1', :auto_leader_type => 'RANDOM'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_auto_leader => '1', :auto_leader_type => 'RANDOM'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
expect(assigns[:group_category].auto_leader).to eq 'random'
@ -99,7 +99,7 @@ describe GroupCategoriesController do
it "should respect the max new-category group count" do
user_session(@teacher)
Setting.set('max_groups_in_new_category', '5')
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_group_count => '7'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_group_count => '7'}}
expect(response).to be_success
expect(assigns[:group_category].groups.size).to eq 5
end
@ -107,7 +107,7 @@ describe GroupCategoriesController do
it "should not distribute students when self-signup" do
user_session(@teacher)
create_users_in_course(@course, 3)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_category_count => '2'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :create_category_count => '2'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
assigns[:group_category].groups.all?{ |g| expect(g.users).to be_empty }
@ -115,7 +115,7 @@ describe GroupCategoriesController do
it "should respect restrict_self_signup" do
user_session(@teacher)
post 'create', :course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :restrict_self_signup => '1'}
post 'create', params: {:course_id => @course.id, :category => {:name => "Study Groups", :enable_self_signup => '1', :restrict_self_signup => '1'}}
expect(response).to be_success
expect(assigns[:group_category]).not_to be_nil
expect(assigns[:group_category]).to be_restricted_self_signup
@ -128,13 +128,13 @@ describe GroupCategoriesController do
end
it "should require authorization" do
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {}}
assert_unauthorized
end
it "should update category" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:name => "Different Category", :enable_self_signup => "1"}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:name => "Different Category", :enable_self_signup => "1"}}
expect(response).to be_success
expect(assigns[:group_category]).to eql(@group_category)
expect(assigns[:group_category].name).to eql("Different Category")
@ -143,33 +143,33 @@ describe GroupCategoriesController do
it "should leave the name alone if not given" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {}}
expect(response).to be_success
expect(assigns[:group_category].name).to eq "My Category"
end
it "should not accept a sent but empty name" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:name => ''}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:name => ''}}
expect(response).not_to be_success
end
it "should error if the name is protected" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:name => "Student Groups"}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:name => "Student Groups"}}
expect(response).not_to be_success
end
it "should error if the name is already in use" do
user_session(@teacher)
@course.group_categories.create(:name => "Other Category")
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:name => "Other Category"}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:name => "Other Category"}}
expect(response).not_to be_success
end
it "should not error if the name is the current name" do
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:name => "My Category"}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:name => "My Category"}}
expect(response).to be_success
expect(assigns[:group_category].name).to eql("My Category")
end
@ -184,7 +184,7 @@ describe GroupCategoriesController do
group.add_user(user2)
user_session(@teacher)
put 'update', :course_id => @course.id, :id => @group_category.id, :category => {:enable_self_signup => '1', :restrict_self_signup => '1'}
put 'update', params: {:course_id => @course.id, :id => @group_category.id, :category => {:enable_self_signup => '1', :restrict_self_signup => '1'}}
expect(response).not_to be_success
end
end
@ -192,7 +192,7 @@ describe GroupCategoriesController do
describe "DELETE delete" do
it "should require authorization" do
group_category = @course.group_categories.create(:name => "Study Groups")
delete 'destroy', :course_id => @course.id, :id => group_category.id
delete 'destroy', params: {:course_id => @course.id, :id => group_category.id}
assert_unauthorized
end
@ -202,7 +202,7 @@ describe GroupCategoriesController do
category2 = @course.group_categories.create(:name => "Other Groups")
@course.groups.create(:name => "some group", :group_category => category1)
@course.groups.create(:name => "another group", :group_category => category2)
delete 'destroy', :course_id => @course.id, :id => category1.id
delete 'destroy', params: {:course_id => @course.id, :id => category1.id}
expect(response).to be_success
@course.reload
expect(@course.all_group_categories.length).to eql(2)
@ -213,13 +213,13 @@ describe GroupCategoriesController do
it "should fail if category doesn't exist" do
user_session(@teacher)
delete 'destroy', :course_id => @course.id, :id => 11235
delete 'destroy', params: {:course_id => @course.id, :id => 11235}
expect(response).not_to be_success
end
it "should fail if category is protected" do
user_session(@teacher)
delete 'destroy', :course_id => @course.id, :id => GroupCategory.student_organized_for(@course).id
delete 'destroy', params: {:course_id => @course.id, :id => GroupCategory.student_organized_for(@course).id}
expect(response).not_to be_success
end
end

View File

@ -35,7 +35,7 @@ describe GroupsController do
it "is disabled when feature_flag is off" do
@course.root_account.disable_feature! :student_context_cards
user_session(@teacher)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(assigns[:js_env][:STUDENT_CONTEXT_CARDS_ENABLED]).to be_falsey
end
@ -44,13 +44,13 @@ describe GroupsController do
RoleOverride.manage_role_override(Account.default, teacher_role, perm, override: false)
end
user_session(@teacher)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(assigns[:js_env][:STUDENT_CONTEXT_CARDS_ENABLED]).to be true
end
it "is always disabled for students" do
user_session(@student)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
cards_enabled = assigns[:js_env] && assigns[:js_env][:STUDENT_CONTEXT_CARDS_ENABLED]
expect(cards_enabled).to be_falsey
end
@ -63,7 +63,7 @@ describe GroupsController do
g1 = @course.groups.create(:name => "some group", :group_category => category1)
g2 = @course.groups.create(:name => "some other group", :group_category => category1)
g3 = @course.groups.create(:name => "some third group", :group_category => category2)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
assert_unauthorized
end
@ -74,7 +74,7 @@ describe GroupsController do
g1 = @course.groups.create(:name => "some group", :group_category => category1)
g2 = @course.groups.create(:name => "some other group", :group_category => category1)
g3 = @course.groups.create(:name => "some third group", :group_category => category2)
get 'index', :course_id => @course.id
get 'index', params: {:course_id => @course.id}
expect(response).to be_success
expect(assigns[:groups]).not_to be_empty
expect(assigns[:groups].length).to eql(3)
@ -99,7 +99,7 @@ describe GroupsController do
groups << @course.groups.create(:name => "44", :group_category => category3)
groups << @course.groups.create(:name => "4.5", :group_category => category3)
groups.each {|g| g.add_user @student, 'accepted' }
get 'index', :course_id => @course.id, :per_page => 50, :format => 'json'
get 'index', params: {:course_id => @course.id, :per_page => 50}, format: 'json'
expect(response).to be_success
expect(assigns[:paginated_groups]).not_to be_empty
expect(assigns[:paginated_groups].length).to eql(9)
@ -183,13 +183,13 @@ describe GroupsController do
end
it "should not paginate non-json" do
get 'index', :per_page => 1
get 'index', params: {:per_page => 1}
expect(assigns[:current_groups]).to eq @student.current_groups.by_name
expect(response.headers['Link']).to be_nil
end
it "should paginate json" do
get 'index', :format => 'json', :per_page => 1
get 'index', params: {:per_page => 1}, format: 'json'
expect(assigns[:groups]).to eq [@student.current_groups.by_name.first]
expect(response.headers['Link']).not_to be_nil
end
@ -199,7 +199,7 @@ describe GroupsController do
describe "GET show" do
it "should require authorization" do
@group = Account.default.groups.create!(:name => "some group")
get 'show', :id => @group.id
get 'show', params: {:id => @group.id}
expect(assigns[:group]).to eql(@group)
assert_unauthorized
end
@ -209,7 +209,7 @@ describe GroupsController do
@user = user_model
user_session(@user)
@group.add_user(@user)
get 'show', :id => @group.id
get 'show', params: {:id => @group.id}
expect(response).to be_success
expect(assigns[:group]).to eql(@group)
expect(assigns[:context]).to eql(@group)
@ -223,7 +223,7 @@ describe GroupsController do
category1.save!
g1 = @course.groups.create!(:name => "some group", :group_category => category1)
get 'show', :course_id => @course.id, :id => g1.id, :join => 1
get 'show', params: {:course_id => @course.id, :id => g1.id, :join => 1}
g1.reload
expect(g1.users.map(&:id)).to include @student.id
end
@ -236,7 +236,7 @@ describe GroupsController do
g1 = @course.groups.create!(:name => "some group", :group_category => category1)
g1.add_user(@student)
get 'show', :course_id => @course.id, :id => g1.id, :leave => 1
get 'show', params: {:course_id => @course.id, :id => g1.id, :leave => 1}
g1.reload
expect(g1.users.map(&:id)).not_to include @student.id
end
@ -246,7 +246,7 @@ describe GroupsController do
category1 = GroupCategory.student_organized_for(@course)
g1 = @course.groups.create!(:name => "some group", :group_category => category1, :join_level => "parent_context_auto_join")
get 'show', :course_id => @course.id, :id => g1.id, :join => 1
get 'show', params: {:course_id => @course.id, :id => g1.id, :join => 1}
g1.reload
expect(g1.users.map(&:id)).to include @student.id
end
@ -257,7 +257,7 @@ describe GroupsController do
g1 = @course.groups.create!(:name => "some group", :group_category => category1)
g1.add_user(@student)
get 'show', :course_id => @course.id, :id => g1.id, :leave => 1
get 'show', params: {:course_id => @course.id, :id => g1.id, :leave => 1}
g1.reload
expect(g1.users.map(&:id)).not_to include @student.id
end
@ -268,7 +268,7 @@ describe GroupsController do
category = @course.group_categories.create(:name => "category")
group = @course.groups.create(:name => "some group", :group_category => category)
get 'show', :id => group.id
get 'show', params: {:id => group.id}
expect(response).to be_success
expect(assigns[:group]).to eql(group)
@ -278,7 +278,7 @@ describe GroupsController do
describe "GET new" do
it "should require authorization" do
@group = @course.groups.create!(:name => "some group")
get 'new', :course_id => @course.id
get 'new', params: {:course_id => @course.id}
assert_unauthorized
end
end
@ -286,7 +286,7 @@ describe GroupsController do
describe "POST add_user" do
it "should require authorization" do
@group = Account.default.groups.create!(:name => "some group")
post 'add_user', :group_id => @group.id
post 'add_user', params: {:group_id => @group.id}
assert_unauthorized
end
@ -294,7 +294,7 @@ describe GroupsController do
user_session(@teacher)
@group = @course.groups.create!(:name => "PG 1", :group_category => @category)
@user = user_factory(active_all: true)
post 'add_user', :group_id => @group.id, :user_id => @user.id
post 'add_user', params: {:group_id => @group.id, :user_id => @user.id}
expect(response).to be_success
expect(assigns[:membership]).not_to be_nil
expect(assigns[:membership].user).to eql(@user)
@ -312,7 +312,7 @@ describe GroupsController do
group = group_category.groups.create(:context => @course)
group.add_user(user1)
post 'add_user', :group_id => group.id, :user_id => user2.id
post 'add_user', params: {:group_id => group.id, :user_id => user2.id}
expect(response).not_to be_success
expect(assigns[:membership]).not_to be_nil
expect(assigns[:membership].user).to eql(user2)
@ -325,7 +325,7 @@ describe GroupsController do
@group = Account.default.groups.create!(:name => "some group")
@user = user_factory(active_all: true)
@group.add_user(@user)
delete 'remove_user', :group_id => @group.id, :user_id => @user.id, :id => @user.id
delete 'remove_user', params: {:group_id => @group.id, :user_id => @user.id, :id => @user.id}
assert_unauthorized
end
@ -333,7 +333,7 @@ describe GroupsController do
user_session(@teacher)
@group = @course.groups.create!(:name => "PG 1", :group_category => @category)
@group.add_user(@user)
delete 'remove_user', :group_id => @group.id, :user_id => @user.id, :id => @user.id
delete 'remove_user', params: {:group_id => @group.id, :user_id => @user.id, :id => @user.id}
expect(response).to be_success
@group.reload
expect(@group.users).to be_empty
@ -342,13 +342,13 @@ describe GroupsController do
describe "POST create" do
it "should require authorization" do
post 'create', :course_id => @course.id, :group => {:name => "some group"}
post 'create', params: {:course_id => @course.id, :group => {:name => "some group"}}
assert_unauthorized
end
it "should create new group" do
user_session(@teacher)
post 'create', :course_id => @course.id, :group => {:name => "some group"}
post 'create', params: {:course_id => @course.id, :group => {:name => "some group"}}
expect(response).to be_redirect
expect(assigns[:group]).not_to be_nil
expect(assigns[:group].name).to eql("some group")
@ -357,7 +357,7 @@ describe GroupsController do
it "should honor group[group_category_id] when permitted" do
user_session(@teacher)
group_category = @course.group_categories.create(:name => 'some category')
post 'create', :course_id => @course.id, :group => {:name => "some group", :group_category_id => group_category.id}
post 'create', params: {:course_id => @course.id, :group => {:name => "some group", :group_category_id => group_category.id}}
expect(response).to be_redirect
expect(assigns[:group]).not_to be_nil
expect(assigns[:group].group_category).to eq group_category
@ -366,7 +366,7 @@ describe GroupsController do
it "should not honor group[group_category_id] when not permitted" do
user_session(@student)
group_category = @course.group_categories.create(:name => 'some category')
post 'create', :course_id => @course.id, :group => {:name => "some group", :group_category_id => group_category.id}
post 'create', params: {:course_id => @course.id, :group => {:name => "some group", :group_category_id => group_category.id}}
expect(response).to be_redirect
expect(assigns[:group]).not_to be_nil
expect(assigns[:group].group_category).to eq GroupCategory.student_organized_for(@course)
@ -375,7 +375,7 @@ describe GroupsController do
it "should fail when group[group_category_id] would be honored but doesn't exist" do
user_session(@student)
group_category = @course.group_categories.create(:name => 'some category')
post 'create', :course_id => @course.id, :group => {:name => "some group", :group_category_id => 11235}
post 'create', params: {:course_id => @course.id, :group => {:name => "some group", :group_category_id => 11235}}
expect(response).not_to be_success
end
@ -390,7 +390,7 @@ describe GroupsController do
end
it "should ignore the storage_quota_mb parameter" do
post 'create', :course_id => @course.id, :group => {:name => "a group", :storage_quota_mb => 22}
post 'create', params: {:course_id => @course.id, :group => {:name => "a group", :storage_quota_mb => 22}}
expect(assigns[:group].storage_quota_mb).to eq 11
end
end
@ -402,7 +402,7 @@ describe GroupsController do
end
it "should set the storage_quota_mb parameter" do
post 'create', :course_id => @course.id, :group => {:name => "a group", :storage_quota_mb => 22}
post 'create', params: {:course_id => @course.id, :group => {:name => "a group", :storage_quota_mb => 22}}
expect(assigns[:group].storage_quota_mb).to eq 22
end
end
@ -412,14 +412,14 @@ describe GroupsController do
describe "PUT update" do
it "should require authorization" do
@group = @course.groups.create!(:name => "some group")
put 'update', :course_id => @course.id, :id => @group.id, :group => {:name => "new name"}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:name => "new name"}}
assert_unauthorized
end
it "should update group" do
user_session(@teacher)
@group = @course.groups.create!(:name => "some group")
put 'update', :course_id => @course.id, :id => @group.id, :group => {:name => "new name"}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:name => "new name"}}
expect(response).to be_redirect
expect(assigns[:group]).to eql(@group)
expect(assigns[:group].name).to eql("new name")
@ -429,7 +429,7 @@ describe GroupsController do
user_session(@teacher)
group_category = @course.group_categories.create(:name => 'some category')
@group = @course.groups.create!(:name => "some group")
put 'update', :course_id => @course.id, :id => @group.id, :group => {:group_category_id => group_category.id}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:group_category_id => group_category.id}}
expect(response).to be_redirect
expect(assigns[:group]).to eql(@group)
expect(assigns[:group].group_category).to eq group_category
@ -439,7 +439,7 @@ describe GroupsController do
user_session(@teacher)
group_category = @course.group_categories.create(:name => 'some category')
@group = @course.groups.create!(:name => "some group", :group_category => group_category)
put 'update', :course_id => @course.id, :id => @group.id, :group => {:group_category_id => 11235}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:group_category_id => 11235}}
expect(response).not_to be_success
end
@ -448,7 +448,7 @@ describe GroupsController do
@group = @course.groups.create!(:name => "some group")
@group.add_user(@student1)
@group.update_attribute(:leader, @student1)
put 'update', :course_id => @course.id, :id => @group.id, :group => {:leader => nil}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:leader => nil}}
expect(@group.reload.leader).to be_nil
end
@ -465,7 +465,7 @@ describe GroupsController do
end
it "should ignore the quota parameter" do
put 'update', :course_id => @course.id, :id => @group.id, :group => {:name => 'the group', :storage_quota_mb => 22}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:name => 'the group', :storage_quota_mb => 22}}
@group.reload
expect(@group.name).to eq 'the group'
expect(@group.storage_quota_mb).to eq 11
@ -479,7 +479,7 @@ describe GroupsController do
end
it "should update group quota" do
put 'update', :course_id => @course.id, :id => @group.id, :group => {:name => 'the group', :storage_quota_mb => 22}
put 'update', params: {:course_id => @course.id, :id => @group.id, :group => {:name => 'the group', :storage_quota_mb => 22}}
@group.reload
expect(@group.name).to eq 'the group'
expect(@group.storage_quota_mb).to eq 22
@ -491,14 +491,14 @@ describe GroupsController do
describe "DELETE destroy" do
it "should require authorization" do
@group = @course.groups.create!(:name => "some group")
delete 'destroy', :course_id => @course.id, :id => @group.id
delete 'destroy', params: {:course_id => @course.id, :id => @group.id}
assert_unauthorized
end
it "should delete group" do
user_session(@teacher)
@group = @course.groups.create!(:name => "some group")
delete 'destroy', :course_id => @course.id, :id => @group.id
delete 'destroy', params: {:course_id => @course.id, :id => @group.id}
expect(assigns[:group]).to eql(@group)
expect(assigns[:group]).not_to be_frozen
expect(assigns[:group]).to be_deleted
@ -518,7 +518,7 @@ describe GroupsController do
group.add_user(u1)
group.add_user(u2)
get 'unassigned_members', :course_id => @course.id, :category_id => group.group_category.id
get 'unassigned_members', params: {:course_id => @course.id, :category_id => group.group_category.id}
expect(response).to be_success
data = json_parse
expect(data).not_to be_nil
@ -545,21 +545,21 @@ describe GroupsController do
group3.add_user(u2)
group3.add_user(u3)
get 'unassigned_members', :course_id => @course.id, :category_id => group1.group_category.id
get 'unassigned_members', params: {:course_id => @course.id, :category_id => group1.group_category.id}
expect(response).to be_success
data = json_parse
expect(data).not_to be_nil
expect(data['users'].map{ |u| u['user_id'] }.sort).
to eq [u2, u3].map{ |u| u.id }.sort
get 'unassigned_members', :course_id => @course.id, :category_id => group2.group_category.id
get 'unassigned_members', params: {:course_id => @course.id, :category_id => group2.group_category.id}
expect(response).to be_success
data = json_parse
expect(data).not_to be_nil
expect(data['users'].map{ |u| u['user_id'] }.sort).
to eq [u1, u3].map{ |u| u.id }.sort
get 'unassigned_members', :course_id => @course.id, :category_id => group3.group_category.id
get 'unassigned_members', params: {:course_id => @course.id, :category_id => group3.group_category.id}
expect(response).to be_success
data = json_parse
expect(data).not_to be_nil
@ -574,7 +574,7 @@ describe GroupsController do
group = @course.groups.create(:name => "Group 1", :group_category => GroupCategory.student_organized_for(@course))
group.add_user(u1)
get 'unassigned_members', :course_id => @course.id, :category_id => group.group_category.id
get 'unassigned_members', params: {:course_id => @course.id, :category_id => group.group_category.id}
data = json_parse
expect(data['users'].first['sections'].first['section_id']).to eq @course.default_section.id
expect(data['users'].first['sections'].first['section_code']).to eq @course.default_section.section_code
@ -588,7 +588,7 @@ describe GroupsController do
group = @course.groups.create(:name => "Group 1", :group_category => GroupCategory.student_organized_for(@course))
group.add_user(u1)
get 'context_group_members', :group_id => group.id
get 'context_group_members', params: {:group_id => group.id}
data = json_parse
expect(data.first['sections'].first['section_id']).to eq @course.default_section.id
expect(data.first['sections'].first['section_code']).to eq @course.default_section.section_code
@ -602,7 +602,7 @@ describe GroupsController do
# u1 in the group has :read_roster permission
user_session(u1)
get 'context_group_members', :group_id => group.id
get 'context_group_members', params: {:group_id => group.id}
expect(response).to be_success
# u2 outside the group doesn't have :read_roster permission, since the
@ -610,7 +610,7 @@ describe GroupsController do
# context permission cache, though)
controller.instance_variable_set(:@context_all_permissions, nil)
user_session(u2)
get 'context_group_members', :group_id => group.id
get 'context_group_members', params: {:group_id => group.id}
expect(response).not_to be_success
end
end
@ -622,12 +622,12 @@ describe GroupsController do
end
it "should require authorization" do
get 'public_feed', :format => 'atom', :feed_code => @group.feed_code + 'x'
get 'public_feed', params: {:feed_code => @group.feed_code + 'x'}, format: 'atom'
expect(assigns[:problem]).to match /The verification code is invalid/
end
it "should include absolute path for rel='self' link" do
get 'public_feed', :format => 'atom', :feed_code => @group.feed_code
get 'public_feed', params: {:feed_code => @group.feed_code}, format: 'atom'
feed = Atom::Feed.load_feed(response.body) rescue nil
expect(feed).not_to be_nil
expect(feed.links.first.rel).to match(/self/)
@ -635,7 +635,7 @@ describe GroupsController do
end
it "should include an author for each entry" do
get 'public_feed', :format => 'atom', :feed_code => @group.feed_code
get 'public_feed', params: {:feed_code => @group.feed_code}, format: 'atom'
feed = Atom::Feed.load_feed(response.body) rescue nil
expect(feed).not_to be_nil
expect(feed.entries).not_to be_empty
@ -656,14 +656,14 @@ describe GroupsController do
end
it "should successfully create invitations" do
get 'accept_invitation', :group_id => @group.id, :uuid => @membership.uuid
get 'accept_invitation', params: {:group_id => @group.id, :uuid => @membership.uuid}
@group.reload
expect(@group.has_member?(@user)).to be_truthy
expect(@group.group_memberships.where(:workflow_state => "invited").count).to eq 0
end
it "should reject an invalid invitation uuid" do
get 'accept_invitation', :group_id => @group.id, :uuid => @membership.uuid + "x"
get 'accept_invitation', params: {:group_id => @group.id, :uuid => @membership.uuid + "x"}
@group.reload
expect(@group.has_member?(@user)).to be_falsey
expect(@group.group_memberships.where(:workflow_state => "invited").count).to eq 1