qti 2.0.0 → 2.4.1

Sign up to get free protection for your applications and to get access to all the features.
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