qti 2.0.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +5 -5
  2. data/lib/qti.rb +1 -0
  3. data/lib/qti/models/assessment_meta.rb +78 -3
  4. data/lib/qti/models/resource.rb +26 -2
  5. data/lib/qti/v1/models/interactions/base_fill_blank_interaction.rb +33 -1
  6. data/lib/qti/v1/models/interactions/canvas_multiple_dropdown.rb +2 -29
  7. data/lib/qti/v1/models/object_bank.rb +14 -0
  8. data/lib/qti/version.rb +1 -1
  9. data/spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml +244 -0
  10. data/spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
  11. data/spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
  12. data/spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml +39 -0
  13. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
  14. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
  15. data/spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml +39 -0
  16. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml +69 -0
  17. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml +99 -0
  18. data/spec/fixtures/with_banks/imsmanifest.xml +54 -0
  19. data/spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti +85 -0
  20. data/spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti +107 -0
  21. data/spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti +59 -0
  22. data/spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti +145 -0
  23. data/spec/lib/qti/models/assessment_meta_spec.rb +104 -2
  24. data/spec/lib/qti/models/resource_spec.rb +14 -0
  25. data/spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb +146 -0
  26. data/spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb +0 -27
  27. data/spec/lib/qti/v1/models/object_bank_spec.rb +39 -0
  28. metadata +38 -12
  29. data/spec/gemfiles/nokogiri-1.6.gemfile.lock +0 -149
  30. data/spec/gemfiles/nokogiri-1.8.gemfile.lock +0 -149
  31. data/spec/gemfiles/rails-5.2.gemfile.lock +0 -222
