hypothesis / lms

LTI app for integrating with learning management systems
BSD 2-Clause "Simplified" License
46 stars 14 forks source link

Run IMS Certification Tests for LTI 1.1 #932

Closed klemay closed 4 years ago

klemay commented 5 years ago

Part of https://github.com/hypothesis/lms/issues/705, not blocked by https://github.com/hypothesis/lms/issues/876 but it may not make sense to run the tests until #876 is implemented.

The IMS website is so confusing/complicated that they created a video for members to teach them how to navigate it... I'll try to point y'all to where you need to go.

To run the test:

  1. Go to https://www.imsglobal.org/user and log in (credentials in Passpack)
  2. Go to https://www.imsglobal.org/lti-v1-certification-suite (if you skip step 1 you will be redirected to the login page and likely won't be able to navigate your way here - so please log in first!)
  3. Click on "Process for Tool Providers" screenshot-www imsglobal org-2019 08 22-15-32-55
  4. You'll be directed to a "wizard" that will walk you through the testing process

The testing process is divided into the following stages:

The certification tests are divided into the following sections:

seanh commented 4 years ago

I've run the test suite:

Summary

If I'm reading the certification suite tool correctly, there appear to be several separate certifications here. Some of the certifications apply to our app, and some don't. And there are different tests for each certification:

In order to pass all the tests that the test suite claims "apply to" LTI 1.0 and 1.1 we need to:

  1. Fix 7 easy-looking "Invalid Launch Requests" test fails
  2. Fix 2 easy-looking "Levels of User Information" test fails (which look like they may both be the same one bug)
  3. For LTI 1.1 certification (but not 1.0), if I'm reading the tool correctly, I think we need to finish grading and release it for all LMS's and then run one "Outcomes 1.0 service" test and pass it. It seems odd to me that grading support would be required for LTI 1.1 certification. Surely grading isn't applicable to all apps? But the test suite says it "Applies to: 1.1, Outcomes-1 [required]".

I've created separate issues for each thing we'd need to fix and given them all the LTI 1.1 Certification label.

Details

Section 8: Tool Settings service**: Not applicable to our app. I don't think we need to pass this for LTI 1.1 certification, it's only for Tool Settings [service] certification.

Full results

TestApplies toStatus 
1  Invalid Launch Requests 
1.1  No resource_link_id provided1.0, 1.1, 1.2Failed 
1.2  No resource_link_id or return URL provided1.0, 1.1, 1.2Failed 
1.3  Invalid OAuth consumer key1.0, 1.1, 1.2Passed 
1.4  Invalid OAuth signature1.0, 1.1, 1.2Passed 
1.5  Invalid LTI version1.0, 1.1, 1.2Failed 
1.6  Wrong LTI version1.0, 1.1, 1.2Failed 
1.7  Missing LTI version1.0, 1.1, 1.2Failed 
1.8  Invalid LTI message type1.0, 1.1, 1.2Failed 
1.9  Missing LTI message type1.0, 1.1, 1.2Failed 
2  Valid Launch Requests 
2.1  Launch as an instructor1.0, 1.1, 1.2Passed 
2.2  Launch as an instructor from a different resource link1.0, 1.1, 1.2Passed 
2.3  Launch as a learner1.0, 1.1, 1.2Passed 
2.4  Launch as a learner from a different resource link1.0, 1.1, 1.2Passed 
3  Types of User Roles 
3.1  Launch as an instructor using a fully-qualified URN1.0, 1.1, 1.2Passed 
3.2  Launch as an instructor with a list of roles1.0, 1.1, 1.2Passed 
3.3  Launch as an instructor using a full URN role in a list1.0, 1.1, 1.2Passed 
3.4  Launch as a learner using a full URN role in a list1.0, 1.1, 1.2Passed 
3.5  Launch as a user with no context role1.0, 1.1, 1.2Passed 
3.6  Launch as a user with an institution role but no context role1.0, 1.1, 1.2Passed 
3.7  Launch as a user with an institution role which has no corresponding context role1.0, 1.1, 1.2Passed 
3.8  Launch as a user with an unrecognised role1.0, 1.1, 1.2Passed 
4  Levels of User Information 
4.1  Launch as a learner with email but no name1.0, 1.1, 1.2Passed 
4.2  Launch as a learner with given/family but no full name1.0, 1.1, 1.2Passed 
4.3  Launch as a learner with a full name but no given or family names1.0, 1.1, 1.2Passed 
4.4  Launch as an instructor with no personal information1.0, 1.1, 1.2Passed 
4.5  Launch as an instructor with no context or personal information apart from the context ID1.0, 1.1, 1.2Failed 
4.6  Launch as Instructor with no context information1.0, 1.1, 1.2Failed 
4.7  Launch with only resource_link_id1.0, 1.1, 1.2Passed 
5  Deep Linking Message 
5.1  Create an LTI linkDeep Linking  
5.2  Supports data parameterDeep Linking  
6  Outcomes 1.0 service 
6.1  replaceResult requests1.1, Outcomes-1  
6.2  readResult requests1.1, Outcomes-1OK 
6.3  deleteResult requests1.1, Outcomes-1OK 
6.4  Processing of Gradebook entries1.1, Outcomes-1  
7  Tool Consumer Profile 
7.1  Valid request1.2  
8  Tool Settings service 
8.1  GET requestsTool Settings 
8.2  PUT requestsTool Settings 
9  Names and Roles Service 
9.1  GET Names and Roles container requestsNames and Roles 
9.2  GET Names and Roles container requests for a resource linkNames and Roles 
9.3  Include 'role' query parameterNames and Roles 
9.4  Include 'limit' query parameterNames and Roles