qti 0.9.2 → 0.9.3

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.
@@ -0,0 +1,127 @@
1
+ PATH
2
+ remote: ../..
3
+ specs:
4
+ qti (0.9.3)
5
+ activesupport (>= 4.2.9, < 5.2)
6
+ dry-struct (~> 0.2.1)
7
+ dry-types (~> 0.12.0)
8
+ nokogiri (>= 1.6.8, < 1.9)
9
+ rubyzip (~> 1.2)
10
+ sanitize (>= 4.2.0, < 5.0)
11
+
12
+ GEM
13
+ remote: https://rubygems.org/
14
+ specs:
15
+ activesupport (5.1.4)
16
+ concurrent-ruby (~> 1.0, >= 1.0.2)
17
+ i18n (~> 0.7)
18
+ minitest (~> 5.1)
19
+ tzinfo (~> 1.1)
20
+ ast (2.3.0)
21
+ byebug (9.1.0)
22
+ coderay (1.1.2)
23
+ concurrent-ruby (1.0.5)
24
+ crass (1.0.2)
25
+ diff-lcs (1.3)
26
+ docile (1.1.5)
27
+ dry-configurable (0.7.0)
28
+ concurrent-ruby (~> 1.0)
29
+ dry-container (0.6.0)
30
+ concurrent-ruby (~> 1.0)
31
+ dry-configurable (~> 0.1, >= 0.1.3)
32
+ dry-core (0.3.4)
33
+ concurrent-ruby (~> 1.0)
34
+ dry-equalizer (0.2.0)
35
+ dry-logic (0.4.2)
36
+ dry-container (~> 0.2, >= 0.2.6)
37
+ dry-core (~> 0.2)
38
+ dry-equalizer (~> 0.2)
39
+ dry-struct (0.2.1)
40
+ dry-configurable (~> 0.1)
41
+ dry-equalizer (~> 0.2)
42
+ dry-types (~> 0.9, >= 0.9.0)
43
+ ice_nine (~> 0.11)
44
+ dry-types (0.12.0)
45
+ concurrent-ruby (~> 1.0)
46
+ dry-configurable (~> 0.1)
47
+ dry-container (~> 0.3)
48
+ dry-core (~> 0.2, >= 0.2.1)
49
+ dry-equalizer (~> 0.2)
50
+ dry-logic (~> 0.4, >= 0.4.2)
51
+ inflecto (~> 0.0.0, >= 0.0.2)
52
+ i18n (0.8.6)
53
+ ice_nine (0.11.2)
54
+ inflecto (0.0.2)
55
+ json (2.1.0)
56
+ method_source (0.9.0)
57
+ mini_portile2 (2.3.0)
58
+ minitest (5.10.3)
59
+ nokogiri (1.8.1)
60
+ mini_portile2 (~> 2.3.0)
61
+ nokogumbo (1.4.13)
62
+ nokogiri
63
+ parallel (1.12.0)
64
+ parser (2.4.0.0)
65
+ ast (~> 2.2)
66
+ powerpack (0.1.1)
67
+ pry (0.11.1)
68
+ coderay (~> 1.1.0)
69
+ method_source (~> 0.9.0)
70
+ rainbow (2.2.2)
71
+ rake
72
+ rake (0.9.6)
73
+ rspec (3.6.0)
74
+ rspec-core (~> 3.6.0)
75
+ rspec-expectations (~> 3.6.0)
76
+ rspec-mocks (~> 3.6.0)
77
+ rspec-core (3.6.0)
78
+ rspec-support (~> 3.6.0)
79
+ rspec-expectations (3.6.0)
80
+ diff-lcs (>= 1.2.0, < 2.0)
81
+ rspec-support (~> 3.6.0)
82
+ rspec-mocks (3.6.0)
83
+ diff-lcs (>= 1.2.0, < 2.0)
84
+ rspec-support (~> 3.6.0)
85
+ rspec-support (3.6.0)
86
+ rubocop (0.50.0)
87
+ parallel (~> 1.10)
88
+ parser (>= 2.3.3.1, < 3.0)
89
+ powerpack (~> 0.1)
90
+ rainbow (>= 2.2.2, < 3.0)
91
+ ruby-progressbar (~> 1.7)
92
+ unicode-display_width (~> 1.0, >= 1.0.1)
93
+ ruby-progressbar (1.8.3)
94
+ rubyzip (1.2.1)
95
+ sanitize (4.5.0)
96
+ crass (~> 1.0.2)
97
+ nokogiri (>= 1.4.4)
98
+ nokogumbo (~> 1.4.1)
99
+ simplecov (0.15.1)
100
+ docile (~> 1.1.0)
101
+ json (>= 1.8, < 3)
102
+ simplecov-html (~> 0.10.0)
103
+ simplecov-html (0.10.2)
104
+ thread_safe (0.3.6)
105
+ tzinfo (1.2.3)
106
+ thread_safe (~> 0.1)
107
+ unicode-display_width (1.3.0)
108
+ wwtd (1.3.0)
109
+
110
+ PLATFORMS
111
+ ruby
112
+
113
+ DEPENDENCIES
114
+ bundler (~> 1.15)
115
+ byebug (~> 9.0)
116
+ pry (~> 0)
117
+ qti!
118
+ rake (~> 0)
119
+ rspec (~> 3.6)
120
+ rspec-mocks (~> 3.6)
121
+ rubocop (~> 0.50.0)
122
+ sanitize (~> 4.5.0)
123
+ simplecov (~> 0)
124
+ wwtd (~> 1.3)
125
+
126
+ BUNDLED WITH
127
+ 1.15.4
@@ -83,5 +83,48 @@ describe Qti::V1::Models::AssessmentItem do
83
83
  it 'sets the points possible from qtimetadata' do