@@ -0,0 +1,85 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
3
+ <objectbank ident="g195e078fb6e3c4054e38e5c9226287ba">
4
+ <qtimetadata>
5
+ <qtimetadatafield>
6
+ <fieldlabel>bank_title</fieldlabel>
7
+ <fieldentry>Last Bank</fieldentry>
8
+ </qtimetadatafield>
9
+ </qtimetadata>
10
+ <item ident="gdddd8d1e584c66617c2b3f5245de5eab" title="Question">
11
+ <itemmetadata>
12
+ <qtimetadata>
13
+ <qtimetadatafield>
14
+ <fieldlabel>question_type</fieldlabel>
15
+ <fieldentry>text_only_question</fieldentry>
16
+ </qtimetadatafield>
17
+ <qtimetadatafield>
18
+ <fieldlabel>points_possible</fieldlabel>
19
+ <fieldentry>0</fieldentry>
20
+ </qtimetadatafield>
21
+ <qtimetadatafield>
22
+ <fieldlabel>original_answer_ids</fieldlabel>
23
+ <fieldentry></fieldentry>
24
+ </qtimetadatafield>
25
+ </qtimetadata>
26
+ </itemmetadata>
27
+ <presentation>
28
+ <material>
29
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;This is just some text in a bank&lt;/p&gt;&lt;/div&gt;</mattext>
30
+ </material>
31
+ </presentation>
32
+ </item>
33
+ <item ident="g29b5947f49949ca64008272b9ff29979" title="Question">
34
+ <itemmetadata>
35
+ <qtimetadata>
36
+ <qtimetadatafield>
37
+ <fieldlabel>question_type</fieldlabel>
38
+ <fieldentry>multiple_answers_question</fieldentry>
39
+ </qtimetadatafield>
40
+ <qtimetadatafield>
41
+ <fieldlabel>points_possible</fieldlabel>
42
+ <fieldentry>1.0</fieldentry>
43
+ </qtimetadatafield>
44
+ <qtimetadatafield>
45
+ <fieldlabel>original_answer_ids</fieldlabel>
46
+ <fieldentry>430,1298</fieldentry>
47
+ </qtimetadatafield>
48
+ </qtimetadata>
49
+ </itemmetadata>
50
+ <presentation>
51
+ <material>
52
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Name a letter after X&lt;/p&gt;&lt;/div&gt;</mattext>
53
+ </material>
54
+ <response_lid ident="response1" rcardinality="Multiple">
55
+ <render_choice>
56
+ <response_label ident="430">
57
+ <material>
58
+ <mattext texttype="text/plain">Y</mattext>
59
+ </material>
60
+ </response_label>
61
+ <response_label ident="1298">
62
+ <material>
63
+ <mattext texttype="text/plain">Z</mattext>
64
+ </material>
65
+ </response_label>
66
+ </render_choice>
67
+ </response_lid>
68
+ </presentation>
69
+ <resprocessing>
70
+ <outcomes>
71
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
72
+ </outcomes>
73
+ <respcondition continue="No">
74
+ <conditionvar>
75
+ <and>
76
+ <varequal respident="response1">430</varequal>
77
+ <varequal respident="response1">1298</varequal>
78
+ </and>
79
+ </conditionvar>
80
+ <setvar action="Set" varname="SCORE">100</setvar>
81
+ </respcondition>
82
+ </resprocessing>
83
+ </item>
84
+ </objectbank>
85
+ </questestinterop>
@@ -0,0 +1,107 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
3
+ <assessment ident="g9a20cf3af178b54e4792cbe992f65790" title="Some Old Quiz">
4
+ <qtimetadata>
5
+ <qtimetadatafield>
6
+ <fieldlabel>cc_maxattempts</fieldlabel>
7
+ <fieldentry>1</fieldentry>
8
+ </qtimetadatafield>
9
+ </qtimetadata>
10
+ <section ident="root_section">
11
+ <item ident="g067eae0eb6c36be5b3386c35c2cdfa14" title="Question">
12
+ <itemmetadata>
13
+ <qtimetadata>
14
+ <qtimetadatafield>
15
+ <fieldlabel>question_type</fieldlabel>
16
+ <fieldentry>true_false_question</fieldentry>
17
+ </qtimetadatafield>
18
+ <qtimetadatafield>
19
+ <fieldlabel>points_possible</fieldlabel>
20
+ <fieldentry>1.0</fieldentry>
21
+ </qtimetadatafield>
22
+ <qtimetadatafield>
23
+ <fieldlabel>original_answer_ids</fieldlabel>
24
+ <fieldentry>5972,5959</fieldentry>
25
+ </qtimetadatafield>
26
+ <qtimetadatafield>
27
+ <fieldlabel>assessment_question_identifierref</fieldlabel>
28
+ <fieldentry>gb11064031e54bbf6bf076a722e0ac941</fieldentry>
29
+ </qtimetadatafield>
30
+ </qtimetadata>
31
+ </itemmetadata>
32
+ <presentation>
33
+ <material>
34
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Is this an old quiz?&lt;/p&gt;&lt;/div&gt;</mattext>
35
+ </material>
36
+ <response_lid ident="response1" rcardinality="Single">
37
+ <render_choice>
38
+ <response_label ident="5972">
39
+ <material>
40
+ <mattext texttype="text/plain">True</mattext>
41
+ </material>
42
+ </response_label>
43
+ <response_label ident="5959">
44
+ <material>
45
+ <mattext texttype="text/plain">False</mattext>
46
+ </material>
47
+ </response_label>
48
+ </render_choice>
49
+ </response_lid>
50
+ </presentation>
51
+ <resprocessing>
52
+ <outcomes>
53
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
54
+ </outcomes>
55
+ <respcondition continue="No">
56
+ <conditionvar>
57
+ <varequal respident="response1">5972</varequal>
58
+ </conditionvar>
59
+ <setvar action="Set" varname="SCORE">100</setvar>
60
+ </respcondition>
61
+ </resprocessing>
62
+ </item>
63
+ <item ident="g566842feff3b50f778290f11021b365e" title="Question">
64
+ <itemmetadata>
65
+ <qtimetadata>
66
+ <qtimetadatafield>
67
+ <fieldlabel>question_type</fieldlabel>
68
+ <fieldentry>essay_question</fieldentry>
69
+ </qtimetadatafield>
70
+ <qtimetadatafield>
71
+ <fieldlabel>points_possible</fieldlabel>
72
+ <fieldentry>1.0</fieldentry>
73
+ </qtimetadatafield>
74
+ <qtimetadatafield>
75
+ <fieldlabel>original_answer_ids</fieldlabel>
76
+ <fieldentry></fieldentry>
77
+ </qtimetadatafield>
78
+ <qtimetadatafield>
79
+ <fieldlabel>assessment_question_identifierref</fieldlabel>
80
+ <fieldentry>gfc230151001d8b7ba5325da6b895c0e3</fieldentry>
81
+ </qtimetadatafield>
82
+ </qtimetadata>
83
+ </itemmetadata>
84
+ <presentation>
85
+ <material>
86
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Write an essay about banks&lt;/p&gt;&lt;/div&gt;</mattext>
87
+ </material>
88
+ <response_str ident="response1" rcardinality="Single">
89
+ <render_fib>
90
+ <response_label ident="answer1" rshuffle="No"/>
91
+ </render_fib>
92
+ </response_str>
93
+ </presentation>
94
+ <resprocessing>
95
+ <outcomes>
96
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
97
+ </outcomes>
98
+ <respcondition continue="No">
99
+ <conditionvar>
100
+ <other/>
101
+ </conditionvar>
102
+ </respcondition>
103
+ </resprocessing>
104
+ </item>
105
+ </section>
106
+ </assessment>
107
+ </questestinterop>
@@ -0,0 +1,59 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
3
+ <objectbank ident="gab22de457404cb5cf022078f1e4da75e">
4
+ <qtimetadata>
5
+ <qtimetadatafield>
6
+ <fieldlabel>bank_title</fieldlabel>
7
+ <fieldentry>Unfiled Questions</fieldentry>
8
+ </qtimetadatafield>
9
+ </qtimetadata>
10
+ <item ident="gb11064031e54bbf6bf076a722e0ac941" title="Question">
11
+ <itemmetadata>
12
+ <qtimetadata>
13
+ <qtimetadatafield>
14
+ <fieldlabel>question_type</fieldlabel>
15
+ <fieldentry>true_false_question</fieldentry>
16
+ </qtimetadatafield>
17
+ <qtimetadatafield>
18
+ <fieldlabel>points_possible</fieldlabel>
19
+ <fieldentry>1.0</fieldentry>
20
+ </qtimetadatafield>
21
+ <qtimetadatafield>
22
+ <fieldlabel>original_answer_ids</fieldlabel>
23
+ <fieldentry>5972,5959</fieldentry>
24
+ </qtimetadatafield>
25
+ </qtimetadata>
26
+ </itemmetadata>
27
+ <presentation>
28
+ <material>
29
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Is this an old quiz?&lt;/p&gt;&lt;/div&gt;</mattext>
30
+ </material>
31
+ <response_lid ident="response1" rcardinality="Single">
32
+ <render_choice>
33
+ <response_label ident="5972">
34
+ <material>
35
+ <mattext texttype="text/plain">True</mattext>
36
+ </material>
37
+ </response_label>
38
+ <response_label ident="5959">
39
+ <material>
40
+ <mattext texttype="text/plain">False</mattext>
41
+ </material>
42
+ </response_label>
43
+ </render_choice>
44
+ </response_lid>
45
+ </presentation>
46
+ <resprocessing>
47
+ <outcomes>
48
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
49
+ </outcomes>
50
+ <respcondition continue="No">
51
+ <conditionvar>
52
+ <varequal respident="response1">5972</varequal>
53
+ </conditionvar>
54
+ <setvar action="Set" varname="SCORE">100</setvar>
55
+ </respcondition>
56
+ </resprocessing>
57
+ </item>
58
+ </objectbank>
59
+ </questestinterop>
@@ -0,0 +1,145 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
3
+ <objectbank ident="gf3edf8167be16b3a65a00ca923132b07">
4
+ <qtimetadata>
5
+ <qtimetadatafield>
6
+ <fieldlabel>bank_title</fieldlabel>
7
+ <fieldentry>First Bank</fieldentry>
8
+ </qtimetadatafield>
9
+ </qtimetadata>
10
+ <item ident="gfc230151001d8b7ba5325da6b895c0e3" title="Question">
11
+ <itemmetadata>
12
+ <qtimetadata>
13
+ <qtimetadatafield>
14
+ <fieldlabel>question_type</fieldlabel>
15
+ <fieldentry>essay_question</fieldentry>
16
+ </qtimetadatafield>
17
+ <qtimetadatafield>
18
+ <fieldlabel>points_possible</fieldlabel>
19
+ <fieldentry>1.0</fieldentry>
20
+ </qtimetadatafield>
21
+ <qtimetadatafield>
22
+ <fieldlabel>original_answer_ids</fieldlabel>
23
+ <fieldentry></fieldentry>
24
+ </qtimetadatafield>
25
+ </qtimetadata>
26
+ </itemmetadata>
27
+ <presentation>
28
+ <material>
29
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Write an essay about banks&lt;/p&gt;&lt;/div&gt;</mattext>
30
+ </material>
31
+ <response_str ident="response1" rcardinality="Single">
32
+ <render_fib>
33
+ <response_label ident="answer1" rshuffle="No"/>
34
+ </render_fib>
35
+ </response_str>
36
+ </presentation>
37
+ <resprocessing>
38
+ <outcomes>
39
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
40
+ </outcomes>
41
+ <respcondition continue="No">
42
+ <conditionvar>
43
+ <other/>
44
+ </conditionvar>
45
+ </respcondition>
46
+ </resprocessing>
47
+ </item>
48
+ <item ident="ga9b15165c2d169765d9a7583be507cf7" title="Question">
49
+ <itemmetadata>
50
+ <qtimetadata>
51
+ <qtimetadatafield>
52
+ <fieldlabel>question_type</fieldlabel>
53
+ <fieldentry>multiple_choice_question</fieldentry>
54
+ </qtimetadatafield>
55
+ <qtimetadatafield>
56
+ <fieldlabel>points_possible</fieldlabel>
57
+ <fieldentry>1.0</fieldentry>
58
+ </qtimetadatafield>
59
+ <qtimetadatafield>
60
+ <fieldlabel>original_answer_ids</fieldlabel>
61
+ <fieldentry>1999,9339</fieldentry>
62
+ </qtimetadatafield>
63
+ </qtimetadata>
64
+ </itemmetadata>
65
+ <presentation>
66
+ <material>
67
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Pick the vowel&lt;/p&gt;&lt;/div&gt;</mattext>
68
+ </material>
69
+ <response_lid ident="response1" rcardinality="Single">
70
+ <render_choice>
71
+ <response_label ident="1999">
72
+ <material>
73
+ <mattext texttype="text/plain">E</mattext>
74
+ </material>
75
+ </response_label>
76
+ <response_label ident="9339">
77
+ <material>
78
+ <mattext texttype="text/plain">G</mattext>
79
+ </material>
80
+ </response_label>
81
+ </render_choice>
82
+ </response_lid>
83
+ </presentation>
84
+ <resprocessing>
85
+ <outcomes>
86
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
87
+ </outcomes>
88
+ <respcondition continue="No">
89
+ <conditionvar>
90
+ <varequal respident="response1">1999</varequal>
91
+ </conditionvar>
92
+ <setvar action="Set" varname="SCORE">100</setvar>
93
+ </respcondition>
94
+ </resprocessing>
95
+ </item>
96
+ <item ident="g67e8c6bbb51f71dd55ac0d0cbf460e3f" title="Question">
97
+ <itemmetadata>
98
+ <qtimetadata>
99
+ <qtimetadatafield>
100
+ <fieldlabel>question_type</fieldlabel>
101
+ <fieldentry>true_false_question</fieldentry>
102
+ </qtimetadatafield>
103
+ <qtimetadatafield>
104
+ <fieldlabel>points_possible</fieldlabel>
105
+ <fieldentry>1.0</fieldentry>
106
+ </qtimetadatafield>
107
+ <qtimetadatafield>
108
+ <fieldlabel>original_answer_ids</fieldlabel>
109
+ <fieldentry>7085,6110</fieldentry>
110
+ </qtimetadatafield>
111
+ </qtimetadata>
112
+ </itemmetadata>
113
+ <presentation>
114
+ <material>
115
+ <mattext texttype="text/html">&lt;div&gt;&lt;p&gt;Is this question in a bank?&lt;/p&gt;&lt;/div&gt;</mattext>
116
+ </material>
117
+ <response_lid ident="response1" rcardinality="Single">
118
+ <render_choice>
119
+ <response_label ident="7085">
120
+ <material>
121
+ <mattext texttype="text/plain">True</mattext>
122
+ </material>
123
+ </response_label>
124
+ <response_label ident="6110">
125
+ <material>
126
+ <mattext texttype="text/plain">False</mattext>
127
+ </material>
128
+ </response_label>
129
+ </render_choice>
130
+ </response_lid>
131
+ </presentation>
132
+ <resprocessing>
133
+ <outcomes>
134
+ <decvar maxvalue="100" minvalue="0" varname="SCORE" vartype="Decimal"/>
135
+ </outcomes>
136
+ <respcondition continue="No">
137
+ <conditionvar>
138
+ <varequal respident="response1">7085</varequal>
139
+ </conditionvar>
140
+ <setvar action="Set" varname="SCORE">100</setvar>
141
+ </respcondition>
142
+ </resprocessing>
143
+ </item>
144
+ </objectbank>
145
+ </questestinterop>
@@ -4,7 +4,7 @@ context 'Canvas Assessment Meta Data' do
4
4
  let(:assessment) { Qti::Importer.new(file_path).test_object }
