canvas_cc 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (167) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +29 -0
  6. data/Rakefile +1 -0
  7. data/canvas_cc.gemspec +37 -0
  8. data/lib/canvas_cc/canvas/assessment.rb +124 -0
  9. data/lib/canvas_cc/canvas/assignment.rb +98 -0
  10. data/lib/canvas_cc/canvas/converter.rb +30 -0
  11. data/lib/canvas_cc/canvas/course.rb +143 -0
  12. data/lib/canvas_cc/canvas/discussion_topic.rb +64 -0
  13. data/lib/canvas_cc/canvas/label.rb +8 -0
  14. data/lib/canvas_cc/canvas/question.rb +492 -0
  15. data/lib/canvas_cc/canvas/question_bank.rb +57 -0
  16. data/lib/canvas_cc/canvas/question_group.rb +35 -0
  17. data/lib/canvas_cc/canvas/resource.rb +16 -0
  18. data/lib/canvas_cc/canvas/templates/assignment.html.erb +9 -0
  19. data/lib/canvas_cc/canvas/templates/syllabus.html.erb +9 -0
  20. data/lib/canvas_cc/canvas/templates/wiki_content.html.erb +10 -0
  21. data/lib/canvas_cc/canvas/web_content.rb +15 -0
  22. data/lib/canvas_cc/canvas/web_link.rb +16 -0
  23. data/lib/canvas_cc/canvas/wiki.rb +26 -0
  24. data/lib/canvas_cc/canvas_cc/assessment_writer.rb +82 -0
  25. data/lib/canvas_cc/canvas_cc/assignment_group_writer.rb +48 -0
  26. data/lib/canvas_cc/canvas_cc/assignment_writer.rb +68 -0
  27. data/lib/canvas_cc/canvas_cc/calculated_question_writer.rb +72 -0
  28. data/lib/canvas_cc/canvas_cc/canvas_export_writer.rb +18 -0
  29. data/lib/canvas_cc/canvas_cc/cartridge_creator.rb +60 -0
  30. data/lib/canvas_cc/canvas_cc/course_setting_writer.rb +35 -0
  31. data/lib/canvas_cc/canvas_cc/discussion_writer.rb +52 -0
  32. data/lib/canvas_cc/canvas_cc/essay_question_writer.rb +19 -0
  33. data/lib/canvas_cc/canvas_cc/file_meta_writer.rb +38 -0
  34. data/lib/canvas_cc/canvas_cc/ims_manifest_generator.rb +123 -0
  35. data/lib/canvas_cc/canvas_cc/matching_question_writer.rb +43 -0
  36. data/lib/canvas_cc/canvas_cc/models/answer.rb +12 -0
  37. data/lib/canvas_cc/canvas_cc/models/assessment.rb +102 -0
  38. data/lib/canvas_cc/canvas_cc/models/assignment.rb +30 -0
  39. data/lib/canvas_cc/canvas_cc/models/assignment_group.rb +9 -0
  40. data/lib/canvas_cc/canvas_cc/models/calculated_question.rb +19 -0
  41. data/lib/canvas_cc/canvas_cc/models/canvas_file.rb +22 -0
  42. data/lib/canvas_cc/canvas_cc/models/canvas_module.rb +10 -0
  43. data/lib/canvas_cc/canvas_cc/models/course.rb +53 -0
  44. data/lib/canvas_cc/canvas_cc/models/discussion.rb +36 -0
  45. data/lib/canvas_cc/canvas_cc/models/discussion_topic.rb +5 -0
  46. data/lib/canvas_cc/canvas_cc/models/matching_question.rb +7 -0
  47. data/lib/canvas_cc/canvas_cc/models/module_item.rb +16 -0
  48. data/lib/canvas_cc/canvas_cc/models/multiple_dropdowns_question.rb +7 -0
  49. data/lib/canvas_cc/canvas_cc/models/numerical_question.rb +7 -0
  50. data/lib/canvas_cc/canvas_cc/models/page.rb +41 -0
  51. data/lib/canvas_cc/canvas_cc/models/question.rb +37 -0
  52. data/lib/canvas_cc/canvas_cc/models/question_bank.rb +42 -0
  53. data/lib/canvas_cc/canvas_cc/models/question_group.rb +10 -0
  54. data/lib/canvas_cc/canvas_cc/models/resource.rb +23 -0
  55. data/lib/canvas_cc/canvas_cc/models/web_content.rb +7 -0
  56. data/lib/canvas_cc/canvas_cc/models/web_link.rb +7 -0
  57. data/lib/canvas_cc/canvas_cc/models/workflow_state.rb +6 -0
  58. data/lib/canvas_cc/canvas_cc/module_meta_writer.rb +52 -0
  59. data/lib/canvas_cc/canvas_cc/multiple_answers_question_writer.rb +41 -0
  60. data/lib/canvas_cc/canvas_cc/multiple_blanks_question_writer.rb +51 -0
  61. data/lib/canvas_cc/canvas_cc/multiple_choice_question_writer.rb +48 -0
  62. data/lib/canvas_cc/canvas_cc/multiple_dropdowns_question_writer.rb +30 -0
  63. data/lib/canvas_cc/canvas_cc/numerical_question_writer.rb +40 -0
  64. data/lib/canvas_cc/canvas_cc/page_writer.rb +38 -0
  65. data/lib/canvas_cc/canvas_cc/question_bank_writer.rb +44 -0
  66. data/lib/canvas_cc/canvas_cc/question_group_writer.rb +23 -0
  67. data/lib/canvas_cc/canvas_cc/question_writer.rb +129 -0
  68. data/lib/canvas_cc/canvas_cc/short_answer_question_writer.rb +42 -0
  69. data/lib/canvas_cc/canvas_cc/text_only_question_writer.rb +19 -0
  70. data/lib/canvas_cc/canvas_cc/true_false_question_writer.rb +38 -0
  71. data/lib/canvas_cc/cc/assessment.rb +25 -0
  72. data/lib/canvas_cc/cc/assignment.rb +61 -0
  73. data/lib/canvas_cc/cc/cc_helper.rb +285 -0
  74. data/lib/canvas_cc/cc/converter.rb +137 -0
  75. data/lib/canvas_cc/cc/course.rb +16 -0
  76. data/lib/canvas_cc/cc/discussion_topic.rb +53 -0
  77. data/lib/canvas_cc/cc/label.rb +6 -0
  78. data/lib/canvas_cc/cc/question.rb +23 -0
  79. data/lib/canvas_cc/cc/resource.rb +30 -0
  80. data/lib/canvas_cc/cc/templates/assignment.html.erb +13 -0
  81. data/lib/canvas_cc/cc/templates/syllabus.html.erb +9 -0
  82. data/lib/canvas_cc/cc/templates/wiki_content.html.erb +10 -0
  83. data/lib/canvas_cc/cc/web_content.rb +48 -0
  84. data/lib/canvas_cc/cc/web_link.rb +75 -0
  85. data/lib/canvas_cc/cc/wiki.rb +73 -0
  86. data/lib/canvas_cc/version.rb +3 -0
  87. data/lib/canvas_cc.rb +94 -0
  88. data/spec/moodle2cc/canvas_cc/assessment_writer_spec.rb +95 -0
  89. data/spec/moodle2cc/canvas_cc/assignment_group_writer_spec.rb +51 -0
  90. data/spec/moodle2cc/canvas_cc/assignment_writer_spec.rb +74 -0
  91. data/spec/moodle2cc/canvas_cc/calculated_question_writer_spec.rb +88 -0
  92. data/spec/moodle2cc/canvas_cc/canvas_export_writer_spec.rb +26 -0
  93. data/spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb +50 -0
  94. data/spec/moodle2cc/canvas_cc/course_setting_writer_spec.rb +47 -0
  95. data/spec/moodle2cc/canvas_cc/discussion_writer_spec.rb +38 -0
  96. data/spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb +31 -0
  97. data/spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb +57 -0
  98. data/spec/moodle2cc/canvas_cc/ims_manifest_generator_spec.rb +141 -0
  99. data/spec/moodle2cc/canvas_cc/matching_question_writer_spec.rb +51 -0
  100. data/spec/moodle2cc/canvas_cc/models/assessment_spec.rb +131 -0
  101. data/spec/moodle2cc/canvas_cc/models/assignment_group_spec.rb +9 -0
  102. data/spec/moodle2cc/canvas_cc/models/assignment_spec.rb +45 -0
  103. data/spec/moodle2cc/canvas_cc/models/calculated_question_spec.rb +25 -0
  104. data/spec/moodle2cc/canvas_cc/models/canvas_file_spec.rb +23 -0
  105. data/spec/moodle2cc/canvas_cc/models/canvas_module_spec.rb +16 -0
  106. data/spec/moodle2cc/canvas_cc/models/course_spec.rb +43 -0
  107. data/spec/moodle2cc/canvas_cc/models/discussion_spec.rb +47 -0
  108. data/spec/moodle2cc/canvas_cc/models/discussion_topic_spec.rb +7 -0
  109. data/spec/moodle2cc/canvas_cc/models/module_item_spec.rb +15 -0
  110. data/spec/moodle2cc/canvas_cc/models/page_spec.rb +34 -0
  111. data/spec/moodle2cc/canvas_cc/models/question_spec.rb +8 -0
  112. data/spec/moodle2cc/canvas_cc/models/resource_spec.rb +17 -0
  113. data/spec/moodle2cc/canvas_cc/models/web_content_spec.rb +7 -0
  114. data/spec/moodle2cc/canvas_cc/models/web_link_spec.rb +9 -0
  115. data/spec/moodle2cc/canvas_cc/module_meta_writer_spec.rb +118 -0
  116. data/spec/moodle2cc/canvas_cc/multiple_answers_question_writer_spec.rb +50 -0
  117. data/spec/moodle2cc/canvas_cc/multiple_blanks_question_writer_spec.rb +77 -0
  118. data/spec/moodle2cc/canvas_cc/multiple_choice_question_writer_spec.rb +69 -0
  119. data/spec/moodle2cc/canvas_cc/multiple_dropdowns_question_writer_spec.rb +46 -0
  120. data/spec/moodle2cc/canvas_cc/numerical_question_writer_spec.rb +69 -0
  121. data/spec/moodle2cc/canvas_cc/page_writer_spec.rb +29 -0
  122. data/spec/moodle2cc/canvas_cc/question_bank_writer_spec.rb +43 -0
  123. data/spec/moodle2cc/canvas_cc/question_writer_spec.rb +129 -0
  124. data/spec/moodle2cc/canvas_cc/short_answer_question_writer_spec.rb +50 -0
  125. data/spec/moodle2cc/canvas_cc/text_only_question_writer_spec.rb +23 -0
  126. data/spec/moodle2cc/canvas_cc/true_false_question_writer_spec.rb +62 -0
  127. data/spec/spec_helper.rb +12 -0
  128. data/spec/support/shared_examples_for_models.rb +26 -0
  129. data/test/acceptance/migrator_test.rb +24 -0
  130. data/test/fixtures/cc.imscc +0 -0
  131. data/test/fixtures/common_cartridge/ims_manifest_simple.xml +45 -0
  132. data/test/fixtures/common_cartridge/schema/cccv1p0.xsd +563 -0
  133. data/test/fixtures/common_cartridge/schema/ccv1p1_imsccauth_v1p1.xsd +203 -0
  134. data/test/fixtures/common_cartridge/schema/ccv1p1_imscp_v1p2_v1p0.xsd +827 -0
  135. data/test/fixtures/common_cartridge/schema/ccv1p1_lommanifest_v1p0.xsd +822 -0
  136. data/test/fixtures/common_cartridge/schema/ccv1p1_lomresource_v1p0.xsd +273 -0
  137. data/test/fixtures/common_cartridge/schema/xml.xsd +286 -0
  138. data/test/test_helper.rb +71 -0
  139. data/test/test_question_helper.rb +122 -0
  140. data/test/test_wiki_helper.rb +21 -0
  141. data/test/unit/canvas/assessment_test.rb +261 -0
  142. data/test/unit/canvas/assignment_test.rb +220 -0
  143. data/test/unit/canvas/converter_test.rb +171 -0
  144. data/test/unit/canvas/course_test.rb +176 -0
  145. data/test/unit/canvas/discussion_topic_test.rb +129 -0
  146. data/test/unit/canvas/label_test.rb +32 -0
  147. data/test/unit/canvas/question_bank_test.rb +92 -0
  148. data/test/unit/canvas/question_group_test.rb +90 -0
  149. data/test/unit/canvas/question_test.rb +876 -0
  150. data/test/unit/canvas/web_content_test.rb +46 -0
  151. data/test/unit/canvas/web_link_test.rb +48 -0
  152. data/test/unit/canvas/wiki_test.rb +74 -0
  153. data/test/unit/cc/assessment_test.rb +48 -0
  154. data/test/unit/cc/assignment_test.rb +72 -0
  155. data/test/unit/cc/cc_helper_test.rb +19 -0
  156. data/test/unit/cc/converter_test.rb +173 -0
  157. data/test/unit/cc/course_test.rb +36 -0
  158. data/test/unit/cc/discussion_topic_test.rb +83 -0
  159. data/test/unit/cc/label_test.rb +29 -0
  160. data/test/unit/cc/question_test.rb +54 -0
  161. data/test/unit/cc/web_content_test.rb +76 -0
  162. data/test/unit/cc/web_link_test.rb +159 -0
  163. data/test/unit/cc/wiki_test.rb +139 -0
  164. data/test/unit/logger_test.rb +33 -0
  165. data/test/unit/migrator_test.rb +67 -0
  166. data/test/unit/resource_factory_test.rb +216 -0
  167. metadata +499 -0
