canvas-lms/lib/lti
Evan Battaglia a2ea50eb06 Send custom params for editor button resource link
When the user creates a link with deep linking via the editor button
placement (in the RCE), that link may now create custom parameters and
add a resource_link_lookup_id to the link (this work was done in a
recent commit by Wagner).

This commit is the other half of the story: it sends those link-level
custom parameters in LTI launches that happen when a user clicks those
links created by deep linking from the editor button.

closes INTEROP-6316
flag=none

Test plan:
- Make editor button deep links with custom params in a course context
  (such as text entry submission) and in an account context (e.g.
  a new outcome description -- under Admin -> Outcomes). One of the
  custom parameters should contain a variable expansion
- For each link, click it and make sure custom parameters are given,
  and expanded as necessary.
- Try removing the resource_link_lookup_id from the URL and make sure
  the launch still happens, but without the link-specific custom params.
- Try triggering a normal (old) "Couldn't find settings for this link"
  error, such as by changing the account/course ID in the link URL, and
  make sure that error still happens.
- Temporarily change the context_id in the ResourceLink and make sure
  that causes an error "Couldn't find valid settings for this link:
  Resource link not found"
- Temporarily change the context_external_tool_id in the ResourceLink to
  something that has a different developer_key_id and make sure you get
  an error "Couldn't find valid settings for this link: Resource link
  not valid for tool"
- Try changing the resource_link_lookup_id in the URL to something
  invalid and make sure you get an error "Couldn't find valid settings for
  this link: Resource link not found"
- Make sure the Assignment deep linking still works (see test plan for
  723118c4)

Change-Id: Ia72d5488677f520e5790db81001e9573c4be6be5
Reviewed-on: https://gerrit.instructure.com/c/canvas-lms/+/256188
Tested-by: Service Cloud Jenkins <svc.cloudjenkins@instructure.com>
Reviewed-by: Weston Dransfield <wdransfield@instructure.com>
QA-Review: Wagner Goncalves <wagner.goncalves@instructure.com>
Product-Review: Evan Battaglia <ebattaglia@instructure.com>
2021-01-11 22:40:57 +00:00
..
errors add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
ims add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
membership_service add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
messages Send custom params for editor button resource link 2021-01-11 22:40:57 +00:00
oauth2 add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
api_service_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
app_collator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
app_launch_collator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
app_util.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
asset.rb Add public course LTI 1.3 support 2020-12-10 20:13:12 +00:00
capabilities_helper.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
content_item_converter.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
content_item_response.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
content_item_selection_request.rb standard LTI error handling for invalid content placement 2020-12-22 03:47:05 +00:00
content_item_util.rb update all invocations of send_later and friends to new syntax 2020-10-30 19:13:54 +00:00
errors.rb standard LTI error handling for invalid content placement 2020-12-22 03:47:05 +00:00
external_tool_name_bookmarker.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
external_tool_tab.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
key_storage.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
logging.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
message_authenticator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
message_handler_name_bookmarker.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
permission_checker.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
plagiarism_subscriptions_helper.rb Change plagiarism subscriptions to be tool proxy guid 2020-12-11 22:32:19 +00:00
privacy_level_expander.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
re_reg_constraint.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
redis_message_client.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
security.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
substitutions_helper.rb LTI previousContextIds.recursive: uniqify courses 2020-12-23 20:08:48 +00:00
tool_proxy_name_bookmarker.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
tool_proxy_validator.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00
variable_expander.rb Add custom variable Context.id.history 2020-11-10 17:07:34 +00:00
variable_expansion.rb add # frozen_string_literal: true for lib 2020-10-27 20:49:50 +00:00