5
5
 
6
6
  shared_examples 'loads canvas meta data' do
7
- it 'creates a vaild assessment' do
7
+ it 'creates a valid assessment' do
8
8
  expect(assessment).to be_kind_of(assessment_type)
9
9
  expect(assessment.canvas_title).to eq(title)
10
10
  expect(assessment.canvas_description).to eq(instructions)
@@ -21,6 +21,18 @@ context 'Canvas Assessment Meta Data' do
21
21
  expect(assessment.canvas_one_time_results?).to eq(one_time_results)
22
22
  expect(assessment.canvas_scoring_policy).to eq(scoring_policy)
23
23
  expect(assessment.canvas_shuffle_answers?).to eq(shuffle_answers)
24
+ expect(assessment.canvas_lock_at).to eq(lock_at)
25
+ expect(assessment.canvas_unlock_at).to eq(unlock_at)
26
+ expect(assessment.canvas_due_at).to eq(due_at)
27
+ expect(assessment.canvas_access_code).to eq(access_code)
28
+ expect(assessment.canvas_ip_filter).to eq(ip_filter)
29
+ expect(assessment.canvas_time_limit).to eq(time_limit)
30
+ expect(assessment.canvas_show_correct_answers_at).to eq(show_answers_at)
31
+ expect(assessment.canvas_hide_correct_answers_at).to eq(hide_answers_at)
32
+ expect(assessment.canvas_require_lockdown_browser?).to eq(rlb)
33
+ expect(assessment.canvas_require_lockdown_browser_for_results?).to eq(rlb_results)
34
+ expect(assessment.canvas_require_lockdown_browser_monitor?).to eq(rlb_monitor)
35
+ expect(assessment.canvas_lockdown_browser_monitor_data).to eq(lb_monitor_data)
24
36
  end