84
84
  expect(loaded_class.points_possible).to eq '1.0'
85
85
  end
86
+
87
+ it 'returns the prompt inner content without &lt or &gt' do
88
+ expect(loaded_class.item_body).not_to include('&lt;', '&gt;')
89
+ expect(loaded_class.item_body).to include '<div><p>Multiple Answer pick A C and D</p></div>'
90
+ end
91
+ end
92
+
93
+ context 'inner_content' do
94
+ describe 'unescaped html' do
95
+ let(:file_path) { File.join('spec', 'fixtures', 'items_1.2', 'matching.xml') }
96
+ let(:test_object) { Qti::V1::Models::Assessment.from_path!(file_path) }
97
+ let(:assessment_item_refs) { test_object.assessment_items }
98
+ let(:loaded_class) { described_class.new(assessment_item_refs) }
99
+
100
+ it 'returns the prompt inner content without &lt or &gt' do
101
+ expect(loaded_class.item_body).not_to include('&lt;', '&gt;')
102
+ expect(loaded_class.item_body).to include '<div><strong>'
103
+ end
104
+ end
105
+
106
+ describe 'escaped html' do
107
+ let(:file_path) { File.join('spec', 'fixtures', 'items_1.2', 'essay.xml') }
108
+ let(:test_object) { Qti::V1::Models::Assessment.from_path!(file_path) }
109
+ let(:assessment_item_refs) { test_object.assessment_items }
110
+ let(:loaded_class) { described_class.new(assessment_item_refs) }
111
+
112
+ it 'returns the prompt inner content without &lt or &gt' do
113
+ expect(loaded_class.item_body).not_to include('&lt;', '&gt;')
114
+ expect(loaded_class.item_body).to include '<div><p>'
115
+ end
116
+ end
117
+
118
+ describe 'CDATA html' do
119
+ let(:file_path) { File.join('spec', 'fixtures', 'items_1.2', 'choice.xml') }
120
+ let(:test_object) { Qti::V1::Models::Assessment.from_path!(file_path) }
121
+ let(:assessment_item_refs) { test_object.assessment_items }
122
+ let(:loaded_class) { described_class.new(assessment_item_refs) }
123
+
124
+ it 'returns the prompt inner content without &lt or &gt' do
125
+ expect(loaded_class.item_body).not_to include('&lt;', '&gt;')
126
+ expect(loaded_class.item_body).to include '<img'
127
+ end
128
+ end
86
129
  end
87
130
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: qti
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.2
4
+ version: 0.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hannah Bottalla
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-10-02 00:00:00.000000000 Z
12
+ date: 2017-10-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -508,12 +508,19 @@ files:
508
508
  - spec/fixtures/tests/tests/rtest26.xml
509
509
  - spec/fixtures/tests/tests/rtest27.xml
510
510
  - spec/gemfiles/nokogiri-1.6.gemfile
511
+ - spec/gemfiles/nokogiri-1.6.gemfile.lock
511
512
  - spec/gemfiles/nokogiri-1.8.gemfile
513
+ - spec/gemfiles/nokogiri-1.8.gemfile.lock
512
514
  - spec/gemfiles/rails-4.2.gemfile
515
+ - spec/gemfiles/rails-4.2.gemfile.lock
513
516
  - spec/gemfiles/rails-5.0.gemfile
517
+ - spec/gemfiles/rails-5.0.gemfile.lock
514
518
  - spec/gemfiles/rails-5.1.gemfile
519
+ - spec/gemfiles/rails-5.1.gemfile.lock
515
520
  - spec/gemfiles/sanitize-4.2.gemfile