@@ -0,0 +1,216 @@
1
+ require 'minitest/autorun'
2
+ require 'test_helper'
3
+ require 'moodle2cc'
4
+
5
+ class TestUnitCCResource < MiniTest::Unit::TestCase
6
+ include TestHelper
7
+
8
+ def setup
9
+ @cc_factory = CanvasCc::ResourceFactory.new CanvasCc::CC
10
+ @canvas_factory = CanvasCc::ResourceFactory.new CanvasCc::Canvas
11
+ convert_moodle_backup
12
+ end
13
+
14
+ def teardown
15
+ clean_tmp_folder
16
+ end
17
+
18
+ def test_it_can_get_assessment_resource
19
+ mod = @backup.course.mods.find { |m| m.mod_type == "quiz" }
20
+ resource = @cc_factory.get_resource_from_mod(mod)
21
+ assert_kind_of CanvasCc::CC::Assessment, resource
22
+
23
+ resource = @canvas_factory.get_resource_from_mod(mod)
24
+ assert_kind_of CanvasCc::Canvas::Assessment, resource
25
+ end
26
+
27
+ def test_it_can_get_assignment_resource
28
+ mod = @backup.course.mods.find { |m| m.mod_type == "assignment" }
29
+ resource = @cc_factory.get_resource_from_mod(mod)
30
+ assert_kind_of CanvasCc::CC::Assignment, resource
31
+
32
+ resource = @canvas_factory.get_resource_from_mod(mod)
33
+ assert_kind_of CanvasCc::Canvas::Assignment, resource
34
+ end
35
+
36
+ def test_it_can_get_discussion_topic_resource
37
+ mod = @backup.course.mods.find { |m| m.mod_type == "forum" }
38
+ resource = @cc_factory.get_resource_from_mod(mod)
39
+ assert_kind_of CanvasCc::CC::DiscussionTopic, resource
40
+
41
+ resource = @canvas_factory.get_resource_from_mod(mod)
42
+ assert_kind_of CanvasCc::Canvas::DiscussionTopic, resource
43
+
44
+ mod = @backup.course.mods.find { |m| m.mod_type == "hsuforum" }
45
+ resource = @cc_factory.get_resource_from_mod(mod)
46
+ assert_kind_of CanvasCc::CC::DiscussionTopic, resource
47
+
48
+ resource = @canvas_factory.get_resource_from_mod(mod)
49
+ assert_kind_of CanvasCc::Canvas::DiscussionTopic, resource
50
+ end
51
+
52
+ def test_it_can_get_web_content_resource_from_text_resource
53
+ mod = @backup.course.mods.find { |m| m.mod_type == "resource" }
54
+ mod.type = 'text'
55
+ resource = @cc_factory.get_resource_from_mod(mod)
56
+ assert_kind_of CanvasCc::CC::WebContent, resource
57
+
58
+ resource = @canvas_factory.get_resource_from_mod(mod)
59
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
60
+ end
61
+
62
+ def test_it_can_get_web_content_resource_from_html_resource
63
+ mod = @backup.course.mods.find { |m| m.mod_type == "resource" }
64
+ mod.type = 'html'
65
+ resource = @cc_factory.get_resource_from_mod(mod)
66
+ assert_kind_of CanvasCc::CC::WebContent, resource
67
+
68
+ resource = @canvas_factory.get_resource_from_mod(mod)
69
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
70
+ end
71
+
72
+ def test_it_can_get_web_content_resource_from_file_resource_with_summary
73
+ mod = @backup.course.mods.find { |m| m.mod_type == "resource" && (!m.summary.nil? && m.summary.length != 0)}
74
+ mod.type = 'file'
75
+ resource = @cc_factory.get_resource_from_mod(mod)
76
+ assert_kind_of CanvasCc::CC::WebContent, resource
77
+
78
+ resource = @canvas_factory.get_resource_from_mod(mod)
79
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
80
+ end
81
+
82
+ def test_it_can_get_web_link_resource
83
+ mod = @backup.course.mods.find { |m| m.mod_type == "resource" && (m.summary.nil? || m.summary.length == 0) }
84
+ mod.type = 'file'
85
+ resource = @cc_factory.get_resource_from_mod(mod)
86
+ assert_kind_of CanvasCc::CC::WebLink, resource
87
+
88
+ resource = @canvas_factory.get_resource_from_mod(mod)
89
+ assert_kind_of CanvasCc::Canvas::WebLink, resource
90
+ end
91
+
92
+ def test_it_can_get_wiki_resource
93
+ mod = @backup.course.mods.find { |m| m.mod_type == "wiki" }
94
+ resource = @cc_factory.get_resource_from_mod(mod)
95
+ assert_kind_of CanvasCc::CC::Wiki, resource
96
+
97
+ resource = @canvas_factory.get_resource_from_mod(mod)
98
+ assert_kind_of CanvasCc::Canvas::Wiki, resource
99
+ end
100
+
101
+ def test_it_can_get_label_resource
102
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
103
+ resource = @cc_factory.get_resource_from_mod(mod)
104
+ assert_kind_of CanvasCc::CC::Label, resource
105
+
106
+ resource = @canvas_factory.get_resource_from_mod(mod)
107
+ assert_kind_of CanvasCc::Canvas::Label, resource
108
+ end
109
+
110
+ def test_it_can_get_label_resource_from_summary_mod
111
+ mod = @backup.course.mods.find { |m| m.mod_type == "summary" }
112
+ resource = @cc_factory.get_resource_from_mod(mod)
113
+ assert_kind_of CanvasCc::CC::Label, resource
114
+
115
+ resource = @canvas_factory.get_resource_from_mod(mod)
116
+ assert_kind_of CanvasCc::Canvas::Label, resource
117
+ end
118
+
119
+ def test_it_can_get_web_content_resource_from_label_mod_with_img_tag
120
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
121
+ mod.content = %(<img src="http://image.com/image.jpg" />")
122
+ resource = @cc_factory.get_resource_from_mod(mod)
123
+ assert_kind_of CanvasCc::CC::WebContent, resource
124
+
125
+ resource = @canvas_factory.get_resource_from_mod(mod)
126
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
127
+ end
128
+
129
+ def test_it_can_get_web_content_resource_from_label_mod_with_an_a_tag
130
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
131
+ mod.content = %(<a href="http://www.google.com">Google</a>")
132
+ resource = @cc_factory.get_resource_from_mod(mod)
133
+ assert_kind_of CanvasCc::CC::WebContent, resource
134
+
135
+ resource = @canvas_factory.get_resource_from_mod(mod)
136
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
137
+ end
138
+
139
+ def test_it_can_get_label_resource_from_label_mod_with_an_a_tag_with_no_href
140
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
141
+ mod.content = %(<a name="Google">Google</a>")
142
+ resource = @cc_factory.get_resource_from_mod(mod)
143
+ assert_kind_of CanvasCc::CC::Label, resource
144
+
145
+ resource = @canvas_factory.get_resource_from_mod(mod)
146
+ assert_kind_of CanvasCc::Canvas::Label, resource
147
+ end
148
+
149
+ def test_it_can_get_web_content_resource_from_label_mod_with_an_iframe
150
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
151
+ mod.content = %(<iframe src="http://www.google.com"></iframe>)
152
+ resource = @cc_factory.get_resource_from_mod(mod)
153
+ assert_kind_of CanvasCc::CC::WebContent, resource
154
+
155
+ resource = @canvas_factory.get_resource_from_mod(mod)
156
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
157
+ end
158
+
159
+ def test_it_can_get_web_content_resource_from_label_mod_with_a_lot_of_text
160
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
161
+ mod.content = %(
162
+ <p>
163
+ I will always test my code,
164
+ I will always test my code,
165
+ I will always test my code
166
+ </p>)
167
+ resource = @cc_factory.get_resource_from_mod(mod)
168
+ assert_kind_of CanvasCc::CC::WebContent, resource
169
+
170
+ resource = @canvas_factory.get_resource_from_mod(mod)
171
+ assert_kind_of CanvasCc::Canvas::WebContent, resource
172
+ end
173
+
174
+ def test_it_can_get_label_resource_from_label_mod_with_minimal_html
175
+ mod = @backup.course.mods.find { |m| m.mod_type == "label" }
176
+ mod.name = "Forum"
177
+ mod.content = %(
178
+ <h4 style="color: rgb(0, 0, 153); margin-left: 40px; font-weight: normal; ">
179
+ <font size="3">
180
+ <a name="Anker1"> Forum</a>
181
+ </font>
182
+ </h4>)
183
+ resource = @cc_factory.get_resource_from_mod(mod)
184
+ assert_kind_of CanvasCc::CC::Label, resource
185
+
186
+ resource = @canvas_factory.get_resource_from_mod(mod)
187
+ assert_kind_of CanvasCc::Canvas::Label, resource
188
+ end
189
+
190
+ def test_it_can_get_assessment_resource_from_questionnaire_mod
191
+ mod = @backup.course.mods.find { |m| m.mod_type == "questionnaire" }
192
+ resource = @cc_factory.get_resource_from_mod(mod)
193
+ assert_kind_of CanvasCc::CC::Assessment, resource
194
+
195
+ resource = @canvas_factory.get_resource_from_mod(mod)
196
+ assert_kind_of CanvasCc::Canvas::Assessment, resource
197
+ end
198
+
199
+ def test_it_can_get_assessment_resource_from_choice_mod
200
+ mod = @backup.course.mods.find { |m| m.mod_type == "choice" }
201
+ resource = @cc_factory.get_resource_from_mod(mod)
202
+ assert_kind_of CanvasCc::CC::Assessment, resource
203
+
204
+ resource = @canvas_factory.get_resource_from_mod(mod)
205
+ assert_kind_of CanvasCc::Canvas::Assessment, resource
206
+ end
207
+
208
+ def test_it_can_get_assignment_resource_from_workshop_mod
209
+ mod = @backup.course.mods.find { |m| m.mod_type == "workshop" }
210
+ resource = @cc_factory.get_resource_from_mod(mod)
211
+ assert_kind_of CanvasCc::CC::Assignment, resource
212
+
213
+ resource = @canvas_factory.get_resource_from_mod(mod)
214
+ assert_kind_of CanvasCc::Canvas::Assignment, resource
215
+ end
216
+ end