From 823a24abf4979661b795eab24cd07bdbc6e7917e Mon Sep 17 00:00:00 2001
From: Giovanni Cimolin da Silva <giovannicimolin@gmail.com>
Date: Tue, 22 Feb 2022 17:55:58 -0300
Subject: [PATCH] fix: LTI Deep linking launch parameter for H5P

---
 README.rst                                 | 7 +++++++
 lti_consumer/__init__.py                   | 2 +-
 lti_consumer/lti_xblock.py                 | 2 --
 lti_consumer/tests/unit/test_lti_xblock.py | 2 +-
 4 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/README.rst b/README.rst
index 605a3bf..bd2fbf8 100644
--- a/README.rst
+++ b/README.rst
@@ -367,6 +367,13 @@ Changelog
 
 Please See the [releases tab](https://github.com/edx/xblock-lti-consumer/releases) for the complete changelog.
 
+3.4.4 - 2022-03-03
+------------------
+
+* Fix LTI 1.3 Deep Linking launch url - always perform launch on launch URL, but update `target_link_uri` when
+  loading deep linking content.
+  See LTI 1.3 spec at: https://www.imsglobal.org/spec/lti/v1p3#target-link-uri
+
 3.4.3 - 2022-02-01
 ------------------
 
diff --git a/lti_consumer/__init__.py b/lti_consumer/__init__.py
index f8fb0f6..ed92eb5 100644
--- a/lti_consumer/__init__.py
+++ b/lti_consumer/__init__.py
@@ -4,4 +4,4 @@ Runtime will load the XBlock class from here.
 from .apps import LTIConsumerApp
 from .lti_xblock import LtiConsumerXBlock
 
-__version__ = '3.4.3'
+__version__ = '3.4.4'
diff --git a/lti_consumer/lti_xblock.py b/lti_consumer/lti_xblock.py
index 6a06022..21b3e93 100644
--- a/lti_consumer/lti_xblock.py
+++ b/lti_consumer/lti_xblock.py
@@ -1145,8 +1145,6 @@ class LtiConsumerXBlock(StudioEditableXBlockMixin, XBlock):
                     url=dl_params.get('url'),
                     custom=dl_params.get('custom')
                 )
-                if dl_params.get('url'):
-                    context.update({'launch_url': dl_params.get('url')})
 
             # Update context with LTI launch parameters
             context.update({
diff --git a/lti_consumer/tests/unit/test_lti_xblock.py b/lti_consumer/tests/unit/test_lti_xblock.py
index 1e1a7a7..9a3e6a0 100644
--- a/lti_consumer/tests/unit/test_lti_xblock.py
+++ b/lti_consumer/tests/unit/test_lti_xblock.py
@@ -1416,7 +1416,7 @@ class TestLtiConsumer1p3XBlock(TestCase):
 
         # Check response
         self.assertEqual(response.status_code, 200)
-        self.assertIn("https://deep-link-content/", content)
+        self.assertIn("http://tool.example/launch", content)
 
 
 class TestLti1p3AccessTokenEndpoint(TestLtiConsumerXBlock):
-- 
GitLab