moodle2cc 0.1.12 → 0.2.0

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 (479) hide show
  1. checksums.yaml +7 -0
  2. data/.travis.yml +4 -1
  3. data/Changelog +5 -0
  4. data/Gemfile +2 -0
  5. data/Guardfile +6 -0
  6. data/README.md +1 -1
  7. data/Rakefile +14 -1
  8. data/lib/moodle2cc.rb +66 -0
  9. data/lib/moodle2cc/canvas/question.rb +1 -1
  10. data/lib/moodle2cc/canvas_cc/assessment_writer.rb +82 -0
  11. data/lib/moodle2cc/canvas_cc/assignment_writer.rb +67 -0
  12. data/lib/moodle2cc/canvas_cc/calculated_question_writer.rb +61 -0
  13. data/lib/moodle2cc/canvas_cc/canvas_export_writer.rb +18 -0
  14. data/lib/moodle2cc/canvas_cc/cartridge_creator.rb +57 -0
  15. data/lib/moodle2cc/canvas_cc/course_setting_writer.rb +35 -0
  16. data/lib/moodle2cc/canvas_cc/discussion_writer.rb +51 -0
  17. data/lib/moodle2cc/canvas_cc/essay_question_writer.rb +19 -0
  18. data/lib/moodle2cc/canvas_cc/file_meta_writer.rb +38 -0
  19. data/lib/moodle2cc/canvas_cc/ims_manifest_generator.rb +123 -0
  20. data/lib/moodle2cc/canvas_cc/matching_question_writer.rb +41 -0
  21. data/lib/moodle2cc/canvas_cc/models/answer.rb +12 -0
  22. data/lib/moodle2cc/canvas_cc/models/assessment.rb +68 -0
  23. data/lib/moodle2cc/canvas_cc/models/assignment.rb +30 -0
  24. data/lib/moodle2cc/canvas_cc/models/calculated_question.rb +7 -0
  25. data/lib/moodle2cc/canvas_cc/models/canvas_file.rb +22 -0
  26. data/lib/moodle2cc/canvas_cc/models/canvas_module.rb +10 -0
  27. data/lib/moodle2cc/canvas_cc/models/course.rb +46 -0
  28. data/lib/moodle2cc/canvas_cc/models/discussion.rb +36 -0
  29. data/lib/moodle2cc/canvas_cc/models/discussion_topic.rb +5 -0
  30. data/lib/moodle2cc/canvas_cc/models/matching_question.rb +7 -0
  31. data/lib/moodle2cc/canvas_cc/models/module_item.rb +16 -0
  32. data/lib/moodle2cc/canvas_cc/models/numerical_question.rb +7 -0
  33. data/lib/moodle2cc/canvas_cc/models/page.rb +31 -0
  34. data/lib/moodle2cc/canvas_cc/models/question.rb +36 -0
  35. data/lib/moodle2cc/canvas_cc/models/question_bank.rb +27 -0
  36. data/lib/moodle2cc/canvas_cc/models/question_group.rb +10 -0
  37. data/lib/moodle2cc/canvas_cc/models/resource.rb +23 -0
  38. data/lib/moodle2cc/canvas_cc/models/web_content.rb +7 -0
  39. data/lib/moodle2cc/canvas_cc/models/web_link.rb +7 -0
  40. data/lib/moodle2cc/canvas_cc/models/workflow_state.rb +6 -0
  41. data/lib/moodle2cc/canvas_cc/module_meta_writer.rb +52 -0
  42. data/lib/moodle2cc/canvas_cc/multiple_blanks_question_writer.rb +51 -0
  43. data/lib/moodle2cc/canvas_cc/multiple_choice_question_writer.rb +48 -0
  44. data/lib/moodle2cc/canvas_cc/numerical_question_writer.rb +40 -0
  45. data/lib/moodle2cc/canvas_cc/page_writer.rb +38 -0
  46. data/lib/moodle2cc/canvas_cc/question_bank_writer.rb +44 -0
  47. data/lib/moodle2cc/canvas_cc/question_group_writer.rb +23 -0
  48. data/lib/moodle2cc/canvas_cc/question_writer.rb +127 -0
  49. data/lib/moodle2cc/canvas_cc/short_answer_question_writer.rb +42 -0
  50. data/lib/moodle2cc/canvas_cc/text_only_question_writer.rb +19 -0
  51. data/lib/moodle2cc/canvas_cc/true_false_question_writer.rb +38 -0
  52. data/lib/moodle2cc/cli.rb +1 -1
  53. data/lib/moodle2cc/migrator.rb +37 -4
  54. data/lib/moodle2cc/moodle2.rb +9 -0
  55. data/lib/moodle2cc/moodle2/extractor.rb +144 -0
  56. data/lib/moodle2cc/moodle2/models.rb +17 -0
  57. data/lib/moodle2cc/moodle2/models/assignment.rb +10 -0
  58. data/lib/moodle2cc/moodle2/models/book.rb +9 -0
  59. data/lib/moodle2cc/moodle2/models/book_chapter.rb +5 -0
  60. data/lib/moodle2cc/moodle2/models/course.rb +29 -0
  61. data/lib/moodle2cc/moodle2/models/external_url.rb +7 -0
  62. data/lib/moodle2cc/moodle2/models/folder.rb +9 -0
  63. data/lib/moodle2cc/moodle2/models/forum.rb +10 -0
  64. data/lib/moodle2cc/moodle2/models/glossary.rb +13 -0
  65. data/lib/moodle2cc/moodle2/models/glossary_entry.rb +13 -0
  66. data/lib/moodle2cc/moodle2/models/label.rb +6 -0
  67. data/lib/moodle2cc/moodle2/models/moodle2_file.rb +13 -0
  68. data/lib/moodle2cc/moodle2/models/page.rb +9 -0
  69. data/lib/moodle2cc/moodle2/models/quizzes.rb +13 -0
  70. data/lib/moodle2cc/moodle2/models/quizzes/answer.rb +5 -0
  71. data/lib/moodle2cc/moodle2/models/quizzes/calculated_question.rb +11 -0
  72. data/lib/moodle2cc/moodle2/models/quizzes/match_question.rb +11 -0
  73. data/lib/moodle2cc/moodle2/models/quizzes/multianswer_question.rb +23 -0
  74. data/lib/moodle2cc/moodle2/models/quizzes/numerical_question.rb +11 -0
  75. data/lib/moodle2cc/moodle2/models/quizzes/question.rb +33 -0
  76. data/lib/moodle2cc/moodle2/models/quizzes/question_category.rb +18 -0
  77. data/lib/moodle2cc/moodle2/models/quizzes/quiz.rb +20 -0
  78. data/lib/moodle2cc/moodle2/models/quizzes/random_sa_question.rb +6 -0
  79. data/lib/moodle2cc/moodle2/models/quizzes/true_false_question.rb +6 -0
  80. data/lib/moodle2cc/moodle2/models/resource.rb +11 -0
  81. data/lib/moodle2cc/moodle2/models/section.rb +19 -0
  82. data/lib/moodle2cc/moodle2/parsers.rb +19 -0
  83. data/lib/moodle2cc/moodle2/parsers/answer_parser.rb +17 -0
  84. data/lib/moodle2cc/moodle2/parsers/assignment_parser.rb +61 -0
  85. data/lib/moodle2cc/moodle2/parsers/book_parser.rb +52 -0
  86. data/lib/moodle2cc/moodle2/parsers/course_parser.rb +28 -0
  87. data/lib/moodle2cc/moodle2/parsers/external_url_parser.rb +40 -0
  88. data/lib/moodle2cc/moodle2/parsers/file_parser.rb +47 -0
  89. data/lib/moodle2cc/moodle2/parsers/folder_parser.rb +54 -0
  90. data/lib/moodle2cc/moodle2/parsers/forum_parser.rb +53 -0
  91. data/lib/moodle2cc/moodle2/parsers/glossary_parser.rb +78 -0
  92. data/lib/moodle2cc/moodle2/parsers/label_parser.rb +36 -0
  93. data/lib/moodle2cc/moodle2/parsers/page_parser.rb +45 -0
  94. data/lib/moodle2cc/moodle2/parsers/parser_helper.rb +37 -0
  95. data/lib/moodle2cc/moodle2/parsers/question_category_parser.rb +47 -0
  96. data/lib/moodle2cc/moodle2/parsers/question_parsers.rb +13 -0
  97. data/lib/moodle2cc/moodle2/parsers/question_parsers/calculated_parser.rb +43 -0
  98. data/lib/moodle2cc/moodle2/parsers/question_parsers/match_parser.rb +24 -0
  99. data/lib/moodle2cc/moodle2/parsers/question_parsers/multianswer_parser.rb +21 -0
  100. data/lib/moodle2cc/moodle2/parsers/question_parsers/multichoice_parser.rb +16 -0
  101. data/lib/moodle2cc/moodle2/parsers/question_parsers/numerical_parser.rb +24 -0
  102. data/lib/moodle2cc/moodle2/parsers/question_parsers/question_parser.rb +51 -0
  103. data/lib/moodle2cc/moodle2/parsers/question_parsers/random_sa_parser.rb +17 -0
  104. data/lib/moodle2cc/moodle2/parsers/question_parsers/short_answer_parser.rb +16 -0
  105. data/lib/moodle2cc/moodle2/parsers/question_parsers/true_false_parser.rb +20 -0
  106. data/lib/moodle2cc/moodle2/parsers/quiz_parser.rb +87 -0
  107. data/lib/moodle2cc/moodle2/parsers/resource_parser.rb +54 -0
  108. data/lib/moodle2cc/moodle2/parsers/section_parser.rb +48 -0
  109. data/lib/moodle2cc/moodle2converter/assessment_converter.rb +31 -0
  110. data/lib/moodle2cc/moodle2converter/assignment_converter.rb +23 -0
  111. data/lib/moodle2cc/moodle2converter/book_converter.rb +97 -0
  112. data/lib/moodle2cc/moodle2converter/converter_helper.rb +68 -0
  113. data/lib/moodle2cc/moodle2converter/course_converter.rb +18 -0
  114. data/lib/moodle2cc/moodle2converter/discussion_converter.rb +18 -0
  115. data/lib/moodle2cc/moodle2converter/file_converter.rb +14 -0
  116. data/lib/moodle2cc/moodle2converter/folder_converter.rb +50 -0
  117. data/lib/moodle2cc/moodle2converter/glossary_converter.rb +36 -0
  118. data/lib/moodle2cc/moodle2converter/html_converter.rb +96 -0
  119. data/lib/moodle2cc/moodle2converter/migrator.rb +111 -0
  120. data/lib/moodle2cc/moodle2converter/page_converter.rb +16 -0
  121. data/lib/moodle2cc/moodle2converter/question_bank_converter.rb +31 -0
  122. data/lib/moodle2cc/moodle2converter/question_converters.rb +11 -0
  123. data/lib/moodle2cc/moodle2converter/question_converters/calculated_converter.rb +17 -0
  124. data/lib/moodle2cc/moodle2converter/question_converters/matching_converter.rb +22 -0
  125. data/lib/moodle2cc/moodle2converter/question_converters/multiple_blanks_converter.rb +26 -0
  126. data/lib/moodle2cc/moodle2converter/question_converters/numerical_converter.rb +14 -0
  127. data/lib/moodle2cc/moodle2converter/question_converters/question_converter.rb +57 -0
  128. data/lib/moodle2cc/moodle2converter/question_converters/random_sa_converter.rb +18 -0
  129. data/lib/moodle2cc/moodle2converter/question_converters/true_false_converter.rb +20 -0
  130. data/lib/moodle2cc/moodle2converter/section_converter.rb +75 -0
  131. data/lib/moodle2cc/version.rb +1 -1
  132. data/moodle2cc.gemspec +6 -1
  133. data/spec/moodle2cc/canvas_cc/assessment_writer_spec.rb +95 -0
  134. data/spec/moodle2cc/canvas_cc/assignment_writer_spec.rb +72 -0
  135. data/spec/moodle2cc/canvas_cc/calculated_question_writer_spec.rb +81 -0
  136. data/spec/moodle2cc/canvas_cc/canvas_export_writer_spec.rb +26 -0
  137. data/spec/moodle2cc/canvas_cc/cartridge_creator_spec.rb +50 -0
  138. data/spec/moodle2cc/canvas_cc/course_setting_writer_spec.rb +47 -0
  139. data/spec/moodle2cc/canvas_cc/discussion_writer_spec.rb +38 -0
  140. data/spec/moodle2cc/canvas_cc/essay_question_writer_spec.rb +31 -0
  141. data/spec/moodle2cc/canvas_cc/file_meta_writer_spec.rb +57 -0
  142. data/spec/moodle2cc/canvas_cc/ims_manifest_generator_spec.rb +141 -0
  143. data/spec/moodle2cc/canvas_cc/matching_question_writer_spec.rb +51 -0
  144. data/spec/moodle2cc/canvas_cc/models/assessment_spec.rb +78 -0
  145. data/spec/moodle2cc/canvas_cc/models/assignment_spec.rb +45 -0
  146. data/spec/moodle2cc/canvas_cc/models/canvas_file_spec.rb +23 -0
  147. data/spec/moodle2cc/canvas_cc/models/canvas_module_spec.rb +16 -0
  148. data/spec/moodle2cc/canvas_cc/models/course_spec.rb +43 -0
  149. data/spec/moodle2cc/canvas_cc/models/discussion_spec.rb +47 -0
  150. data/spec/moodle2cc/canvas_cc/models/discussion_topic_spec.rb +7 -0
  151. data/spec/moodle2cc/canvas_cc/models/module_item_spec.rb +15 -0
  152. data/spec/moodle2cc/canvas_cc/models/page_spec.rb +28 -0
  153. data/spec/moodle2cc/canvas_cc/models/question_spec.rb +8 -0
  154. data/spec/moodle2cc/canvas_cc/models/resource_spec.rb +17 -0
  155. data/spec/moodle2cc/canvas_cc/models/web_content_spec.rb +7 -0
  156. data/spec/moodle2cc/canvas_cc/models/web_link_spec.rb +9 -0
  157. data/spec/moodle2cc/canvas_cc/module_meta_writer_spec.rb +118 -0
  158. data/spec/moodle2cc/canvas_cc/multiple_blanks_question_writer_spec.rb +77 -0
  159. data/spec/moodle2cc/canvas_cc/multiple_choice_question_writer_spec.rb +69 -0
  160. data/spec/moodle2cc/canvas_cc/numerical_question_writer_spec.rb +69 -0
  161. data/spec/moodle2cc/canvas_cc/page_writer_spec.rb +29 -0
  162. data/spec/moodle2cc/canvas_cc/question_bank_writer_spec.rb +43 -0
  163. data/spec/moodle2cc/canvas_cc/question_writer_spec.rb +129 -0
  164. data/spec/moodle2cc/canvas_cc/short_answer_question_writer_spec.rb +50 -0
  165. data/spec/moodle2cc/canvas_cc/text_only_question_writer_spec.rb +23 -0
  166. data/spec/moodle2cc/canvas_cc/true_false_question_writer_spec.rb +62 -0
  167. data/spec/moodle2cc/moodle2/extractor_spec.rb +175 -0
  168. data/spec/moodle2cc/moodle2/models/assignment_spec.rb +36 -0
  169. data/spec/moodle2cc/moodle2/models/book_chapter_spec.rb +11 -0
  170. data/spec/moodle2cc/moodle2/models/book_spec.rb +13 -0
  171. data/spec/moodle2cc/moodle2/models/course_spec.rb +67 -0
  172. data/spec/moodle2cc/moodle2/models/external_url_spec.rb +18 -0
  173. data/spec/moodle2cc/moodle2/models/folder_spec.rb +16 -0
  174. data/spec/moodle2cc/moodle2/models/forum_spec.rb +30 -0
  175. data/spec/moodle2cc/moodle2/models/glossary_entry_spec.rb +25 -0
  176. data/spec/moodle2cc/moodle2/models/glossary_spec.rb +35 -0
  177. data/spec/moodle2cc/moodle2/models/label_spec.rb +13 -0
  178. data/spec/moodle2cc/moodle2/models/moodle2_file_spec.rb +32 -0
  179. data/spec/moodle2cc/moodle2/models/page_spec.rb +23 -0
  180. data/spec/moodle2cc/moodle2/models/quizzes/answer_spec.rb +14 -0
  181. data/spec/moodle2cc/moodle2/models/quizzes/calculated_question_spec.rb +14 -0
  182. data/spec/moodle2cc/moodle2/models/quizzes/multianswer_question_spec.rb +30 -0
  183. data/spec/moodle2cc/moodle2/models/quizzes/numerical_question_spec.rb +12 -0
  184. data/spec/moodle2cc/moodle2/models/quizzes/question_category_spec.rb +29 -0
  185. data/spec/moodle2cc/moodle2/models/quizzes/question_spec.rb +35 -0
  186. data/spec/moodle2cc/moodle2/models/quizzes/quiz_spec.rb +7 -0
  187. data/spec/moodle2cc/moodle2/models/quizzes/random_sa_question_spec.rb +12 -0
  188. data/spec/moodle2cc/moodle2/models/quizzes/true_false_question_spec.rb +16 -0
  189. data/spec/moodle2cc/moodle2/models/resource_spec.rb +22 -0
  190. data/spec/moodle2cc/moodle2/models/section_spec.rb +57 -0
  191. data/spec/moodle2cc/moodle2/parsers/answer_parser_spec.rb +18 -0
  192. data/spec/moodle2cc/moodle2/parsers/assignment_parser_spec.rb +42 -0
  193. data/spec/moodle2cc/moodle2/parsers/book_parser_spec.rb +35 -0
  194. data/spec/moodle2cc/moodle2/parsers/course_parser_spec.rb +18 -0
  195. data/spec/moodle2cc/moodle2/parsers/external_url_parser_spec.rb +26 -0
  196. data/spec/moodle2cc/moodle2/parsers/file_parser_spec.rb +35 -0
  197. data/spec/moodle2cc/moodle2/parsers/folder_parser_spec.rb +24 -0
  198. data/spec/moodle2cc/moodle2/parsers/forum_parser_spec.rb +38 -0
  199. data/spec/moodle2cc/moodle2/parsers/glossary_parser_spec.rb +60 -0
  200. data/spec/moodle2cc/moodle2/parsers/label_parser_spec.rb +21 -0
  201. data/spec/moodle2cc/moodle2/parsers/page_parser_spec.rb +25 -0
  202. data/spec/moodle2cc/moodle2/parsers/parser_helper_spec.rb +94 -0
  203. data/spec/moodle2cc/moodle2/parsers/question_category_parser_spec.rb +27 -0
  204. data/spec/moodle2cc/moodle2/parsers/question_parsers/calculated_parser_spec.rb +83 -0
  205. data/spec/moodle2cc/moodle2/parsers/question_parsers/match_parser_spec.rb +31 -0
  206. data/spec/moodle2cc/moodle2/parsers/question_parsers/multianswer_parser_spec.rb +16 -0
  207. data/spec/moodle2cc/moodle2/parsers/question_parsers/multichoice_parser_spec.rb +16 -0
  208. data/spec/moodle2cc/moodle2/parsers/question_parsers/numerical_parser_spec.rb +23 -0
  209. data/spec/moodle2cc/moodle2/parsers/question_parsers/question_parser_spec.rb +62 -0
  210. data/spec/moodle2cc/moodle2/parsers/question_parsers/random_sa_parser_spec.rb +18 -0
  211. data/spec/moodle2cc/moodle2/parsers/question_parsers/short_answer_parser_spec.rb +16 -0
  212. data/spec/moodle2cc/moodle2/parsers/question_parsers/true_false_parser_spec.rb +22 -0
  213. data/spec/moodle2cc/moodle2/parsers/quiz_parser_spec.rb +68 -0
  214. data/spec/moodle2cc/moodle2/parsers/resource_parser_spec.rb +29 -0
  215. data/spec/moodle2cc/moodle2/parsers/section_parser_spec.rb +27 -0
  216. data/spec/moodle2cc/moodle2converter/assessment_converter_spec.rb +49 -0
  217. data/spec/moodle2cc/moodle2converter/assignment_converter_spec.rb +34 -0
  218. data/spec/moodle2cc/moodle2converter/book_converter_spec.rb +132 -0
  219. data/spec/moodle2cc/moodle2converter/converter_helper_spec.rb +149 -0
  220. data/spec/moodle2cc/moodle2converter/course_converter_spec.rb +24 -0
  221. data/spec/moodle2cc/moodle2converter/discussion_converter_spec.rb +23 -0
  222. data/spec/moodle2cc/moodle2converter/file_converter_spec.rb +20 -0
  223. data/spec/moodle2cc/moodle2converter/folder_converter_spec.rb +42 -0
  224. data/spec/moodle2cc/moodle2converter/glossary_converter_spec.rb +36 -0
  225. data/spec/moodle2cc/moodle2converter/html_converter_spec.rb +186 -0
  226. data/spec/moodle2cc/moodle2converter/migrator_spec.rb +173 -0
  227. data/spec/moodle2cc/moodle2converter/page_converter_spec.rb +28 -0
  228. data/spec/moodle2cc/moodle2converter/question_bank_converter_spec.rb +44 -0
  229. data/spec/moodle2cc/moodle2converter/question_converters/calculated_converter_spec.rb +30 -0
  230. data/spec/moodle2cc/moodle2converter/question_converters/matching_converter_spec.rb +25 -0
  231. data/spec/moodle2cc/moodle2converter/question_converters/multiple_blanks_converter_spec.rb +37 -0
  232. data/spec/moodle2cc/moodle2converter/question_converters/numerical_converter_spec.rb +19 -0
  233. data/spec/moodle2cc/moodle2converter/question_converters/question_converter_spec.rb +82 -0
  234. data/spec/moodle2cc/moodle2converter/question_converters/random_sa_converter_spec.rb +20 -0
  235. data/spec/moodle2cc/moodle2converter/question_converters/true_false_converter_spec.rb +26 -0
  236. data/spec/moodle2cc/moodle2converter/section_converter_spec.rb +187 -0
  237. data/spec/spec_helper.rb +11 -0
  238. data/spec/support/shared_examples_for_models.rb +26 -0
  239. data/test/acceptance/migrator_test.rb +2 -1
  240. data/test/fixtures/common_cartridge/ims_manifest_simple.xml +45 -0
  241. data/test/fixtures/common_cartridge/schema/cccv1p0.xsd +563 -0
  242. data/test/fixtures/common_cartridge/schema/ccv1p1_imsccauth_v1p1.xsd +203 -0
  243. data/test/fixtures/common_cartridge/schema/ccv1p1_imscp_v1p2_v1p0.xsd +827 -0
  244. data/test/fixtures/common_cartridge/schema/ccv1p1_lommanifest_v1p0.xsd +822 -0
  245. data/test/fixtures/common_cartridge/schema/ccv1p1_lomresource_v1p0.xsd +273 -0
  246. data/test/fixtures/common_cartridge/schema/xml.xsd +286 -0
  247. data/test/fixtures/moodle2/SC.mbz +0 -0
  248. data/test/fixtures/moodle2/backup/activities/assign_12/assign.xml +78 -0
  249. data/test/fixtures/moodle2/backup/activities/assign_12/calendar.xml +21 -0
  250. data/test/fixtures/moodle2/backup/activities/assign_12/comments.xml +3 -0
  251. data/test/fixtures/moodle2/backup/activities/assign_12/completion.xml +3 -0
  252. data/test/fixtures/moodle2/backup/activities/assign_12/filters.xml +7 -0
  253. data/test/fixtures/moodle2/backup/activities/assign_12/grades.xml +38 -0
  254. data/test/fixtures/moodle2/backup/activities/assign_12/grading.xml +9 -0
  255. data/test/fixtures/moodle2/backup/activities/assign_12/inforef.xml +13 -0
  256. data/test/fixtures/moodle2/backup/activities/assign_12/module.xml +25 -0
  257. data/test/fixtures/moodle2/backup/activities/assign_12/roles.xml +7 -0
  258. data/test/fixtures/moodle2/backup/activities/assign_4/assign.xml +78 -0
  259. data/test/fixtures/moodle2/backup/activities/assign_4/calendar.xml +21 -0
  260. data/test/fixtures/moodle2/backup/activities/assign_4/comments.xml +3 -0
  261. data/test/fixtures/moodle2/backup/activities/assign_4/completion.xml +3 -0
  262. data/test/fixtures/moodle2/backup/activities/assign_4/filters.xml +7 -0
  263. data/test/fixtures/moodle2/backup/activities/assign_4/grades.xml +38 -0
  264. data/test/fixtures/moodle2/backup/activities/assign_4/grading.xml +9 -0
  265. data/test/fixtures/moodle2/backup/activities/assign_4/inforef.xml +13 -0
  266. data/test/fixtures/moodle2/backup/activities/assign_4/module.xml +25 -0
  267. data/test/fixtures/moodle2/backup/activities/assign_4/roles.xml +7 -0
  268. data/test/fixtures/moodle2/backup/activities/book_6/book.xml +44 -0
  269. data/test/fixtures/moodle2/backup/activities/book_6/calendar.xml +3 -0
  270. data/test/fixtures/moodle2/backup/activities/book_6/comments.xml +3 -0
  271. data/test/fixtures/moodle2/backup/activities/book_6/completion.xml +3 -0
  272. data/test/fixtures/moodle2/backup/activities/book_6/filters.xml +7 -0
  273. data/test/fixtures/moodle2/backup/activities/book_6/grades.xml +7 -0
  274. data/test/fixtures/moodle2/backup/activities/book_6/inforef.xml +3 -0
  275. data/test/fixtures/moodle2/backup/activities/book_6/module.xml +25 -0
  276. data/test/fixtures/moodle2/backup/activities/book_6/roles.xml +7 -0
  277. data/test/fixtures/moodle2/backup/activities/folder_7/calendar.xml +3 -0
  278. data/test/fixtures/moodle2/backup/activities/folder_7/comments.xml +3 -0
  279. data/test/fixtures/moodle2/backup/activities/folder_7/completion.xml +3 -0
  280. data/test/fixtures/moodle2/backup/activities/folder_7/filters.xml +7 -0
  281. data/test/fixtures/moodle2/backup/activities/folder_7/folder.xml +10 -0
  282. data/test/fixtures/moodle2/backup/activities/folder_7/grades.xml +7 -0
  283. data/test/fixtures/moodle2/backup/activities/folder_7/inforef.xml +20 -0
  284. data/test/fixtures/moodle2/backup/activities/folder_7/module.xml +25 -0
  285. data/test/fixtures/moodle2/backup/activities/folder_7/roles.xml +7 -0
  286. data/test/fixtures/moodle2/backup/activities/forum_1/calendar.xml +3 -0
  287. data/test/fixtures/moodle2/backup/activities/forum_1/comments.xml +3 -0
  288. data/test/fixtures/moodle2/backup/activities/forum_1/completion.xml +3 -0
  289. data/test/fixtures/moodle2/backup/activities/forum_1/filters.xml +7 -0
  290. data/test/fixtures/moodle2/backup/activities/forum_1/forum.xml +34 -0
  291. data/test/fixtures/moodle2/backup/activities/forum_1/grades.xml +7 -0
  292. data/test/fixtures/moodle2/backup/activities/forum_1/inforef.xml +3 -0
  293. data/test/fixtures/moodle2/backup/activities/forum_1/module.xml +25 -0
  294. data/test/fixtures/moodle2/backup/activities/forum_1/roles.xml +7 -0
  295. data/test/fixtures/moodle2/backup/activities/forum_13/calendar.xml +3 -0
  296. data/test/fixtures/moodle2/backup/activities/forum_13/comments.xml +3 -0
  297. data/test/fixtures/moodle2/backup/activities/forum_13/completion.xml +3 -0
  298. data/test/fixtures/moodle2/backup/activities/forum_13/filters.xml +7 -0
  299. data/test/fixtures/moodle2/backup/activities/forum_13/forum.xml +34 -0
  300. data/test/fixtures/moodle2/backup/activities/forum_13/grades.xml +7 -0
  301. data/test/fixtures/moodle2/backup/activities/forum_13/inforef.xml +3 -0
  302. data/test/fixtures/moodle2/backup/activities/forum_13/module.xml +25 -0
  303. data/test/fixtures/moodle2/backup/activities/forum_13/roles.xml +7 -0
  304. data/test/fixtures/moodle2/backup/activities/glossary_8/calendar.xml +3 -0
  305. data/test/fixtures/moodle2/backup/activities/glossary_8/comments.xml +3 -0
  306. data/test/fixtures/moodle2/backup/activities/glossary_8/completion.xml +3 -0
  307. data/test/fixtures/moodle2/backup/activities/glossary_8/filters.xml +7 -0
  308. data/test/fixtures/moodle2/backup/activities/glossary_8/glossary.xml +115 -0
  309. data/test/fixtures/moodle2/backup/activities/glossary_8/grades.xml +7 -0
  310. data/test/fixtures/moodle2/backup/activities/glossary_8/inforef.xml +22 -0
  311. data/test/fixtures/moodle2/backup/activities/glossary_8/module.xml +25 -0
  312. data/test/fixtures/moodle2/backup/activities/glossary_8/roles.xml +7 -0
  313. data/test/fixtures/moodle2/backup/activities/label_11/calendar.xml +3 -0
  314. data/test/fixtures/moodle2/backup/activities/label_11/comments.xml +3 -0
  315. data/test/fixtures/moodle2/backup/activities/label_11/completion.xml +3 -0
  316. data/test/fixtures/moodle2/backup/activities/label_11/filters.xml +7 -0
  317. data/test/fixtures/moodle2/backup/activities/label_11/grades.xml +7 -0
  318. data/test/fixtures/moodle2/backup/activities/label_11/inforef.xml +3 -0
  319. data/test/fixtures/moodle2/backup/activities/label_11/label.xml +9 -0
  320. data/test/fixtures/moodle2/backup/activities/label_11/module.xml +25 -0
  321. data/test/fixtures/moodle2/backup/activities/label_11/roles.xml +7 -0
  322. data/test/fixtures/moodle2/backup/activities/page_10/calendar.xml +3 -0
  323. data/test/fixtures/moodle2/backup/activities/page_10/comments.xml +3 -0
  324. data/test/fixtures/moodle2/backup/activities/page_10/completion.xml +3 -0
  325. data/test/fixtures/moodle2/backup/activities/page_10/filters.xml +7 -0
  326. data/test/fixtures/moodle2/backup/activities/page_10/grades.xml +7 -0
  327. data/test/fixtures/moodle2/backup/activities/page_10/inforef.xml +3 -0
  328. data/test/fixtures/moodle2/backup/activities/page_10/module.xml +25 -0
  329. data/test/fixtures/moodle2/backup/activities/page_10/page.xml +16 -0
  330. data/test/fixtures/moodle2/backup/activities/page_10/roles.xml +7 -0
  331. data/test/fixtures/moodle2/backup/activities/page_2/calendar.xml +3 -0
  332. data/test/fixtures/moodle2/backup/activities/page_2/comments.xml +3 -0
  333. data/test/fixtures/moodle2/backup/activities/page_2/completion.xml +3 -0
  334. data/test/fixtures/moodle2/backup/activities/page_2/filters.xml +7 -0
  335. data/test/fixtures/moodle2/backup/activities/page_2/grades.xml +7 -0
  336. data/test/fixtures/moodle2/backup/activities/page_2/inforef.xml +14 -0
  337. data/test/fixtures/moodle2/backup/activities/page_2/module.xml +25 -0
  338. data/test/fixtures/moodle2/backup/activities/page_2/page.xml +21 -0
  339. data/test/fixtures/moodle2/backup/activities/page_2/roles.xml +7 -0
  340. data/test/fixtures/moodle2/backup/activities/questionnaire_9/calendar.xml +3 -0
  341. data/test/fixtures/moodle2/backup/activities/questionnaire_9/comments.xml +3 -0
  342. data/test/fixtures/moodle2/backup/activities/questionnaire_9/completion.xml +3 -0
  343. data/test/fixtures/moodle2/backup/activities/questionnaire_9/filters.xml +7 -0
  344. data/test/fixtures/moodle2/backup/activities/questionnaire_9/grades.xml +7 -0
  345. data/test/fixtures/moodle2/backup/activities/questionnaire_9/inforef.xml +3 -0
  346. data/test/fixtures/moodle2/backup/activities/questionnaire_9/module.xml +25 -0
  347. data/test/fixtures/moodle2/backup/activities/questionnaire_9/questionnaire.xml +245 -0
  348. data/test/fixtures/moodle2/backup/activities/questionnaire_9/roles.xml +7 -0
  349. data/test/fixtures/moodle2/backup/activities/quiz_5/calendar.xml +21 -0
  350. data/test/fixtures/moodle2/backup/activities/quiz_5/comments.xml +3 -0
  351. data/test/fixtures/moodle2/backup/activities/quiz_5/completion.xml +3 -0
  352. data/test/fixtures/moodle2/backup/activities/quiz_5/filters.xml +7 -0
  353. data/test/fixtures/moodle2/backup/activities/quiz_5/grades.xml +38 -0
  354. data/test/fixtures/moodle2/backup/activities/quiz_5/inforef.xml +21 -0
  355. data/test/fixtures/moodle2/backup/activities/quiz_5/module.xml +25 -0
  356. data/test/fixtures/moodle2/backup/activities/quiz_5/quiz.xml +108 -0
  357. data/test/fixtures/moodle2/backup/activities/quiz_5/roles.xml +7 -0
  358. data/test/fixtures/moodle2/backup/activities/resource_14/calendar.xml +3 -0
  359. data/test/fixtures/moodle2/backup/activities/resource_14/comments.xml +3 -0
  360. data/test/fixtures/moodle2/backup/activities/resource_14/completion.xml +3 -0
  361. data/test/fixtures/moodle2/backup/activities/resource_14/filters.xml +7 -0
  362. data/test/fixtures/moodle2/backup/activities/resource_14/grades.xml +7 -0
  363. data/test/fixtures/moodle2/backup/activities/resource_14/inforef.xml +11 -0
  364. data/test/fixtures/moodle2/backup/activities/resource_14/module.xml +25 -0
  365. data/test/fixtures/moodle2/backup/activities/resource_14/resource.xml +16 -0
  366. data/test/fixtures/moodle2/backup/activities/resource_14/roles.xml +7 -0
  367. data/test/fixtures/moodle2/backup/activities/resource_3/calendar.xml +3 -0
  368. data/test/fixtures/moodle2/backup/activities/resource_3/comments.xml +3 -0
  369. data/test/fixtures/moodle2/backup/activities/resource_3/completion.xml +3 -0
  370. data/test/fixtures/moodle2/backup/activities/resource_3/filters.xml +7 -0
  371. data/test/fixtures/moodle2/backup/activities/resource_3/grades.xml +7 -0
  372. data/test/fixtures/moodle2/backup/activities/resource_3/inforef.xml +11 -0
  373. data/test/fixtures/moodle2/backup/activities/resource_3/module.xml +25 -0
  374. data/test/fixtures/moodle2/backup/activities/resource_3/resource.xml +16 -0
  375. data/test/fixtures/moodle2/backup/activities/resource_3/roles.xml +7 -0
  376. data/test/fixtures/moodle2/backup/activities/url_15/calendar.xml +3 -0
  377. data/test/fixtures/moodle2/backup/activities/url_15/comments.xml +3 -0
  378. data/test/fixtures/moodle2/backup/activities/url_15/completion.xml +3 -0
  379. data/test/fixtures/moodle2/backup/activities/url_15/filters.xml +7 -0
  380. data/test/fixtures/moodle2/backup/activities/url_15/grades.xml +7 -0
  381. data/test/fixtures/moodle2/backup/activities/url_15/inforef.xml +3 -0
  382. data/test/fixtures/moodle2/backup/activities/url_15/module.xml +25 -0
  383. data/test/fixtures/moodle2/backup/activities/url_15/roles.xml +7 -0
  384. data/test/fixtures/moodle2/backup/activities/url_15/url.xml +13 -0
  385. data/test/fixtures/moodle2/backup/completion.xml +3 -0
  386. data/test/fixtures/moodle2/backup/course/blocks/calendar_upcoming_12/block.xml +13 -0
  387. data/test/fixtures/moodle2/backup/course/blocks/calendar_upcoming_12/comments.xml +3 -0
  388. data/test/fixtures/moodle2/backup/course/blocks/calendar_upcoming_12/inforef.xml +3 -0
  389. data/test/fixtures/moodle2/backup/course/blocks/calendar_upcoming_12/roles.xml +7 -0
  390. data/test/fixtures/moodle2/backup/course/blocks/news_items_11/block.xml +13 -0
  391. data/test/fixtures/moodle2/backup/course/blocks/news_items_11/comments.xml +3 -0
  392. data/test/fixtures/moodle2/backup/course/blocks/news_items_11/inforef.xml +3 -0
  393. data/test/fixtures/moodle2/backup/course/blocks/news_items_11/roles.xml +7 -0
  394. data/test/fixtures/moodle2/backup/course/blocks/recent_activity_13/block.xml +13 -0
  395. data/test/fixtures/moodle2/backup/course/blocks/recent_activity_13/comments.xml +3 -0
  396. data/test/fixtures/moodle2/backup/course/blocks/recent_activity_13/inforef.xml +3 -0
  397. data/test/fixtures/moodle2/backup/course/blocks/recent_activity_13/roles.xml +7 -0
  398. data/test/fixtures/moodle2/backup/course/blocks/search_forums_10/block.xml +13 -0
  399. data/test/fixtures/moodle2/backup/course/blocks/search_forums_10/comments.xml +3 -0
  400. data/test/fixtures/moodle2/backup/course/blocks/search_forums_10/inforef.xml +3 -0
  401. data/test/fixtures/moodle2/backup/course/blocks/search_forums_10/roles.xml +7 -0
  402. data/test/fixtures/moodle2/backup/course/calendar.xml +3 -0
  403. data/test/fixtures/moodle2/backup/course/comments.xml +3 -0
  404. data/test/fixtures/moodle2/backup/course/course.xml +37 -0
  405. data/test/fixtures/moodle2/backup/course/enrolments.xml +110 -0
  406. data/test/fixtures/moodle2/backup/course/filters.xml +7 -0
  407. data/test/fixtures/moodle2/backup/course/inforef.xml +13 -0
  408. data/test/fixtures/moodle2/backup/course/roles.xml +7 -0
  409. data/test/fixtures/moodle2/backup/files.xml +531 -0
  410. data/test/fixtures/moodle2/backup/files/50/50bf82ee23d193378b172d6656c08eebb094f006 +0 -0
  411. data/test/fixtures/moodle2/backup/files/51/516ec993971b6e2122b97d15ecc0e08c3eb03828 +0 -0
  412. data/test/fixtures/moodle2/backup/files/64/64643b3bd4274c90e293583030e549e61f4d24fb +0 -0
  413. data/test/fixtures/moodle2/backup/files/67/67859b142e5ba020a84c3166f09d59ef992379a4 +0 -0
  414. data/test/fixtures/moodle2/backup/files/7a/7a647918739d3017a4e272ad97b147b667c00fca +0 -0
  415. data/test/fixtures/moodle2/backup/files/a0/a0f324310c8d8dd9c79458986c4322f5a060a1d9 +0 -0
  416. data/test/fixtures/moodle2/backup/files/a2/a258f0bb582d111a994b35fdc84a71ed1d487310 +0 -0
  417. data/test/fixtures/moodle2/backup/gradebook.xml +57 -0
  418. data/test/fixtures/moodle2/backup/groups.xml +5 -0
  419. data/test/fixtures/moodle2/backup/moodle_backup.xml +530 -0
  420. data/test/fixtures/moodle2/backup/outcomes.xml +3 -0
  421. data/test/fixtures/moodle2/backup/questions.xml +1187 -0
  422. data/test/fixtures/moodle2/backup/roles.xml +11 -0
  423. data/test/fixtures/moodle2/backup/scales.xml +3 -0
  424. data/test/fixtures/moodle2/backup/sections/section_1/inforef.xml +3 -0
  425. data/test/fixtures/moodle2/backup/sections/section_1/section.xml +13 -0
  426. data/test/fixtures/moodle2/backup/sections/section_10/inforef.xml +3 -0
  427. data/test/fixtures/moodle2/backup/sections/section_10/section.xml +13 -0
  428. data/test/fixtures/moodle2/backup/sections/section_2/inforef.xml +3 -0
  429. data/test/fixtures/moodle2/backup/sections/section_2/section.xml +13 -0
  430. data/test/fixtures/moodle2/backup/sections/section_3/inforef.xml +3 -0
  431. data/test/fixtures/moodle2/backup/sections/section_3/section.xml +13 -0
  432. data/test/fixtures/moodle2/backup/sections/section_4/inforef.xml +3 -0
  433. data/test/fixtures/moodle2/backup/sections/section_4/section.xml +13 -0
  434. data/test/fixtures/moodle2/backup/sections/section_5/inforef.xml +3 -0
  435. data/test/fixtures/moodle2/backup/sections/section_5/section.xml +13 -0
  436. data/test/fixtures/moodle2/backup/sections/section_6/inforef.xml +3 -0
  437. data/test/fixtures/moodle2/backup/sections/section_6/section.xml +13 -0
  438. data/test/fixtures/moodle2/backup/sections/section_7/inforef.xml +3 -0
  439. data/test/fixtures/moodle2/backup/sections/section_7/section.xml +13 -0
  440. data/test/fixtures/moodle2/backup/users.xml +104 -0
  441. data/test/fixtures/moodle2/moodle2_shell.mbz +0 -0
  442. data/test/test_helper.rb +71 -0
  443. data/{lib/test → test}/test_question_helper.rb +0 -0
  444. data/{lib/test → test}/test_wiki_helper.rb +0 -0
  445. data/test/unit/canvas/assessment_test.rb +1 -1
  446. data/test/unit/canvas/assignment_test.rb +1 -1
  447. data/test/unit/canvas/converter_test.rb +1 -1
  448. data/test/unit/canvas/course_test.rb +1 -1
  449. data/test/unit/canvas/discussion_topic_test.rb +1 -1
  450. data/test/unit/canvas/label_test.rb +1 -1
  451. data/test/unit/canvas/question_bank_test.rb +1 -1
  452. data/test/unit/canvas/question_group_test.rb +1 -1
  453. data/test/unit/canvas/question_test.rb +2 -2
  454. data/test/unit/canvas/web_content_test.rb +1 -1
  455. data/test/unit/canvas/web_link_test.rb +1 -1
  456. data/test/unit/canvas/wiki_test.rb +2 -2
  457. data/test/unit/cc/assessment_test.rb +1 -1
  458. data/test/unit/cc/assignment_test.rb +1 -1
  459. data/test/unit/cc/cc_helper_test.rb +1 -1
  460. data/test/unit/cc/converter_test.rb +1 -1
  461. data/test/unit/cc/course_test.rb +1 -1
  462. data/test/unit/cc/discussion_topic_test.rb +1 -1
  463. data/test/unit/cc/label_test.rb +1 -1
  464. data/test/unit/cc/question_test.rb +2 -2
  465. data/test/unit/cc/web_content_test.rb +1 -1
  466. data/test/unit/cc/web_link_test.rb +1 -1
  467. data/test/unit/cc/wiki_test.rb +2 -2
  468. data/test/unit/migrator_test.rb +12 -1
  469. data/test/unit/moodle/backup_test.rb +1 -1
  470. data/test/unit/moodle/course_test.rb +1 -1
  471. data/test/unit/moodle/grade_item_test.rb +1 -1
  472. data/test/unit/moodle/info_test.rb +1 -1
  473. data/test/unit/moodle/mod_test.rb +1 -1
  474. data/test/unit/moodle/question_category_test.rb +1 -1
  475. data/test/unit/moodle/question_test.rb +1 -1
  476. data/test/unit/moodle/section_test.rb +1 -1
  477. data/test/unit/resource_factory_test.rb +1 -1
  478. metadata +814 -58
  479. data/lib/test/test_helper.rb +0 -44