521
+ - spec/gemfiles/sanitize-4.2.gemfile.lock
516
522
  - spec/gemfiles/sanitize-4.5.gemfile
523
+ - spec/gemfiles/sanitize-4.5.gemfile.lock
517
524
  - spec/lib/qti/assessment_item_exporter_spec.rb
518
525
  - spec/lib/qti/exporter_spec.rb
519
526
  - spec/lib/qti/models/base_spec.rb
@@ -544,7 +551,6 @@ files:
544
551
  - spec/lib/qti/v2/models/object_element_spec.rb
545
552
  - spec/lib/qti/v2/models/stimulus_item_spec.rb
546
553
  - spec/lib/qti_spec.rb
547
- - spec/lib/stupid.xml
548
554
  - spec/spec_helper.rb
549
555
  - spec/support/custom_matchers.rb
550
556
  homepage: https://github.com/instructure/qti
@@ -567,7 +573,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
567
573
  version: '0'
568
574
  requirements: []
569
575
  rubyforge_project:
570
- rubygems_version: 2.5.2
576
+ rubygems_version: 2.6.8
571
577
  signing_key:
572
578
  specification_version: 4
573
579
  summary: QTI 1.2 and 2.1 import and export models
@@ -784,12 +790,19 @@ test_files:
784
790
  - spec/fixtures/tests/tests/rtest26.xml
785
791
  - spec/fixtures/tests/tests/rtest27.xml
786
792
  - spec/gemfiles/nokogiri-1.6.gemfile
793
+ - spec/gemfiles/nokogiri-1.6.gemfile.lock
787
794
  - spec/gemfiles/nokogiri-1.8.gemfile
795
+ - spec/gemfiles/nokogiri-1.8.gemfile.lock
788
796
  - spec/gemfiles/rails-4.2.gemfile
797
+ - spec/gemfiles/rails-4.2.gemfile.lock
789
798
  - spec/gemfiles/rails-5.0.gemfile
799
+ - spec/gemfiles/rails-5.0.gemfile.lock
790
800
  - spec/gemfiles/rails-5.1.gemfile
801
+ - spec/gemfiles/rails-5.1.gemfile.lock
791
802
  - spec/gemfiles/sanitize-4.2.gemfile
803
+ - spec/gemfiles/sanitize-4.2.gemfile.lock
792
804
  - spec/gemfiles/sanitize-4.5.gemfile
805
+ - spec/gemfiles/sanitize-4.5.gemfile.lock
793
806
  - spec/lib/qti/assessment_item_exporter_spec.rb
794
807
  - spec/lib/qti/exporter_spec.rb
795
808
  - spec/lib/qti/models/base_spec.rb
@@ -820,6 +833,5 @@ test_files:
820
833
  - spec/lib/qti/v2/models/object_element_spec.rb
821
834
  - spec/lib/qti/v2/models/stimulus_item_spec.rb
822
835
  - spec/lib/qti_spec.rb
823
- - spec/lib/stupid.xml
824
836
  - spec/spec_helper.rb
825
837
  - spec/support/custom_matchers.rb