25
37
  end
26
38
 
@@ -41,6 +53,84 @@ context 'Canvas Assessment Meta Data' do
41
53
  let(:one_time_results) { false }
42
54
  let(:scoring_policy) { 'keep_highest' }
43
55
  let(:shuffle_answers) { false }
56
+ let(:lock_at) { nil }
57
+ let(:unlock_at) { nil }
58
+ let(:due_at) { nil }
59
+ let(:access_code) { nil }
60
+ let(:ip_filter) { nil }
61
+ let(:time_limit) { nil }
62
+ let(:show_answers_at) { nil }
63
+ let(:hide_answers_at) { nil }
64
+ let(:rlb) { false }
65
+ let(:rlb_results) { false }
66
+ let(:rlb_monitor) { false }
67
+ let(:lb_monitor_data) { nil }
68
+
69
+ include_examples('loads canvas meta data')
70
+ end
71
+
72
+ describe 'in a QTI 1.2 container with extended fields' do
73
+ let(:qti_file) { 'test_qti_1.2_canvas_extended_1' }
74
+ let(:assessment_type) { Qti::V1::Models::Assessment }
75
+ let(:title) { 'asd09sdfaxsdflj' }
76
+ let(:instructions) { '<p>dlkjfaflkjla3rlajl3lafd</p>' }
77
+ let(:points_possible) { 0.0 }
78
+ let(:oqaat) { true }
79
+ let(:allowed_attempts) { 52 }
80
+ let(:hide_results) { nil }
81
+ let(:quiz_type) { 'assignment' }
82
+ let('anon_submissions') { false }
83
+ let(:could_be_locked) { false }
84
+ let(:nobacktracking) { true }
85
+ let(:available) { false }
86
+ let(:one_time_results) { false }
87
+ let(:scoring_policy) { 'keep_average' }
88
+ let(:shuffle_answers) { true }
89
+ let(:lock_at) { '2020-07-10T04:59:59' }
90
+ let(:unlock_at) { '2020-04-16T05:00:00' }
91
+ let(:due_at) { '2020-05-23T04:59:59' }
92
+ let(:access_code) { '98aAlfmxtw#!£$s' }
93
+ let(:ip_filter) { '192.168.217.1/24' }
94
+ let(:time_limit) { 187 }
95
+ let(:show_answers_at) { '2041-02-17 06:00:00 UTC' }
96
+ let(:hide_answers_at) { '2042-12-26 06:00:00 UTC' }
97
+ let(:rlb) { false }
98
+ let(:rlb_results) { false }
99
+ let(:rlb_monitor) { false }
100
+ let(:lb_monitor_data) { nil }
101
+
102
+ include_examples('loads canvas meta data')
103
+ end
104
+
105
+ describe 'in a QTI 1.2 container with extended fields and empty tags' do
106
+ let(:qti_file) { 'test_qti_1.2_canvas_extended_2' }
107
+ let(:assessment_type) { Qti::V1::Models::Assessment }
108
+ let(:title) { '' }
109
+ let(:instructions) { '' }
110
+ let(:points_possible) { 0.0 }
111
+ let(:oqaat) { false }
112
+ let(:allowed_attempts) { 0 }
113
+ let(:hide_results) { nil }
114
+ let(:quiz_type) { nil }
115
+ let('anon_submissions') { false }
116
+ let(:could_be_locked) { false }
117
+ let(:nobacktracking) { false }
118
+ let(:available) { false }
119
+ let(:one_time_results) { false }
120
+ let(:scoring_policy) { nil }
121
+ let(:shuffle_answers) { false }
122
+ let(:lock_at) { nil }
123
+ let(:unlock_at) { nil }
124
+ let(:due_at) { nil }
125
+ let(:access_code) { nil }
126
+ let(:ip_filter) { nil }
127
+ let(:time_limit) { nil }
128
+ let(:show_answers_at) { nil }
129
+ let(:hide_answers_at) { nil }
130
+ let(:rlb) { false }
131
+ let(:rlb_results) { false }
132
+ let(:rlb_monitor) { false }
133
+ let(:lb_monitor_data) { nil }
44
134
 