@@ -0,0 +1,25 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models
4
+ describe GlossaryEntry do
5
+
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :user_id
8
+ it_behaves_like 'it has an attribute for', :concept
9
+ it_behaves_like 'it has an attribute for', :definition
10
+ it_behaves_like 'it has an attribute for', :definition_format
11
+ it_behaves_like 'it has an attribute for', :definition_trust
12
+ it_behaves_like 'it has an attribute for', :attachment
13
+ it_behaves_like 'it has an attribute for', :teacher_entry
14
+ it_behaves_like 'it has an attribute for', :source_glossary_id
15
+ it_behaves_like 'it has an attribute for', :use_dynalink
16
+ it_behaves_like 'it has an attribute for', :case_sensitive
17
+ it_behaves_like 'it has an attribute for', :full_match
18
+ it_behaves_like 'it has an attribute for', :approved
19
+ it_behaves_like 'it has an attribute for', :aliases, []
20
+ it_behaves_like 'it has an attribute for', :ratings, []
21
+
22
+
23
+
24
+ end
25
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models
4
+ describe Glossary do
5
+
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :intro
9
+ it_behaves_like 'it has an attribute for', :intro_format
10
+ it_behaves_like 'it has an attribute for', :allow_duplicated_entries
11
+ it_behaves_like 'it has an attribute for', :display_format
12
+ it_behaves_like 'it has an attribute for', :main_glossary
13
+ it_behaves_like 'it has an attribute for', :show_special
14
+ it_behaves_like 'it has an attribute for', :show_alphabet
15
+ it_behaves_like 'it has an attribute for', :show_all
16
+ it_behaves_like 'it has an attribute for', :allow_comments
17
+ it_behaves_like 'it has an attribute for', :allow_printview
18
+ it_behaves_like 'it has an attribute for', :use_dynalink
19
+ it_behaves_like 'it has an attribute for', :default_approval
20
+ it_behaves_like 'it has an attribute for', :global_glossary
21
+ it_behaves_like 'it has an attribute for', :ent_by_page
22
+ it_behaves_like 'it has an attribute for', :edit_always
23
+ it_behaves_like 'it has an attribute for', :rss_type
24
+ it_behaves_like 'it has an attribute for', :rss_articles
25
+ it_behaves_like 'it has an attribute for', :assessed
26
+ it_behaves_like 'it has an attribute for', :assess_time_start
27
+ it_behaves_like 'it has an attribute for', :assess_time_finish
28
+ it_behaves_like 'it has an attribute for', :scale
29
+ it_behaves_like 'it has an attribute for', :completion_entries
30
+ it_behaves_like 'it has an attribute for', :module_id
31
+ it_behaves_like 'it has an attribute for', :visible
32
+ it_behaves_like 'it has an attribute for', :entries, []
33
+
34
+ end
35
+ end
@@ -0,0 +1,13 @@
1
+ require 'spec_helper'
2
+ module Moodle2CC::Moodle2::Models
3
+ describe Label do
4
+
5
+ it_behaves_like 'it has an attribute for', :id
6
+ it_behaves_like 'it has an attribute for', :module_id
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :intro
9
+ it_behaves_like 'it has an attribute for', :intro_format
10
+ it_behaves_like 'it has an attribute for', :visible
11
+
12
+ end
13
+ end
@@ -0,0 +1,32 @@
1
+ require 'spec_helper'
2
+
3
+ describe Moodle2CC::Moodle2::Models::Moodle2File do
4
+
5
+ it_behaves_like 'it has an attribute for', :id
6
+ it_behaves_like 'it has an attribute for', :content_hash
7
+ it_behaves_like 'it has an attribute for', :context_id
8
+ it_behaves_like 'it has an attribute for', :component
9
+ it_behaves_like 'it has an attribute for', :file_area
10
+ it_behaves_like 'it has an attribute for', :item_id
11
+ it_behaves_like 'it has an attribute for', :file_path
12
+ it_behaves_like 'it has an attribute for', :file_name
13
+ it_behaves_like 'it has an attribute for', :user_id
14
+ it_behaves_like 'it has an attribute for', :mime_type
15
+ it_behaves_like 'it has an attribute for', :status
16
+ it_behaves_like 'it has an attribute for', :time_created
17
+ it_behaves_like 'it has an attribute for', :time_modified
18
+ it_behaves_like 'it has an attribute for', :source
19
+ it_behaves_like 'it has an attribute for', :author
20
+ it_behaves_like 'it has an attribute for', :license
21
+ it_behaves_like 'it has an attribute for', :sort_order
22
+ it_behaves_like 'it has an attribute for', :repository_type
23
+ it_behaves_like 'it has an attribute for', :repository_id
24
+ it_behaves_like 'it has an attribute for', :reference
25
+ it_behaves_like 'it has an attribute for', :file_location
26
+
27
+ it 'sets file size as int when passing in a string' do
28
+ subject.file_size = "5"
29
+ expect(subject.file_size).to eq(5)
30
+ end
31
+
32
+ end
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ describe Moodle2CC::Moodle2::Models::Page do
4
+
5
+ it_behaves_like 'it has an attribute for', :module_id
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :intro
9
+ it_behaves_like 'it has an attribute for', :intro_format
10
+ it_behaves_like 'it has an attribute for', :content
11
+ it_behaves_like 'it has an attribute for', :content_format
12
+ it_behaves_like 'it has an attribute for', :legacy_files
13
+ it_behaves_like 'it has an attribute for', :legacy_files_last
14
+ it_behaves_like 'it has an attribute for', :display
15
+ it_behaves_like 'it has an attribute for', :display_options
16
+ it_behaves_like 'it has an attribute for', :revision
17
+ it_behaves_like 'it has an attribute for', :time_modified
18
+ it_behaves_like 'it has an attribute for', :visible
19
+
20
+
21
+
22
+
23
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe Answer do
5
+
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :answer_text
8
+ it_behaves_like 'it has an attribute for', :answer_format
9
+ it_behaves_like 'it has an attribute for', :fraction
10
+ it_behaves_like 'it has an attribute for', :feedback
11
+ it_behaves_like 'it has an attribute for', :feedback_format
12
+
13
+ end
14
+ end
@@ -0,0 +1,14 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe CalculatedQuestion do
5
+
6
+ it_behaves_like 'a Moodle2CC::Moodle2::Models::Quizzes::Question'
7
+
8
+ it_behaves_like 'it has an attribute for', :correct_answer_format
9
+ it_behaves_like 'it has an attribute for', :correct_answer_length
10
+ it_behaves_like 'it has an attribute for', :tolerance
11
+
12
+ it_behaves_like 'it is registered as a Question', 'calculated'
13
+ end
14
+ end
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe MultianswerQuestion do
5
+
6
+ it_behaves_like 'a Moodle2CC::Moodle2::Models::Quizzes::Question'
7
+
8
+ it_behaves_like 'it has an attribute for', :embedded_question_references
9
+ it_behaves_like 'it has an attribute for', :embedded_questions
10
+
11
+ it_behaves_like 'it is registered as a Question', 'multianswer'
12
+
13
+ it 'should resolve embedded question references and remove them from their categories' do
14
+ parent_question = Moodle2CC::Moodle2::Models::Quizzes::MultianswerQuestion.new
15
+ parent_question.id = "immaparent"
16
+ parent_question.embedded_question_references = ['embedme']
17
+
18
+ embedded_question = Moodle2CC::Moodle2::Models::Quizzes::Question.new
19
+ embedded_question.id = 'embedme'
20
+ embedded_question.parent = 'immaparent'
21
+
22
+ category = Moodle2CC::Moodle2::Models::Quizzes::QuestionCategory.new
23
+ category.questions = [parent_question, embedded_question]
24
+
25
+ parent_question.resolve_embedded_question_references([category])
26
+ expect(parent_question.embedded_questions).to eq [embedded_question]
27
+ expect(category.questions).to eq [parent_question]
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe NumericalQuestion do
5
+
6
+ it_behaves_like 'a Moodle2CC::Moodle2::Models::Quizzes::Question'
7
+
8
+ it_behaves_like 'it has an attribute for', :tolerances, {}
9
+
10
+ it_behaves_like 'it is registered as a Question', 'numerical'
11
+ end
12
+ end
@@ -0,0 +1,29 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe QuestionCategory do
5
+
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :context_id
9
+ it_behaves_like 'it has an attribute for', :context_level
10
+ it_behaves_like 'it has an attribute for', :context_instance_id
11
+ it_behaves_like 'it has an attribute for', :info
12
+ it_behaves_like 'it has an attribute for', :info_format
13
+ it_behaves_like 'it has an attribute for', :stamp
14
+ it_behaves_like 'it has an attribute for', :parent
15
+ it_behaves_like 'it has an attribute for', :sort_order
16
+ it_behaves_like 'it has an attribute for', :questions, []
17
+
18
+ it 'should pass resolve_embedded_question_references to multianswer questions' do
19
+ question = Moodle2CC::Moodle2::Models::Quizzes::MultianswerQuestion.new
20
+ question.stub(:resolve_embedded_question_references)
21
+
22
+ category = Moodle2CC::Moodle2::Models::Quizzes::QuestionCategory.new
23
+ category.questions = [question]
24
+
25
+ category.resolve_embedded_question_references([])
26
+ expect(question).to have_received(:resolve_embedded_question_references).exactly(1)
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,35 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe Question do
5
+ it_behaves_like 'it has an attribute for', :id
6
+ it_behaves_like 'it has an attribute for', :parent
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :question_text
9
+ it_behaves_like 'it has an attribute for', :question_text_format
10
+ it_behaves_like 'it has an attribute for', :general_feedback
11
+ it_behaves_like 'it has an attribute for', :default_mark
12
+ it_behaves_like 'it has an attribute for', :penalty
13
+ it_behaves_like 'it has an attribute for', :qtype
14
+ it_behaves_like 'it has an attribute for', :length
15
+ it_behaves_like 'it has an attribute for', :stamp
16
+ it_behaves_like 'it has an attribute for', :version
17
+ it_behaves_like 'it has an attribute for', :hidden
18
+
19
+ class FooBarQuestion < Question
20
+ end
21
+
22
+ it 'registers a question type for object creation' do
23
+ FooBarQuestion.register_question_type 'foobar'
24
+ expect(Question.create('foobar')).to be_instance_of FooBarQuestion
25
+ end
26
+
27
+ it 'raises an exception for unknown question types' do
28
+ expect { Question.create('non_existing_question_type') }.to raise_exception
29
+ end
30
+
31
+ it 'creates a standard question for essay questions' do
32
+ expect(Question.create('essay')).to be_instance_of Question
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe Quiz do
5
+
6
+ end
7
+ end
@@ -0,0 +1,12 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe RandomSAQuestion do
5
+
6
+ it_behaves_like 'a Moodle2CC::Moodle2::Models::Quizzes::Question'
7
+
8
+ it_behaves_like 'it has an attribute for', :choose
9
+
10
+ it_behaves_like 'it is registered as a Question', 'randomsamatch'
11
+ end
12
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models::Quizzes
4
+ describe TrueFalseQuestion do
5
+
6
+ it_behaves_like 'a Moodle2CC::Moodle2::Models::Quizzes::Question'
7
+
8
+ it_behaves_like 'it has an attribute for', :true_false_id
9
+ it_behaves_like 'it has an attribute for', :true_answer
10
+ it_behaves_like 'it has an attribute for', :false_answer
11
+
12
+ it_behaves_like 'it is registered as a Question', 'truefalse'
13
+
14
+
15
+ end
16
+ end
@@ -0,0 +1,22 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Models
4
+ describe Resource do
5
+
6
+ it_behaves_like 'it has an attribute for', :id
7
+ it_behaves_like 'it has an attribute for', :module_id
8
+ it_behaves_like 'it has an attribute for', :name
9
+ it_behaves_like 'it has an attribute for', :intro
10
+ it_behaves_like 'it has an attribute for', :intro_format
11
+ it_behaves_like 'it has an attribute for', :to_be_migrated
12
+ it_behaves_like 'it has an attribute for', :legacy_files
13
+ it_behaves_like 'it has an attribute for', :legacy_files_last
14
+ it_behaves_like 'it has an attribute for', :display
15
+ it_behaves_like 'it has an attribute for', :display_options
16
+ it_behaves_like 'it has an attribute for', :filter_files
17
+ it_behaves_like 'it has an attribute for', :visible
18
+ it_behaves_like 'it has an attribute for', :file_ids, []
19
+ it_behaves_like 'it has an attribute for', :file
20
+
21
+ end
22
+ end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe Moodle2CC::Moodle2::Models::Section do
4
+
5
+ it_behaves_like 'it has an attribute for', :id
6
+ it_behaves_like 'it has an attribute for', :number
7
+ it_behaves_like 'it has an attribute for', :name
8
+ it_behaves_like 'it has an attribute for', :summary
9
+ it_behaves_like 'it has an attribute for', :summary_format
10
+ it_behaves_like 'it has an attribute for', :sequence, []
11
+ it_behaves_like 'it has an attribute for', :visible
12
+ it_behaves_like 'it has an attribute for', :available_from
13
+ it_behaves_like 'it has an attribute for', :available_until
14
+ it_behaves_like 'it has an attribute for', :release_code
15
+ it_behaves_like 'it has an attribute for', :show_availability
16
+ it_behaves_like 'it has an attribute for', :grouping_id
17
+ it_behaves_like 'it has an attribute for', :position
18
+ it_behaves_like 'it has an attribute for', :activities, []
19
+
20
+ describe '#empty?' do
21
+ it 'is empty if there is no summary or activites' do
22
+ expect(subject.empty?).to be_true
23
+ end
24
+
25
+ it 'is not empty if there is a summary' do
26
+ subject.summary = 'Summary'
27
+ expect(subject.empty?).to be_false
28
+ end
29
+
30
+ it 'is not empty if there are activites' do
31
+ subject.activities << :activity
32
+ expect(subject.empty?).to be_false
33
+ end
34
+ end
35
+
36
+ describe '#summary?' do
37
+ it 'returns false when summary is nil' do
38
+ expect(subject.summary?).to be_false
39
+ end
40
+
41
+ it 'returns false when summary is an empty string' do
42
+ subject.summary = ''
43
+ expect(subject.summary?).to be_false
44
+ end
45
+
46
+ it 'returns false when summary contains only whitespace' do
47
+ subject.summary = ' '
48
+ expect(subject.summary?).to be_false
49
+ end
50
+
51
+ it 'returns true when summary contains only whitespace' do
52
+ subject.summary = 'Summary'
53
+ expect(subject.summary?).to be_true
54
+ end
55
+ end
56
+
57
+ end
@@ -0,0 +1,18 @@
1
+ require 'spec_helper'
2
+
3
+ module Moodle2CC::Moodle2::Parsers
4
+ describe AnswerParser do
5
+
6
+ it 'Parses Answers' do
7
+ xml = Nokogiri::XML(File.read(fixture_path(File.join('moodle2', 'backup', 'questions.xml'))))
8
+ node = xml.at_xpath('/question_categories/question_category[@id = "2"]/questions/question[@id = "15"]/plugin_qtype_truefalse_question/answers/answer')
9
+ answer = subject.parse(node)
10
+ expect(answer.id).to eq '24'
11
+ expect(answer.answer_text).to eq 'True'
12
+ expect(answer.fraction).to eq 1
13
+ expect(answer.feedback).to eq '<p>Correct</p>'
14
+ expect(answer.feedback_format).to eq '1'
15
+ end
16
+
17
+ end
18
+ end
@@ -0,0 +1,42 @@
1
+ require 'spec_helper'
2
+
3
+ describe Moodle2CC::Moodle2::Parsers::AssignmentParser do
4
+ subject { Moodle2CC::Moodle2::Parsers::AssignmentParser.new(fixture_path(File.join('moodle2', 'backup'))) }
5
+
6
+ it 'should parse an assignment' do
7
+ assignments = subject.parse
8
+ expect(assignments.count).to eq 2
9
+ assign = assignments.first
10
+ expect(assign.id).to eq '1'
11
+ expect(assign.module_id).to eq '4'
12
+ expect(assign.name).to eq 'Assignment Name'
13
+ expect(assign.intro).to eq "<p>Assignemnt\u00A0Description</p>"
14
+ expect(assign.intro_format).to eq '1'
15
+ expect(assign.always_show_description).to eq '1'
16
+ expect(assign.submission_drafts).to eq '1'
17
+ expect(assign.send_notifications).to eq '1'
18
+ expect(assign.send_late_notifications).to eq '1'
19
+ expect(assign.due_date).to eq '1394221500'
20
+ expect(assign.cut_off_date).to eq '1394221500'
21
+ expect(assign.allow_submissions_from_date).to eq '1393616700'
22
+ expect(assign.grade).to eq '100'
23
+ expect(assign.completion_submit).to eq '0'
24
+ expect(assign.require_submission_statement).to eq '0'
25
+ expect(assign.team_submission).to eq '1'
26
+ expect(assign.require_all_team_members_submit).to eq '1'
27
+ expect(assign.team_submission_grouping_id).to eq '0'
28
+ expect(assign.blind_marking).to eq '1'
29
+ expect(assign.reveal_identities).to eq '0'
30
+ expect(assign.online_text_submission).to eq '1'
31
+ expect(assign.file_submission).to eq '1'
32
+ expect(assign.max_file_size_submission).to eq '0'
33
+ expect(assign.max_files_submission).to eq '2'
34
+ expect(assign.submission_comments).to eq '0'
35
+ expect(assign.feedback_comments).to eq '1'
36
+ expect(assign.feedback_files).to eq '1'
37
+ expect(assign.offline_grading_worksheet).to eq '1'
38
+ expect(assign.visible).to eq true
39
+
40
+ end
41
+
42
+ end