@@ -1,128 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <manifest xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" identifier="Manifest-d1042982-b88a-4c04-a6e0-9bb718b41178"
3
- xmlns="http://www.imsglobal.org/xsd/imscp_v1p1" xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2"
4
- xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
5
- <organizations/>
6
- <metadata>
7
- <schema>IMS Content</schema>
8
- <schemaversion>2.1</schemaversion>
9
- <imsmd:lom xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2">
10
- <imsmd:general>
11
- <imsmd:title>
12
- <imsmd:langstring>Assignment test? Worth Points Question Pool 1</imsmd:langstring>
13
- </imsmd:title>
14
- </imsmd:general>
15
- </imsmd:lom>
16
- </metadata>
17
- <resources>
18
- <resource href="1009/question4928.xml" identifier="1788:4928" type="imsqti_item_xmlv2p1">
19
- <metadata>
20
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
21
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
22
- <imsqti:composite>false</imsqti:composite>
23
- <imsqti:interactionType>extendedTextInteraction</imsqti:interactionType>
24
- <imsqti:feedbackType>none</imsqti:feedbackType>
25
- </imsqti:qtiMetadata>
26
- </metadata>
27
- <file href="1009/question4928.xml"/>
28
- <file href="1009/Resources/Ixia.gif"/>
29
- <file href="1009/Resources/aperture.png"/>
30
- </resource>
31
- <resource href="1009/question4900.xml" identifier="1785:4900" type="imsqti_item_xmlv2p1">
32
- <metadata>
33
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
34
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
35
- <imsqti:composite>false</imsqti:composite>
36
- <imsqti:interactionType>choiceInteraction</imsqti:interactionType>
37
- <imsqti:feedbackType>none</imsqti:feedbackType>
38
- </imsqti:qtiMetadata>
39
- </metadata>
40
- <file href="1009/question4900.xml"/>
41
- <file href="1009/Resources/512634641600_00_93874928374.jpg"/>
42
- <file href="1009/Resources/fmath-equation-9666DCA9-6656-C4BA-4E2D-63AA5B5954C1.png"/>
43
- </resource>
44
- <resource href="1009/question4961.xml" identifier="1785:4961" type="imsqti_item_xmlv2p1">
45
- <metadata>
46
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
47
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
48
- <imsqti:composite>false</imsqti:composite>
49
- <imsqti:interactionType>choiceInteraction</imsqti:interactionType>
50
- <imsqti:feedbackType>none</imsqti:feedbackType>
51
- </imsqti:qtiMetadata>
52
- </metadata>
53
- <file href="1009/question4961.xml"/>
54
- </resource>
55
- <resource href="1009/question4962.xml" identifier="1785:4962" type="imsqti_item_xmlv2p1">
56
- <metadata>
57
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
58
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
59
- <imsqti:composite>false</imsqti:composite>
60
- <imsqti:interactionType>choiceInteraction</imsqti:interactionType>
61
- <imsqti:feedbackType>none</imsqti:feedbackType>
62
- </imsqti:qtiMetadata>
63
- </metadata>
64
- <file href="1009/question4962.xml"/>
65
- <file href="1009/Resources/waterfall_desktop_background-1440x900.jpg"/>
66
- </resource>
67
- <resource href="1009/question4967.xml" identifier="1788:4967" type="imsqti_item_xmlv2p1">
68
- <metadata>
69
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
70
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
71
- <imsqti:composite>false</imsqti:composite>
72
- <imsqti:interactionType>matchInteraction</imsqti:interactionType>
73
- <imsqti:feedbackType>none</imsqti:feedbackType>
74
- </imsqti:qtiMetadata>
75
- </metadata>
76
- <file href="1009/question4967.xml"/>
77
- </resource>
78
- <resource href="1009/question4965.xml" identifier="1788:4965" type="imsqti_item_xmlv2p1">
79
- <metadata>
80
- <imsmd:lom xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2">
81
- <imsmd:general>
82
- <imsmd:identifier>survey</imsmd:identifier>
83
- </imsmd:general>
84
- </imsmd:lom>
85
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
86
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
87
- <imsqti:composite>false</imsqti:composite>
88
- <imsqti:interactionType>choiceInteraction</imsqti:interactionType>
89
- <imsqti:feedbackType>none</imsqti:feedbackType>
90
- </imsqti:qtiMetadata>
91
- </metadata>
92
- <file href="1009/question4965.xml"/>
93
- </resource>
94
- <resource href="1009/question4966.xml" identifier="1788:4966" type="imsqti_item_xmlv2p1">
95
- <metadata>
96
- <imsqti:qtiMetadata xmlns:imsqti="http://www.imsglobal.org/xsd/imsqti_v2p1">
97
- <imsqti:itemTemplate>false</imsqti:itemTemplate>
98
- <imsqti:composite>false</imsqti:composite>
99
- <imsqti:interactionType>textEntryInteraction</imsqti:interactionType>
100
- <imsqti:feedbackType>none</imsqti:feedbackType>
101
- </imsqti:qtiMetadata>
102
- </metadata>
103
- <file href="1009/question4966.xml"/>
104
- </resource>
105
- <resource href="1009/assessment1.xml" identifier="Resource1" type="imsqti_test_xmlv2p1">
106
- <metadata>
107
- <imsmd:lom xmlns:imsmd="http://www.imsglobal.org/xsd/imsmd_v1p2">
108
- <imsmd:general>
109
- <imsmd:identifier>assignment</imsmd:identifier>
110
- <imsmd:title>
111
- <imsmd:langstring>Assignment test? Worth Points</imsmd:langstring>
112
- </imsmd:title>
113
- </imsmd:general>
114
- </imsmd:lom>
115
- </metadata>
116
- <file href="1009/assessment1.xml"/>
117
- <dependency identifierref="1788:4928"/>
118
- <dependency identifierref="1785:4900"/>
119
- <dependency identifierref="1785:4961"/>
120
- <dependency identifierref="1785:4962"/>
121
- <dependency identifierref="1788:4967"/>
122
- <dependency identifierref="1788:4965"/>
123
- <dependency identifierref="1788:4966"/>
124
- </resource>
125
- <resource identifier="POOL1788" title="Assignment test? Worth Points"/>
126
- <resource identifier="POOL1785" title="Question Pool 1"/>
127
- </resources>
128
- </manifest>