45
135
  include_examples('loads canvas meta data')
46
136
  end
@@ -53,7 +143,7 @@ context 'Canvas Assessment Meta Data' do
53
143
  let(:points_possible) { 1.0 }
54
144
  let(:oqaat) { false }
55
145
  let(:allowed_attempts) { 1 }
56
- let(:hide_results) { '' }
146
+ let(:hide_results) { nil }
57
147
  let(:quiz_type) { 'assignment' }
58
148
  let('anon_submissions') { false }
59
149
  let(:could_be_locked) { false }
@@ -62,6 +152,18 @@ context 'Canvas Assessment Meta Data' do
62
152
  let(:one_time_results) { false }
63
153
  let(:scoring_policy) { 'keep_highest' }
64
154
  let(:shuffle_answers) { false }
155
+ let(:lock_at) { nil }
156
+ let(:unlock_at) { nil }
157
+ let(:due_at) { nil }
158
+ let(:access_code) { nil }
159
+ let(:ip_filter) { nil }
160
+ let(:time_limit) { nil }
161
+ let(:show_answers_at) { nil }
162
+ let(:hide_answers_at) { nil }
163
+ let(:rlb) { false }
164
+ let(:rlb_results) { false }
165
+ let(:rlb_monitor) { false }
166
+ let(:lb_monitor_data) { nil }
65
167
 
66
168
  include_examples('loads canvas meta data')
67
169
  end