qti 0.9.2 → 0.9.3

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