redmine_extensions 0.1.11 → 0.1.13

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 (2024) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +0 -6
  3. data/app/assets/javascripts/redmine_extensions/jquery.entityarray.js +1 -1
  4. data/app/assets/javascripts/redmine_extensions/redmine_extensions.js +6 -2
  5. data/app/views/common/_closing_modal.html.erb +2 -2
  6. data/app/views/common/close_modal.js.erb +4 -4
  7. data/lib/generators/redmine_extensions/entity/templates/_sidebar.html.erb.erb +8 -8
  8. data/lib/generators/redmine_extensions/entity/templates/context_menu.html.erb.erb +7 -7
  9. data/lib/generators/redmine_extensions/entity/templates/custom_field.rb.erb +7 -7
  10. data/lib/generators/redmine_extensions/entity/templates/edit.html.erb.erb +18 -18
  11. data/lib/generators/redmine_extensions/entity/templates/edit.js.erb.erb +16 -16
  12. data/lib/generators/redmine_extensions/entity/templates/index.api.rsb.erb +5 -5
  13. data/lib/generators/redmine_extensions/entity/templates/index.html.erb.erb +4 -4
  14. data/lib/generators/redmine_extensions/entity/templates/index.js.erb.erb +10 -10
  15. data/lib/generators/redmine_extensions/entity/templates/mail_added.html.erb.erb +1 -1
  16. data/lib/generators/redmine_extensions/entity/templates/mail_added.text.erb.erb +2 -2
  17. data/lib/generators/redmine_extensions/entity/templates/mail_updated.text.erb.erb +2 -2
  18. data/lib/generators/redmine_extensions/entity/templates/migration.rb.erb +9 -9
  19. data/lib/generators/redmine_extensions/entity/templates/new.html.erb.erb +18 -18
  20. data/lib/generators/redmine_extensions/entity/templates/new.js.erb.erb +16 -16
  21. data/lib/generators/redmine_extensions/entity/templates/routes.rb.erb +12 -12
  22. data/lib/generators/redmine_extensions/entity/templates/show.html.erb.erb +37 -37
  23. data/lib/generators/redmine_extensions/entity/templates/show.js.erb.erb +10 -10
  24. data/lib/redmine_extensions/engine.rb +1 -0
  25. data/lib/redmine_extensions/redmine_patches/patches.rb +1 -1
  26. data/lib/redmine_extensions/version.rb +1 -1
  27. metadata +23 -3997
  28. data/app/assets/javascripts/redmine_extensions/redmine_extensions.js.orig +0 -648
  29. data/app/helpers/redmine_extensions/application_helper.rb.orig +0 -189
  30. data/app/views/easy_entity_assignments/_query_index.html.erb.orig +0 -16
  31. data/config/database.yml +0 -15
  32. data/lib/redmine_extensions/redmine_patches/controllers/issues_controller_patch.rb +0 -9
  33. data/lib/redmine_extensions/version.rb.orig +0 -7
  34. data/spec/redmine/CONTRIBUTING.md +0 -8
  35. data/spec/redmine/Gemfile +0 -109
  36. data/spec/redmine/README.rdoc +0 -5
  37. data/spec/redmine/Rakefile +0 -7
  38. data/spec/redmine/app/controllers/account_controller.rb +0 -354
  39. data/spec/redmine/app/controllers/activities_controller.rb +0 -77
  40. data/spec/redmine/app/controllers/admin_controller.rb +0 -84
  41. data/spec/redmine/app/controllers/application_controller.rb +0 -662
  42. data/spec/redmine/app/controllers/attachments_controller.rb +0 -191
  43. data/spec/redmine/app/controllers/auth_sources_controller.rb +0 -97
  44. data/spec/redmine/app/controllers/auto_completes_controller.rb +0 -44
  45. data/spec/redmine/app/controllers/boards_controller.rb +0 -111
  46. data/spec/redmine/app/controllers/calendars_controller.rb +0 -56
  47. data/spec/redmine/app/controllers/comments_controller.rb +0 -53
  48. data/spec/redmine/app/controllers/context_menus_controller.rb +0 -97
  49. data/spec/redmine/app/controllers/custom_fields_controller.rb +0 -88
  50. data/spec/redmine/app/controllers/documents_controller.rb +0 -95
  51. data/spec/redmine/app/controllers/email_addresses_controller.rb +0 -106
  52. data/spec/redmine/app/controllers/enumerations_controller.rb +0 -96
  53. data/spec/redmine/app/controllers/files_controller.rb +0 -62
  54. data/spec/redmine/app/controllers/gantts_controller.rb +0 -48
  55. data/spec/redmine/app/controllers/groups_controller.rb +0 -149
  56. data/spec/redmine/app/controllers/issue_categories_controller.rb +0 -122
  57. data/spec/redmine/app/controllers/issue_relations_controller.rb +0 -92
  58. data/spec/redmine/app/controllers/issue_statuses_controller.rb +0 -81
  59. data/spec/redmine/app/controllers/issues_controller.rb +0 -517
  60. data/spec/redmine/app/controllers/journals_controller.rb +0 -109
  61. data/spec/redmine/app/controllers/mail_handler_controller.rb +0 -44
  62. data/spec/redmine/app/controllers/members_controller.rb +0 -129
  63. data/spec/redmine/app/controllers/messages_controller.rb +0 -142
  64. data/spec/redmine/app/controllers/my_controller.rb +0 -211
  65. data/spec/redmine/app/controllers/news_controller.rb +0 -111
  66. data/spec/redmine/app/controllers/previews_controller.rb +0 -53
  67. data/spec/redmine/app/controllers/principal_memberships_controller.rb +0 -80
  68. data/spec/redmine/app/controllers/project_enumerations_controller.rb +0 -42
  69. data/spec/redmine/app/controllers/projects_controller.rb +0 -234
  70. data/spec/redmine/app/controllers/queries_controller.rb +0 -128
  71. data/spec/redmine/app/controllers/reports_controller.rb +0 -95
  72. data/spec/redmine/app/controllers/repositories_controller.rb +0 -439
  73. data/spec/redmine/app/controllers/roles_controller.rb +0 -110
  74. data/spec/redmine/app/controllers/search_controller.rb +0 -87
  75. data/spec/redmine/app/controllers/settings_controller.rb +0 -76
  76. data/spec/redmine/app/controllers/sys_controller.rb +0 -81
  77. data/spec/redmine/app/controllers/timelog_controller.rb +0 -281
  78. data/spec/redmine/app/controllers/trackers_controller.rb +0 -101
  79. data/spec/redmine/app/controllers/users_controller.rb +0 -190
  80. data/spec/redmine/app/controllers/versions_controller.rb +0 -182
  81. data/spec/redmine/app/controllers/watchers_controller.rb +0 -131
  82. data/spec/redmine/app/controllers/welcome_controller.rb +0 -30
  83. data/spec/redmine/app/controllers/wiki_controller.rb +0 -367
  84. data/spec/redmine/app/controllers/wikis_controller.rb +0 -36
  85. data/spec/redmine/app/controllers/workflows_controller.rb +0 -142
  86. data/spec/redmine/app/helpers/account_helper.rb +0 -21
  87. data/spec/redmine/app/helpers/activities_helper.rb +0 -33
  88. data/spec/redmine/app/helpers/admin_helper.rb +0 -35
  89. data/spec/redmine/app/helpers/application_helper.rb +0 -1335
  90. data/spec/redmine/app/helpers/attachments_helper.rb +0 -69
  91. data/spec/redmine/app/helpers/auth_sources_helper.rb +0 -24
  92. data/spec/redmine/app/helpers/boards_helper.rb +0 -41
  93. data/spec/redmine/app/helpers/calendars_helper.rb +0 -58
  94. data/spec/redmine/app/helpers/context_menus_helper.rb +0 -50
  95. data/spec/redmine/app/helpers/custom_fields_helper.rb +0 -166
  96. data/spec/redmine/app/helpers/documents_helper.rb +0 -21
  97. data/spec/redmine/app/helpers/email_addresses_helper.rb +0 -38
  98. data/spec/redmine/app/helpers/enumerations_helper.rb +0 -21
  99. data/spec/redmine/app/helpers/gantt_helper.rb +0 -43
  100. data/spec/redmine/app/helpers/groups_helper.rb +0 -46
  101. data/spec/redmine/app/helpers/issue_categories_helper.rb +0 -21
  102. data/spec/redmine/app/helpers/issue_relations_helper.rb +0 -25
  103. data/spec/redmine/app/helpers/issue_statuses_helper.rb +0 -21
  104. data/spec/redmine/app/helpers/issues_helper.rb +0 -516
  105. data/spec/redmine/app/helpers/journals_helper.rb +0 -46
  106. data/spec/redmine/app/helpers/mail_handler_helper.rb +0 -21
  107. data/spec/redmine/app/helpers/members_helper.rb +0 -38
  108. data/spec/redmine/app/helpers/messages_helper.rb +0 -21
  109. data/spec/redmine/app/helpers/my_helper.rb +0 -77
  110. data/spec/redmine/app/helpers/news_helper.rb +0 -21
  111. data/spec/redmine/app/helpers/principal_memberships_helper.rb +0 -56
  112. data/spec/redmine/app/helpers/projects_helper.rb +0 -115
  113. data/spec/redmine/app/helpers/queries_helper.rb +0 -223
  114. data/spec/redmine/app/helpers/reports_helper.rb +0 -43
  115. data/spec/redmine/app/helpers/repositories_helper.rb +0 -310
  116. data/spec/redmine/app/helpers/roles_helper.rb +0 -21
  117. data/spec/redmine/app/helpers/routes_helper.rb +0 -69
  118. data/spec/redmine/app/helpers/search_helper.rb +0 -69
  119. data/spec/redmine/app/helpers/settings_helper.rb +0 -171
  120. data/spec/redmine/app/helpers/sort_helper.rb +0 -261
  121. data/spec/redmine/app/helpers/timelog_helper.rb +0 -135
  122. data/spec/redmine/app/helpers/trackers_helper.rb +0 -21
  123. data/spec/redmine/app/helpers/users_helper.rb +0 -60
  124. data/spec/redmine/app/helpers/versions_helper.rb +0 -76
  125. data/spec/redmine/app/helpers/watchers_helper.rb +0 -78
  126. data/spec/redmine/app/helpers/welcome_helper.rb +0 -21
  127. data/spec/redmine/app/helpers/wiki_helper.rb +0 -54
  128. data/spec/redmine/app/helpers/workflows_helper.rb +0 -95
  129. data/spec/redmine/app/models/attachment.rb +0 -376
  130. data/spec/redmine/app/models/auth_source.rb +0 -93
  131. data/spec/redmine/app/models/auth_source_ldap.rb +0 -196
  132. data/spec/redmine/app/models/board.rb +0 -96
  133. data/spec/redmine/app/models/change.rb +0 -34
  134. data/spec/redmine/app/models/changeset.rb +0 -294
  135. data/spec/redmine/app/models/comment.rb +0 -38
  136. data/spec/redmine/app/models/custom_field.rb +0 -283
  137. data/spec/redmine/app/models/custom_field_value.rb +0 -56
  138. data/spec/redmine/app/models/custom_value.rb +0 -50
  139. data/spec/redmine/app/models/document.rb +0 -75
  140. data/spec/redmine/app/models/document_category.rb +0 -40
  141. data/spec/redmine/app/models/document_category_custom_field.rb +0 -22
  142. data/spec/redmine/app/models/document_custom_field.rb +0 -22
  143. data/spec/redmine/app/models/email_address.rb +0 -54
  144. data/spec/redmine/app/models/enabled_module.rb +0 -40
  145. data/spec/redmine/app/models/enumeration.rb +0 -142
  146. data/spec/redmine/app/models/group.rb +0 -117
  147. data/spec/redmine/app/models/group_anonymous.rb +0 -26
  148. data/spec/redmine/app/models/group_builtin.rb +0 -56
  149. data/spec/redmine/app/models/group_custom_field.rb +0 -22
  150. data/spec/redmine/app/models/group_non_member.rb +0 -26
  151. data/spec/redmine/app/models/issue.rb +0 -1650
  152. data/spec/redmine/app/models/issue_category.rb +0 -49
  153. data/spec/redmine/app/models/issue_custom_field.rb +0 -45
  154. data/spec/redmine/app/models/issue_priority.rb +0 -68
  155. data/spec/redmine/app/models/issue_priority_custom_field.rb +0 -23
  156. data/spec/redmine/app/models/issue_query.rb +0 -540
  157. data/spec/redmine/app/models/issue_relation.rb +0 -215
  158. data/spec/redmine/app/models/issue_status.rb +0 -123
  159. data/spec/redmine/app/models/journal.rb +0 -305
  160. data/spec/redmine/app/models/journal_detail.rb +0 -50
  161. data/spec/redmine/app/models/mail_handler.rb +0 -565
  162. data/spec/redmine/app/models/mailer.rb +0 -538
  163. data/spec/redmine/app/models/member.rb +0 -198
  164. data/spec/redmine/app/models/member_role.rb +0 -80
  165. data/spec/redmine/app/models/message.rb +0 -121
  166. data/spec/redmine/app/models/news.rb +0 -98
  167. data/spec/redmine/app/models/principal.rb +0 -162
  168. data/spec/redmine/app/models/project.rb +0 -1007
  169. data/spec/redmine/app/models/project_custom_field.rb +0 -22
  170. data/spec/redmine/app/models/query.rb +0 -904
  171. data/spec/redmine/app/models/repository.rb +0 -510
  172. data/spec/redmine/app/models/repository/bazaar.rb +0 -124
  173. data/spec/redmine/app/models/repository/cvs.rb +0 -213
  174. data/spec/redmine/app/models/repository/darcs.rb +0 -114
  175. data/spec/redmine/app/models/repository/filesystem.rb +0 -50
  176. data/spec/redmine/app/models/repository/git.rb +0 -263
  177. data/spec/redmine/app/models/repository/mercurial.rb +0 -211
  178. data/spec/redmine/app/models/repository/subversion.rb +0 -117
  179. data/spec/redmine/app/models/role.rb +0 -233
  180. data/spec/redmine/app/models/setting.rb +0 -276
  181. data/spec/redmine/app/models/time_entry.rb +0 -160
  182. data/spec/redmine/app/models/time_entry_activity.rb +0 -38
  183. data/spec/redmine/app/models/time_entry_activity_custom_field.rb +0 -22
  184. data/spec/redmine/app/models/time_entry_custom_field.rb +0 -23
  185. data/spec/redmine/app/models/time_entry_query.rb +0 -140
  186. data/spec/redmine/app/models/token.rb +0 -85
  187. data/spec/redmine/app/models/tracker.rb +0 -114
  188. data/spec/redmine/app/models/user.rb +0 -862
  189. data/spec/redmine/app/models/user_custom_field.rb +0 -23
  190. data/spec/redmine/app/models/user_preference.rb +0 -62
  191. data/spec/redmine/app/models/version.rb +0 -300
  192. data/spec/redmine/app/models/version_custom_field.rb +0 -22
  193. data/spec/redmine/app/models/watcher.rb +0 -81
  194. data/spec/redmine/app/models/wiki.rb +0 -106
  195. data/spec/redmine/app/models/wiki_content.rb +0 -168
  196. data/spec/redmine/app/models/wiki_page.rb +0 -299
  197. data/spec/redmine/app/models/wiki_redirect.rb +0 -39
  198. data/spec/redmine/app/models/workflow_permission.rb +0 -68
  199. data/spec/redmine/app/models/workflow_rule.rb +0 -74
  200. data/spec/redmine/app/models/workflow_transition.rb +0 -85
  201. data/spec/redmine/app/views/account/login.html.erb +0 -47
  202. data/spec/redmine/app/views/account/logout.html.erb +0 -3
  203. data/spec/redmine/app/views/account/lost_password.html.erb +0 -11
  204. data/spec/redmine/app/views/account/password_recovery.html.erb +0 -20
  205. data/spec/redmine/app/views/account/register.html.erb +0 -34
  206. data/spec/redmine/app/views/activities/index.html.erb +0 -68
  207. data/spec/redmine/app/views/admin/_menu.html.erb +0 -3
  208. data/spec/redmine/app/views/admin/_no_data.html.erb +0 -8
  209. data/spec/redmine/app/views/admin/index.html.erb +0 -8
  210. data/spec/redmine/app/views/admin/info.html.erb +0 -19
  211. data/spec/redmine/app/views/admin/plugins.html.erb +0 -63
  212. data/spec/redmine/app/views/admin/projects.html.erb +0 -43
  213. data/spec/redmine/app/views/attachments/_form.html.erb +0 -31
  214. data/spec/redmine/app/views/attachments/_links.html.erb +0 -38
  215. data/spec/redmine/app/views/attachments/destroy.js.erb +0 -1
  216. data/spec/redmine/app/views/attachments/diff.html.erb +0 -22
  217. data/spec/redmine/app/views/attachments/edit.html.erb +0 -30
  218. data/spec/redmine/app/views/attachments/file.html.erb +0 -17
  219. data/spec/redmine/app/views/attachments/show.api.rsb +0 -1
  220. data/spec/redmine/app/views/attachments/upload.api.rsb +0 -3
  221. data/spec/redmine/app/views/attachments/upload.js.erb +0 -14
  222. data/spec/redmine/app/views/auth_sources/_form.html.erb +0 -6
  223. data/spec/redmine/app/views/auth_sources/_form_auth_source_ldap.html.erb +0 -24
  224. data/spec/redmine/app/views/auth_sources/edit.html.erb +0 -6
  225. data/spec/redmine/app/views/auth_sources/index.html.erb +0 -31
  226. data/spec/redmine/app/views/auth_sources/new.html.erb +0 -7
  227. data/spec/redmine/app/views/auto_completes/issues.html.erb +0 -7
  228. data/spec/redmine/app/views/boards/_form.html.erb +0 -9
  229. data/spec/redmine/app/views/boards/edit.html.erb +0 -6
  230. data/spec/redmine/app/views/boards/index.html.erb +0 -38
  231. data/spec/redmine/app/views/boards/new.html.erb +0 -6
  232. data/spec/redmine/app/views/boards/show.html.erb +0 -66
  233. data/spec/redmine/app/views/calendars/show.html.erb +0 -45
  234. data/spec/redmine/app/views/common/_calendar.html.erb +0 -32
  235. data/spec/redmine/app/views/common/_diff.html.erb +0 -68
  236. data/spec/redmine/app/views/common/_file.html.erb +0 -18
  237. data/spec/redmine/app/views/common/_preview.html.erb +0 -3
  238. data/spec/redmine/app/views/common/_tabs.html.erb +0 -26
  239. data/spec/redmine/app/views/common/error.html.erb +0 -8
  240. data/spec/redmine/app/views/common/error_messages.api.rsb +0 -5
  241. data/spec/redmine/app/views/common/feed.atom.builder +0 -32
  242. data/spec/redmine/app/views/context_menus/issues.html.erb +0 -139
  243. data/spec/redmine/app/views/context_menus/time_entries.html.erb +0 -47
  244. data/spec/redmine/app/views/custom_fields/_form.html.erb +0 -114
  245. data/spec/redmine/app/views/custom_fields/_index.html.erb +0 -30
  246. data/spec/redmine/app/views/custom_fields/edit.html.erb +0 -7
  247. data/spec/redmine/app/views/custom_fields/formats/_bool.html.erb +0 -3
  248. data/spec/redmine/app/views/custom_fields/formats/_date.html.erb +0 -3
  249. data/spec/redmine/app/views/custom_fields/formats/_link.html.erb +0 -3
  250. data/spec/redmine/app/views/custom_fields/formats/_list.html.erb +0 -7
  251. data/spec/redmine/app/views/custom_fields/formats/_numeric.html.erb +0 -3
  252. data/spec/redmine/app/views/custom_fields/formats/_regexp.html.erb +0 -9
  253. data/spec/redmine/app/views/custom_fields/formats/_string.html.erb +0 -4
  254. data/spec/redmine/app/views/custom_fields/formats/_text.html.erb +0 -3
  255. data/spec/redmine/app/views/custom_fields/formats/_user.html.erb +0 -24
  256. data/spec/redmine/app/views/custom_fields/formats/_version.html.erb +0 -24
  257. data/spec/redmine/app/views/custom_fields/index.api.rsb +0 -43
  258. data/spec/redmine/app/views/custom_fields/index.html.erb +0 -11
  259. data/spec/redmine/app/views/custom_fields/new.html.erb +0 -19
  260. data/spec/redmine/app/views/custom_fields/new.js.erb +0 -1
  261. data/spec/redmine/app/views/custom_fields/select_type.html.erb +0 -15
  262. data/spec/redmine/app/views/documents/_document.html.erb +0 -6
  263. data/spec/redmine/app/views/documents/_form.html.erb +0 -19
  264. data/spec/redmine/app/views/documents/edit.html.erb +0 -8
  265. data/spec/redmine/app/views/documents/index.html.erb +0 -40
  266. data/spec/redmine/app/views/documents/new.html.erb +0 -6
  267. data/spec/redmine/app/views/documents/show.html.erb +0 -41
  268. data/spec/redmine/app/views/email_addresses/_index.html.erb +0 -26
  269. data/spec/redmine/app/views/email_addresses/index.html.erb +0 -2
  270. data/spec/redmine/app/views/email_addresses/index.js.erb +0 -3
  271. data/spec/redmine/app/views/enumerations/_form.html.erb +0 -11
  272. data/spec/redmine/app/views/enumerations/destroy.html.erb +0 -12
  273. data/spec/redmine/app/views/enumerations/edit.html.erb +0 -6
  274. data/spec/redmine/app/views/enumerations/index.api.rsb +0 -9
  275. data/spec/redmine/app/views/enumerations/index.html.erb +0 -32
  276. data/spec/redmine/app/views/enumerations/new.html.erb +0 -7
  277. data/spec/redmine/app/views/files/index.html.erb +0 -46
  278. data/spec/redmine/app/views/files/new.html.erb +0 -16
  279. data/spec/redmine/app/views/gantts/show.html.erb +0 -334
  280. data/spec/redmine/app/views/groups/_form.html.erb +0 -10
  281. data/spec/redmine/app/views/groups/_general.html.erb +0 -4
  282. data/spec/redmine/app/views/groups/_memberships.html.erb +0 -1
  283. data/spec/redmine/app/views/groups/_new_users_form.html.erb +0 -9
  284. data/spec/redmine/app/views/groups/_new_users_modal.html.erb +0 -9
  285. data/spec/redmine/app/views/groups/_users.html.erb +0 -22
  286. data/spec/redmine/app/views/groups/add_users.js.erb +0 -5
  287. data/spec/redmine/app/views/groups/autocomplete_for_user.js.erb +0 -1
  288. data/spec/redmine/app/views/groups/destroy_membership.js.erb +0 -1
  289. data/spec/redmine/app/views/groups/edit.html.erb +0 -3
  290. data/spec/redmine/app/views/groups/edit_membership.js.erb +0 -6
  291. data/spec/redmine/app/views/groups/index.api.rsb +0 -11
  292. data/spec/redmine/app/views/groups/index.html.erb +0 -25
  293. data/spec/redmine/app/views/groups/new.html.erb +0 -9
  294. data/spec/redmine/app/views/groups/new_users.html.erb +0 -6
  295. data/spec/redmine/app/views/groups/new_users.js.erb +0 -2
  296. data/spec/redmine/app/views/groups/remove_user.js.erb +0 -1
  297. data/spec/redmine/app/views/groups/show.api.rsb +0 -31
  298. data/spec/redmine/app/views/groups/show.html.erb +0 -7
  299. data/spec/redmine/app/views/issue_categories/_form.html.erb +0 -6
  300. data/spec/redmine/app/views/issue_categories/_new_modal.html.erb +0 -9
  301. data/spec/redmine/app/views/issue_categories/create.js.erb +0 -3
  302. data/spec/redmine/app/views/issue_categories/destroy.html.erb +0 -16
  303. data/spec/redmine/app/views/issue_categories/edit.html.erb +0 -7
  304. data/spec/redmine/app/views/issue_categories/index.api.rsb +0 -10
  305. data/spec/redmine/app/views/issue_categories/new.html.erb +0 -7
  306. data/spec/redmine/app/views/issue_categories/new.js.erb +0 -2
  307. data/spec/redmine/app/views/issue_categories/show.api.rsb +0 -6
  308. data/spec/redmine/app/views/issue_relations/_form.html.erb +0 -14
  309. data/spec/redmine/app/views/issue_relations/create.js.erb +0 -7
  310. data/spec/redmine/app/views/issue_relations/destroy.js.erb +0 -1
  311. data/spec/redmine/app/views/issue_relations/index.api.rsb +0 -11
  312. data/spec/redmine/app/views/issue_relations/show.api.rsb +0 -7
  313. data/spec/redmine/app/views/issue_statuses/_form.html.erb +0 -11
  314. data/spec/redmine/app/views/issue_statuses/edit.html.erb +0 -6
  315. data/spec/redmine/app/views/issue_statuses/index.api.rsb +0 -9
  316. data/spec/redmine/app/views/issue_statuses/index.html.erb +0 -37
  317. data/spec/redmine/app/views/issue_statuses/new.html.erb +0 -6
  318. data/spec/redmine/app/views/issues/_action_menu.html.erb +0 -7
  319. data/spec/redmine/app/views/issues/_attributes.html.erb +0 -79
  320. data/spec/redmine/app/views/issues/_changesets.html.erb +0 -10
  321. data/spec/redmine/app/views/issues/_conflict.html.erb +0 -26
  322. data/spec/redmine/app/views/issues/_edit.html.erb +0 -52
  323. data/spec/redmine/app/views/issues/_form.html.erb +0 -55
  324. data/spec/redmine/app/views/issues/_form_custom_fields.html.erb +0 -14
  325. data/spec/redmine/app/views/issues/_history.html.erb +0 -23
  326. data/spec/redmine/app/views/issues/_list.html.erb +0 -45
  327. data/spec/redmine/app/views/issues/_list_simple.html.erb +0 -29
  328. data/spec/redmine/app/views/issues/_relations.html.erb +0 -41
  329. data/spec/redmine/app/views/issues/_sidebar.html.erb +0 -21
  330. data/spec/redmine/app/views/issues/bulk_edit.html.erb +0 -207
  331. data/spec/redmine/app/views/issues/bulk_edit.js.erb +0 -1
  332. data/spec/redmine/app/views/issues/destroy.html.erb +0 -15
  333. data/spec/redmine/app/views/issues/edit.html.erb +0 -6
  334. data/spec/redmine/app/views/issues/edit.js.erb +0 -7
  335. data/spec/redmine/app/views/issues/index.api.rsb +0 -36
  336. data/spec/redmine/app/views/issues/index.html.erb +0 -114
  337. data/spec/redmine/app/views/issues/index.pdf.erb +0 -1
  338. data/spec/redmine/app/views/issues/new.html.erb +0 -59
  339. data/spec/redmine/app/views/issues/new.js.erb +0 -1
  340. data/spec/redmine/app/views/issues/show.api.rsb +0 -75
  341. data/spec/redmine/app/views/issues/show.html.erb +0 -162
  342. data/spec/redmine/app/views/issues/show.pdf.erb +0 -1
  343. data/spec/redmine/app/views/journals/_notes_form.html.erb +0 -18
  344. data/spec/redmine/app/views/journals/diff.html.erb +0 -13
  345. data/spec/redmine/app/views/journals/edit.js.erb +0 -8
  346. data/spec/redmine/app/views/journals/index.builder +0 -31
  347. data/spec/redmine/app/views/journals/new.js.erb +0 -10
  348. data/spec/redmine/app/views/journals/update.js.erb +0 -9
  349. data/spec/redmine/app/views/layouts/admin.html.erb +0 -8
  350. data/spec/redmine/app/views/layouts/base.html.erb +0 -80
  351. data/spec/redmine/app/views/layouts/mailer.html.erb +0 -61
  352. data/spec/redmine/app/views/layouts/mailer.text.erb +0 -8
  353. data/spec/redmine/app/views/mail_handler/new.html.erb +0 -43
  354. data/spec/redmine/app/views/mailer/_issue.html.erb +0 -14
  355. data/spec/redmine/app/views/mailer/_issue.text.erb +0 -13
  356. data/spec/redmine/app/views/mailer/account_activated.html.erb +0 -2
  357. data/spec/redmine/app/views/mailer/account_activated.text.erb +0 -2
  358. data/spec/redmine/app/views/mailer/account_activation_request.html.erb +0 -2
  359. data/spec/redmine/app/views/mailer/account_activation_request.text.erb +0 -2
  360. data/spec/redmine/app/views/mailer/account_information.html.erb +0 -11
  361. data/spec/redmine/app/views/mailer/account_information.text.erb +0 -6
  362. data/spec/redmine/app/views/mailer/attachments_added.html.erb +0 -5
  363. data/spec/redmine/app/views/mailer/attachments_added.text.erb +0 -4
  364. data/spec/redmine/app/views/mailer/document_added.html.erb +0 -3
  365. data/spec/redmine/app/views/mailer/document_added.text.erb +0 -4
  366. data/spec/redmine/app/views/mailer/issue_add.html.erb +0 -3
  367. data/spec/redmine/app/views/mailer/issue_add.text.erb +0 -4
  368. data/spec/redmine/app/views/mailer/issue_edit.html.erb +0 -14
  369. data/spec/redmine/app/views/mailer/issue_edit.text.erb +0 -12
  370. data/spec/redmine/app/views/mailer/lost_password.html.erb +0 -4
  371. data/spec/redmine/app/views/mailer/lost_password.text.erb +0 -4
  372. data/spec/redmine/app/views/mailer/message_posted.html.erb +0 -4
  373. data/spec/redmine/app/views/mailer/message_posted.text.erb +0 -4
  374. data/spec/redmine/app/views/mailer/news_added.html.erb +0 -4
  375. data/spec/redmine/app/views/mailer/news_added.text.erb +0 -5
  376. data/spec/redmine/app/views/mailer/news_comment_added.html.erb +0 -5
  377. data/spec/redmine/app/views/mailer/news_comment_added.text.erb +0 -6
  378. data/spec/redmine/app/views/mailer/register.html.erb +0 -2
  379. data/spec/redmine/app/views/mailer/register.text.erb +0 -2
  380. data/spec/redmine/app/views/mailer/reminder.html.erb +0 -9
  381. data/spec/redmine/app/views/mailer/reminder.text.erb +0 -7
  382. data/spec/redmine/app/views/mailer/test_email.html.erb +0 -2
  383. data/spec/redmine/app/views/mailer/test_email.text.erb +0 -2
  384. data/spec/redmine/app/views/mailer/wiki_content_added.html.erb +0 -3
  385. data/spec/redmine/app/views/mailer/wiki_content_added.text.erb +0 -5
  386. data/spec/redmine/app/views/mailer/wiki_content_updated.html.erb +0 -6
  387. data/spec/redmine/app/views/mailer/wiki_content_updated.text.erb +0 -8
  388. data/spec/redmine/app/views/members/_new_form.html.erb +0 -16
  389. data/spec/redmine/app/views/members/_new_modal.html.erb +0 -9
  390. data/spec/redmine/app/views/members/autocomplete.js.erb +0 -1
  391. data/spec/redmine/app/views/members/create.js.erb +0 -12
  392. data/spec/redmine/app/views/members/destroy.js.erb +0 -2
  393. data/spec/redmine/app/views/members/index.api.rsb +0 -18
  394. data/spec/redmine/app/views/members/new.html.erb +0 -6
  395. data/spec/redmine/app/views/members/new.js.erb +0 -2
  396. data/spec/redmine/app/views/members/show.api.rsb +0 -14
  397. data/spec/redmine/app/views/members/update.js.erb +0 -3
  398. data/spec/redmine/app/views/messages/_form.html.erb +0 -32
  399. data/spec/redmine/app/views/messages/edit.html.erb +0 -17
  400. data/spec/redmine/app/views/messages/new.html.erb +0 -9
  401. data/spec/redmine/app/views/messages/quote.js.erb +0 -4
  402. data/spec/redmine/app/views/messages/show.html.erb +0 -85
  403. data/spec/redmine/app/views/my/_block.html.erb +0 -10
  404. data/spec/redmine/app/views/my/_sidebar.html.erb +0 -36
  405. data/spec/redmine/app/views/my/account.html.erb +0 -59
  406. data/spec/redmine/app/views/my/blocks/_calendar.html.erb +0 -6
  407. data/spec/redmine/app/views/my/blocks/_documents.html.erb +0 -3
  408. data/spec/redmine/app/views/my/blocks/_issuesassignedtome.html.erb +0 -15
  409. data/spec/redmine/app/views/my/blocks/_issuesreportedbyme.html.erb +0 -15
  410. data/spec/redmine/app/views/my/blocks/_issueswatched.html.erb +0 -8
  411. data/spec/redmine/app/views/my/blocks/_news.html.erb +0 -3
  412. data/spec/redmine/app/views/my/blocks/_timelog.html.erb +0 -58
  413. data/spec/redmine/app/views/my/destroy.html.erb +0 -11
  414. data/spec/redmine/app/views/my/page.html.erb +0 -36
  415. data/spec/redmine/app/views/my/page_layout.html.erb +0 -41
  416. data/spec/redmine/app/views/my/password.html.erb +0 -24
  417. data/spec/redmine/app/views/my/show_api_key.html.erb +0 -7
  418. data/spec/redmine/app/views/my/show_api_key.js.erb +0 -1
  419. data/spec/redmine/app/views/news/_form.html.erb +0 -10
  420. data/spec/redmine/app/views/news/_news.html.erb +0 -6
  421. data/spec/redmine/app/views/news/edit.html.erb +0 -12
  422. data/spec/redmine/app/views/news/index.api.rsb +0 -14
  423. data/spec/redmine/app/views/news/index.html.erb +0 -51
  424. data/spec/redmine/app/views/news/new.html.erb +0 -9
  425. data/spec/redmine/app/views/news/show.html.erb +0 -62
  426. data/spec/redmine/app/views/previews/issue.html.erb +0 -11
  427. data/spec/redmine/app/views/principal_memberships/_index.html.erb +0 -52
  428. data/spec/redmine/app/views/principal_memberships/_new_form.html.erb +0 -24
  429. data/spec/redmine/app/views/principal_memberships/_new_modal.html.erb +0 -9
  430. data/spec/redmine/app/views/principal_memberships/create.js.erb +0 -12
  431. data/spec/redmine/app/views/principal_memberships/destroy.js.erb +0 -1
  432. data/spec/redmine/app/views/principal_memberships/new.html.erb +0 -6
  433. data/spec/redmine/app/views/principal_memberships/new.js.erb +0 -13
  434. data/spec/redmine/app/views/principal_memberships/update.js.erb +0 -6
  435. data/spec/redmine/app/views/projects/_edit.html.erb +0 -4
  436. data/spec/redmine/app/views/projects/_form.html.erb +0 -102
  437. data/spec/redmine/app/views/projects/_members_box.html.erb +0 -8
  438. data/spec/redmine/app/views/projects/_sidebar.html.erb +0 -14
  439. data/spec/redmine/app/views/projects/copy.html.erb +0 -20
  440. data/spec/redmine/app/views/projects/destroy.html.erb +0 -19
  441. data/spec/redmine/app/views/projects/index.api.rsb +0 -19
  442. data/spec/redmine/app/views/projects/index.html.erb +0 -33
  443. data/spec/redmine/app/views/projects/new.html.erb +0 -7
  444. data/spec/redmine/app/views/projects/settings.html.erb +0 -5
  445. data/spec/redmine/app/views/projects/settings/_activities.html.erb +0 -42
  446. data/spec/redmine/app/views/projects/settings/_boards.html.erb +0 -36
  447. data/spec/redmine/app/views/projects/settings/_issue_categories.html.erb +0 -29
  448. data/spec/redmine/app/views/projects/settings/_members.html.erb +0 -62
  449. data/spec/redmine/app/views/projects/settings/_modules.html.erb +0 -18
  450. data/spec/redmine/app/views/projects/settings/_repositories.html.erb +0 -41
  451. data/spec/redmine/app/views/projects/settings/_versions.html.erb +0 -41
  452. data/spec/redmine/app/views/projects/settings/_wiki.html.erb +0 -19
  453. data/spec/redmine/app/views/projects/show.api.rsb +0 -16
  454. data/spec/redmine/app/views/projects/show.html.erb +0 -85
  455. data/spec/redmine/app/views/queries/_columns.html.erb +0 -40
  456. data/spec/redmine/app/views/queries/_filters.html.erb +0 -28
  457. data/spec/redmine/app/views/queries/_form.html.erb +0 -89
  458. data/spec/redmine/app/views/queries/edit.html.erb +0 -6
  459. data/spec/redmine/app/views/queries/index.api.rsb +0 -10
  460. data/spec/redmine/app/views/queries/index.html.erb +0 -25
  461. data/spec/redmine/app/views/queries/new.html.erb +0 -6
  462. data/spec/redmine/app/views/reports/_details.html.erb +0 -29
  463. data/spec/redmine/app/views/reports/_simple.html.erb +0 -23
  464. data/spec/redmine/app/views/reports/issue_report.html.erb +0 -33
  465. data/spec/redmine/app/views/reports/issue_report_details.html.erb +0 -7
  466. data/spec/redmine/app/views/repositories/_breadcrumbs.html.erb +0 -31
  467. data/spec/redmine/app/views/repositories/_dir_list.html.erb +0 -19
  468. data/spec/redmine/app/views/repositories/_dir_list_content.html.erb +0 -31
  469. data/spec/redmine/app/views/repositories/_form.html.erb +0 -31
  470. data/spec/redmine/app/views/repositories/_link_to_functions.html.erb +0 -19
  471. data/spec/redmine/app/views/repositories/_navigation.html.erb +0 -34
  472. data/spec/redmine/app/views/repositories/_related_issues.html.erb +0 -40
  473. data/spec/redmine/app/views/repositories/_revision_graph.html.erb +0 -18
  474. data/spec/redmine/app/views/repositories/_revisions.html.erb +0 -51
  475. data/spec/redmine/app/views/repositories/add_related_issue.js.erb +0 -7
  476. data/spec/redmine/app/views/repositories/annotate.html.erb +0 -46
  477. data/spec/redmine/app/views/repositories/changes.html.erb +0 -20
  478. data/spec/redmine/app/views/repositories/committers.html.erb +0 -42
  479. data/spec/redmine/app/views/repositories/diff.html.erb +0 -27
  480. data/spec/redmine/app/views/repositories/edit.html.erb +0 -5
  481. data/spec/redmine/app/views/repositories/entry.html.erb +0 -15
  482. data/spec/redmine/app/views/repositories/new.html.erb +0 -5
  483. data/spec/redmine/app/views/repositories/new.js.erb +0 -1
  484. data/spec/redmine/app/views/repositories/remove_related_issue.js.erb +0 -1
  485. data/spec/redmine/app/views/repositories/revision.html.erb +0 -103
  486. data/spec/redmine/app/views/repositories/revisions.html.erb +0 -34
  487. data/spec/redmine/app/views/repositories/show.html.erb +0 -77
  488. data/spec/redmine/app/views/repositories/stats.html.erb +0 -20
  489. data/spec/redmine/app/views/roles/_form.html.erb +0 -71
  490. data/spec/redmine/app/views/roles/edit.html.erb +0 -6
  491. data/spec/redmine/app/views/roles/index.api.rsb +0 -8
  492. data/spec/redmine/app/views/roles/index.html.erb +0 -34
  493. data/spec/redmine/app/views/roles/new.html.erb +0 -6
  494. data/spec/redmine/app/views/roles/permissions.html.erb +0 -55
  495. data/spec/redmine/app/views/roles/show.api.rsb +0 -9
  496. data/spec/redmine/app/views/search/index.html.erb +0 -77
  497. data/spec/redmine/app/views/settings/_authentication.html.erb +0 -44
  498. data/spec/redmine/app/views/settings/_display.html.erb +0 -30
  499. data/spec/redmine/app/views/settings/_general.html.erb +0 -42
  500. data/spec/redmine/app/views/settings/_issues.html.erb +0 -44
  501. data/spec/redmine/app/views/settings/_mail_handler.html.erb +0 -28
  502. data/spec/redmine/app/views/settings/_notifications.html.erb +0 -42
  503. data/spec/redmine/app/views/settings/_projects.html.erb +0 -20
  504. data/spec/redmine/app/views/settings/_repositories.html.erb +0 -158
  505. data/spec/redmine/app/views/settings/edit.html.erb +0 -5
  506. data/spec/redmine/app/views/settings/plugin.html.erb +0 -10
  507. data/spec/redmine/app/views/sudo_mode/_new_modal.html.erb +0 -18
  508. data/spec/redmine/app/views/sudo_mode/new.html.erb +0 -15
  509. data/spec/redmine/app/views/sudo_mode/new.js.erb +0 -4
  510. data/spec/redmine/app/views/timelog/_date_range.html.erb +0 -36
  511. data/spec/redmine/app/views/timelog/_form.html.erb +0 -47
  512. data/spec/redmine/app/views/timelog/_list.html.erb +0 -41
  513. data/spec/redmine/app/views/timelog/_report_criteria.html.erb +0 -19
  514. data/spec/redmine/app/views/timelog/bulk_edit.html.erb +0 -50
  515. data/spec/redmine/app/views/timelog/edit.html.erb +0 -6
  516. data/spec/redmine/app/views/timelog/index.api.rsb +0 -18
  517. data/spec/redmine/app/views/timelog/index.html.erb +0 -48
  518. data/spec/redmine/app/views/timelog/new.html.erb +0 -7
  519. data/spec/redmine/app/views/timelog/new.js.erb +0 -1
  520. data/spec/redmine/app/views/timelog/report.html.erb +0 -74
  521. data/spec/redmine/app/views/timelog/show.api.rsb +0 -14
  522. data/spec/redmine/app/views/trackers/_form.html.erb +0 -56
  523. data/spec/redmine/app/views/trackers/edit.html.erb +0 -5
  524. data/spec/redmine/app/views/trackers/fields.html.erb +0 -75
  525. data/spec/redmine/app/views/trackers/index.api.rsb +0 -9
  526. data/spec/redmine/app/views/trackers/index.html.erb +0 -39
  527. data/spec/redmine/app/views/trackers/new.html.erb +0 -5
  528. data/spec/redmine/app/views/users/_form.html.erb +0 -69
  529. data/spec/redmine/app/views/users/_general.html.erb +0 -7
  530. data/spec/redmine/app/views/users/_groups.html.erb +0 -9
  531. data/spec/redmine/app/views/users/_mail_notifications.html.erb +0 -30
  532. data/spec/redmine/app/views/users/_memberships.html.erb +0 -1
  533. data/spec/redmine/app/views/users/_preferences.html.erb +0 -6
  534. data/spec/redmine/app/views/users/destroy_membership.js.erb +0 -1
  535. data/spec/redmine/app/views/users/edit.html.erb +0 -10
  536. data/spec/redmine/app/views/users/edit_membership.js.erb +0 -6
  537. data/spec/redmine/app/views/users/index.api.rsb +0 -15
  538. data/spec/redmine/app/views/users/index.html.erb +0 -58
  539. data/spec/redmine/app/views/users/new.html.erb +0 -30
  540. data/spec/redmine/app/views/users/show.api.rsb +0 -37
  541. data/spec/redmine/app/views/users/show.html.erb +0 -75
  542. data/spec/redmine/app/views/versions/_form.html.erb +0 -16
  543. data/spec/redmine/app/views/versions/_issue_counts.html.erb +0 -33
  544. data/spec/redmine/app/views/versions/_new_modal.html.erb +0 -9
  545. data/spec/redmine/app/views/versions/_overview.html.erb +0 -33
  546. data/spec/redmine/app/views/versions/create.js.erb +0 -3
  547. data/spec/redmine/app/views/versions/edit.html.erb +0 -7
  548. data/spec/redmine/app/views/versions/index.api.rsb +0 -19
  549. data/spec/redmine/app/views/versions/index.html.erb +0 -97
  550. data/spec/redmine/app/views/versions/new.html.erb +0 -6
  551. data/spec/redmine/app/views/versions/new.js.erb +0 -2
  552. data/spec/redmine/app/views/versions/show.api.rsb +0 -15
  553. data/spec/redmine/app/views/versions/show.html.erb +0 -55
  554. data/spec/redmine/app/views/versions/status_by.js.erb +0 -1
  555. data/spec/redmine/app/views/watchers/_new.html.erb +0 -27
  556. data/spec/redmine/app/views/watchers/_set_watcher.js.erb +0 -3
  557. data/spec/redmine/app/views/watchers/_watchers.html.erb +0 -12
  558. data/spec/redmine/app/views/watchers/append.js.erb +0 -4
  559. data/spec/redmine/app/views/watchers/autocomplete_for_user.html.erb +0 -1
  560. data/spec/redmine/app/views/watchers/create.js.erb +0 -2
  561. data/spec/redmine/app/views/watchers/destroy.js.erb +0 -1
  562. data/spec/redmine/app/views/watchers/new.js.erb +0 -3
  563. data/spec/redmine/app/views/welcome/index.html.erb +0 -41
  564. data/spec/redmine/app/views/welcome/robots.html.erb +0 -10
  565. data/spec/redmine/app/views/wiki/_content.html.erb +0 -4
  566. data/spec/redmine/app/views/wiki/_sidebar.html.erb +0 -12
  567. data/spec/redmine/app/views/wiki/annotate.html.erb +0 -40
  568. data/spec/redmine/app/views/wiki/date_index.html.erb +0 -36
  569. data/spec/redmine/app/views/wiki/destroy.html.erb +0 -22
  570. data/spec/redmine/app/views/wiki/diff.html.erb +0 -29
  571. data/spec/redmine/app/views/wiki/edit.html.erb +0 -47
  572. data/spec/redmine/app/views/wiki/export.html.erb +0 -21
  573. data/spec/redmine/app/views/wiki/export.pdf.erb +0 -1
  574. data/spec/redmine/app/views/wiki/export_multiple.html.erb +0 -34
  575. data/spec/redmine/app/views/wiki/history.html.erb +0 -40
  576. data/spec/redmine/app/views/wiki/index.api.rsb +0 -13
  577. data/spec/redmine/app/views/wiki/index.html.erb +0 -35
  578. data/spec/redmine/app/views/wiki/rename.html.erb +0 -26
  579. data/spec/redmine/app/views/wiki/show.api.rsb +0 -18
  580. data/spec/redmine/app/views/wiki/show.html.erb +0 -75
  581. data/spec/redmine/app/views/wiki/show.pdf.erb +0 -1
  582. data/spec/redmine/app/views/wikis/destroy.html.erb +0 -10
  583. data/spec/redmine/app/views/wikis/edit.js.erb +0 -1
  584. data/spec/redmine/app/views/workflows/_action_menu.html.erb +0 -4
  585. data/spec/redmine/app/views/workflows/_form.html.erb +0 -40
  586. data/spec/redmine/app/views/workflows/copy.html.erb +0 -38
  587. data/spec/redmine/app/views/workflows/edit.html.erb +0 -75
  588. data/spec/redmine/app/views/workflows/index.html.erb +0 -33
  589. data/spec/redmine/app/views/workflows/permissions.html.erb +0 -123
  590. data/spec/redmine/bin/about +0 -6
  591. data/spec/redmine/bin/bundle +0 -3
  592. data/spec/redmine/bin/rails +0 -4
  593. data/spec/redmine/bin/rake +0 -5
  594. data/spec/redmine/config.ru +0 -4
  595. data/spec/redmine/config/additional_environment.rb.example +0 -10
  596. data/spec/redmine/config/application.rb +0 -73
  597. data/spec/redmine/config/boot.rb +0 -5
  598. data/spec/redmine/config/configuration.yml.example +0 -221
  599. data/spec/redmine/config/database.yml +0 -25
  600. data/spec/redmine/config/database.yml.example +0 -51
  601. data/spec/redmine/config/environment.rb +0 -14
  602. data/spec/redmine/config/environments/development.rb +0 -21
  603. data/spec/redmine/config/environments/production.rb +0 -25
  604. data/spec/redmine/config/environments/test.rb +0 -35
  605. data/spec/redmine/config/environments/test_pgsql.rb +0 -2
  606. data/spec/redmine/config/environments/test_sqlite3.rb +0 -2
  607. data/spec/redmine/config/initializers/00-core_plugins.rb +0 -15
  608. data/spec/redmine/config/initializers/10-patches.rb +0 -180
  609. data/spec/redmine/config/initializers/20-mime_types.rb +0 -4
  610. data/spec/redmine/config/initializers/30-redmine.rb +0 -30
  611. data/spec/redmine/config/initializers/backtrace_silencers.rb +0 -7
  612. data/spec/redmine/config/initializers/inflections.rb +0 -10
  613. data/spec/redmine/config/locales/ar.yml +0 -1157
  614. data/spec/redmine/config/locales/az.yml +0 -1254
  615. data/spec/redmine/config/locales/bg.yml +0 -1150
  616. data/spec/redmine/config/locales/bs.yml +0 -1170
  617. data/spec/redmine/config/locales/ca.yml +0 -1159
  618. data/spec/redmine/config/locales/cs.yml +0 -1159
  619. data/spec/redmine/config/locales/da.yml +0 -1174
  620. data/spec/redmine/config/locales/de.yml +0 -1166
  621. data/spec/redmine/config/locales/el.yml +0 -1157
  622. data/spec/redmine/config/locales/en-GB.yml +0 -1159
  623. data/spec/redmine/config/locales/en.yml +0 -1146
  624. data/spec/redmine/config/locales/es-PA.yml +0 -1191
  625. data/spec/redmine/config/locales/es.yml +0 -1189
  626. data/spec/redmine/config/locales/et.yml +0 -1170
  627. data/spec/redmine/config/locales/eu.yml +0 -1158
  628. data/spec/redmine/config/locales/fa.yml +0 -1158
  629. data/spec/redmine/config/locales/fi.yml +0 -1178
  630. data/spec/redmine/config/locales/fr.yml +0 -1166
  631. data/spec/redmine/config/locales/gl.yml +0 -1165
  632. data/spec/redmine/config/locales/he.yml +0 -1162
  633. data/spec/redmine/config/locales/hr.yml +0 -1158
  634. data/spec/redmine/config/locales/hu.yml +0 -1176
  635. data/spec/redmine/config/locales/id.yml +0 -1161
  636. data/spec/redmine/config/locales/it.yml +0 -1152
  637. data/spec/redmine/config/locales/ja.yml +0 -1172
  638. data/spec/redmine/config/locales/ko.yml +0 -1201
  639. data/spec/redmine/config/locales/lt.yml +0 -1216
  640. data/spec/redmine/config/locales/lv.yml +0 -1151
  641. data/spec/redmine/config/locales/mk.yml +0 -1157
  642. data/spec/redmine/config/locales/mn.yml +0 -1158
  643. data/spec/redmine/config/locales/nl.yml +0 -1136
  644. data/spec/redmine/config/locales/no.yml +0 -1147
  645. data/spec/redmine/config/locales/pl.yml +0 -1177
  646. data/spec/redmine/config/locales/pt-BR.yml +0 -1176
  647. data/spec/redmine/config/locales/pt.yml +0 -1162
  648. data/spec/redmine/config/locales/ro.yml +0 -1152
  649. data/spec/redmine/config/locales/ru.yml +0 -1262
  650. data/spec/redmine/config/locales/sk.yml +0 -1147
  651. data/spec/redmine/config/locales/sl.yml +0 -1157
  652. data/spec/redmine/config/locales/sq.yml +0 -1153
  653. data/spec/redmine/config/locales/sr-YU.yml +0 -1159
  654. data/spec/redmine/config/locales/sr.yml +0 -1158
  655. data/spec/redmine/config/locales/sv.yml +0 -1190
  656. data/spec/redmine/config/locales/th.yml +0 -1154
  657. data/spec/redmine/config/locales/tr.yml +0 -1166
  658. data/spec/redmine/config/locales/uk.yml +0 -1152
  659. data/spec/redmine/config/locales/vi.yml +0 -1210
  660. data/spec/redmine/config/locales/zh-TW.yml +0 -1233
  661. data/spec/redmine/config/locales/zh.yml +0 -1158
  662. data/spec/redmine/config/routes.rb +0 -366
  663. data/spec/redmine/config/settings.yml +0 -252
  664. data/spec/redmine/db/migrate/001_setup.rb +0 -329
  665. data/spec/redmine/db/migrate/002_issue_move.rb +0 -12
  666. data/spec/redmine/db/migrate/003_issue_add_note.rb +0 -12
  667. data/spec/redmine/db/migrate/004_export_pdf.rb +0 -14
  668. data/spec/redmine/db/migrate/005_issue_start_date.rb +0 -11
  669. data/spec/redmine/db/migrate/006_calendar_and_activity.rb +0 -16
  670. data/spec/redmine/db/migrate/007_create_journals.rb +0 -56
  671. data/spec/redmine/db/migrate/008_create_user_preferences.rb +0 -12
  672. data/spec/redmine/db/migrate/009_add_hide_mail_pref.rb +0 -9
  673. data/spec/redmine/db/migrate/010_create_comments.rb +0 -16
  674. data/spec/redmine/db/migrate/011_add_news_comments_count.rb +0 -9
  675. data/spec/redmine/db/migrate/012_add_comments_permissions.rb +0 -14
  676. data/spec/redmine/db/migrate/013_create_queries.rb +0 -15
  677. data/spec/redmine/db/migrate/014_add_queries_permissions.rb +0 -12
  678. data/spec/redmine/db/migrate/015_create_repositories.rb +0 -12
  679. data/spec/redmine/db/migrate/016_add_repositories_permissions.rb +0 -22
  680. data/spec/redmine/db/migrate/017_create_settings.rb +0 -12
  681. data/spec/redmine/db/migrate/018_set_doc_and_files_notifications.rb +0 -18
  682. data/spec/redmine/db/migrate/019_add_issue_status_position.rb +0 -10
  683. data/spec/redmine/db/migrate/020_add_role_position.rb +0 -10
  684. data/spec/redmine/db/migrate/021_add_tracker_position.rb +0 -10
  685. data/spec/redmine/db/migrate/022_serialize_possibles_values.rb +0 -13
  686. data/spec/redmine/db/migrate/023_add_tracker_is_in_roadmap.rb +0 -9
  687. data/spec/redmine/db/migrate/024_add_roadmap_permission.rb +0 -12
  688. data/spec/redmine/db/migrate/025_add_search_permission.rb +0 -12
  689. data/spec/redmine/db/migrate/026_add_repository_login_and_password.rb +0 -11
  690. data/spec/redmine/db/migrate/027_create_wikis.rb +0 -14
  691. data/spec/redmine/db/migrate/028_create_wiki_pages.rb +0 -14
  692. data/spec/redmine/db/migrate/029_create_wiki_contents.rb +0 -30
  693. data/spec/redmine/db/migrate/030_add_projects_feeds_permissions.rb +0 -12
  694. data/spec/redmine/db/migrate/031_add_repository_root_url.rb +0 -9
  695. data/spec/redmine/db/migrate/032_create_time_entries.rb +0 -24
  696. data/spec/redmine/db/migrate/033_add_timelog_permissions.rb +0 -12
  697. data/spec/redmine/db/migrate/034_create_changesets.rb +0 -16
  698. data/spec/redmine/db/migrate/035_create_changes.rb +0 -16
  699. data/spec/redmine/db/migrate/036_add_changeset_commit_date.rb +0 -10
  700. data/spec/redmine/db/migrate/037_add_project_identifier.rb +0 -9
  701. data/spec/redmine/db/migrate/038_add_custom_field_is_filter.rb +0 -9
  702. data/spec/redmine/db/migrate/039_create_watchers.rb +0 -13
  703. data/spec/redmine/db/migrate/040_create_changesets_issues.rb +0 -13
  704. data/spec/redmine/db/migrate/041_rename_comment_to_comments.rb +0 -13
  705. data/spec/redmine/db/migrate/042_create_issue_relations.rb +0 -14
  706. data/spec/redmine/db/migrate/043_add_relations_permissions.rb +0 -14
  707. data/spec/redmine/db/migrate/044_set_language_length_to_five.rb +0 -9
  708. data/spec/redmine/db/migrate/045_create_boards.rb +0 -18
  709. data/spec/redmine/db/migrate/046_create_messages.rb +0 -21
  710. data/spec/redmine/db/migrate/047_add_boards_permissions.rb +0 -16
  711. data/spec/redmine/db/migrate/048_allow_null_version_effective_date.rb +0 -9
  712. data/spec/redmine/db/migrate/049_add_wiki_destroy_page_permission.rb +0 -12
  713. data/spec/redmine/db/migrate/050_add_wiki_attachments_permissions.rb +0 -14
  714. data/spec/redmine/db/migrate/051_add_project_status.rb +0 -9
  715. data/spec/redmine/db/migrate/052_add_changes_revision.rb +0 -9
  716. data/spec/redmine/db/migrate/053_add_changes_branch.rb +0 -9
  717. data/spec/redmine/db/migrate/054_add_changesets_scmid.rb +0 -9
  718. data/spec/redmine/db/migrate/055_add_repositories_type.rb +0 -11
  719. data/spec/redmine/db/migrate/056_add_repositories_changes_permission.rb +0 -12
  720. data/spec/redmine/db/migrate/057_add_versions_wiki_page_title.rb +0 -9
  721. data/spec/redmine/db/migrate/058_add_issue_categories_assigned_to_id.rb +0 -9
  722. data/spec/redmine/db/migrate/059_add_roles_assignable.rb +0 -9
  723. data/spec/redmine/db/migrate/060_change_changesets_committer_limit.rb +0 -9
  724. data/spec/redmine/db/migrate/061_add_roles_builtin.rb +0 -9
  725. data/spec/redmine/db/migrate/062_insert_builtin_roles.rb +0 -16
  726. data/spec/redmine/db/migrate/063_add_roles_permissions.rb +0 -9
  727. data/spec/redmine/db/migrate/064_drop_permissions.rb +0 -10
  728. data/spec/redmine/db/migrate/065_add_settings_updated_on.rb +0 -11
  729. data/spec/redmine/db/migrate/066_add_custom_value_customized_index.rb +0 -9
  730. data/spec/redmine/db/migrate/067_create_wiki_redirects.rb +0 -15
  731. data/spec/redmine/db/migrate/068_create_enabled_modules.rb +0 -18
  732. data/spec/redmine/db/migrate/069_add_issues_estimated_hours.rb +0 -9
  733. data/spec/redmine/db/migrate/070_change_attachments_content_type_limit.rb +0 -9
  734. data/spec/redmine/db/migrate/071_add_queries_column_names.rb +0 -9
  735. data/spec/redmine/db/migrate/072_add_enumerations_position.rb +0 -15
  736. data/spec/redmine/db/migrate/073_add_enumerations_is_default.rb +0 -9
  737. data/spec/redmine/db/migrate/074_add_auth_sources_tls.rb +0 -9
  738. data/spec/redmine/db/migrate/075_add_members_mail_notification.rb +0 -9
  739. data/spec/redmine/db/migrate/076_allow_null_position.rb +0 -16
  740. data/spec/redmine/db/migrate/077_remove_issue_statuses_html_color.rb +0 -9
  741. data/spec/redmine/db/migrate/078_add_custom_fields_position.rb +0 -15
  742. data/spec/redmine/db/migrate/079_add_user_preferences_time_zone.rb +0 -9
  743. data/spec/redmine/db/migrate/080_add_users_type.rb +0 -10
  744. data/spec/redmine/db/migrate/081_create_projects_trackers.rb +0 -19
  745. data/spec/redmine/db/migrate/082_add_messages_locked.rb +0 -9
  746. data/spec/redmine/db/migrate/083_add_messages_sticky.rb +0 -9
  747. data/spec/redmine/db/migrate/084_change_auth_sources_account_limit.rb +0 -9
  748. data/spec/redmine/db/migrate/085_add_role_tracker_old_status_index_to_workflows.rb +0 -9
  749. data/spec/redmine/db/migrate/086_add_custom_fields_searchable.rb +0 -9
  750. data/spec/redmine/db/migrate/087_change_projects_description_to_text.rb +0 -8
  751. data/spec/redmine/db/migrate/088_add_custom_fields_default_value.rb +0 -9
  752. data/spec/redmine/db/migrate/089_add_attachments_description.rb +0 -9
  753. data/spec/redmine/db/migrate/090_change_versions_name_limit.rb +0 -9
  754. data/spec/redmine/db/migrate/091_change_changesets_revision_to_string.rb +0 -32
  755. data/spec/redmine/db/migrate/092_change_changes_from_revision_to_string.rb +0 -9
  756. data/spec/redmine/db/migrate/093_add_wiki_pages_protected.rb +0 -9
  757. data/spec/redmine/db/migrate/094_change_projects_homepage_limit.rb +0 -9
  758. data/spec/redmine/db/migrate/095_add_wiki_pages_parent_id.rb +0 -9
  759. data/spec/redmine/db/migrate/096_add_commit_access_permission.rb +0 -13
  760. data/spec/redmine/db/migrate/097_add_view_wiki_edits_permission.rb +0 -13
  761. data/spec/redmine/db/migrate/098_set_topic_authors_as_watchers.rb +0 -15
  762. data/spec/redmine/db/migrate/099_add_delete_wiki_pages_attachments_permission.rb +0 -13
  763. data/spec/redmine/db/migrate/100_add_changesets_user_id.rb +0 -9
  764. data/spec/redmine/db/migrate/101_populate_changesets_user_id.rb +0 -18
  765. data/spec/redmine/db/migrate/102_add_custom_fields_editable.rb +0 -9
  766. data/spec/redmine/db/migrate/103_set_custom_fields_editable.rb +0 -9
  767. data/spec/redmine/db/migrate/104_add_projects_lft_and_rgt.rb +0 -11
  768. data/spec/redmine/db/migrate/105_build_projects_tree.rb +0 -8
  769. data/spec/redmine/db/migrate/106_remove_projects_projects_count.rb +0 -9
  770. data/spec/redmine/db/migrate/107_add_open_id_authentication_tables.rb +0 -20
  771. data/spec/redmine/db/migrate/108_add_identity_url_to_users.rb +0 -9
  772. data/spec/redmine/db/migrate/20090214190337_add_watchers_user_id_type_index.rb +0 -9
  773. data/spec/redmine/db/migrate/20090312172426_add_queries_sort_criteria.rb +0 -9
  774. data/spec/redmine/db/migrate/20090312194159_add_projects_trackers_unique_index.rb +0 -21
  775. data/spec/redmine/db/migrate/20090318181151_extend_settings_name.rb +0 -9
  776. data/spec/redmine/db/migrate/20090323224724_add_type_to_enumerations.rb +0 -9
  777. data/spec/redmine/db/migrate/20090401221305_update_enumerations_to_sti.rb +0 -11
  778. data/spec/redmine/db/migrate/20090401231134_add_active_field_to_enumerations.rb +0 -9
  779. data/spec/redmine/db/migrate/20090403001910_add_project_to_enumerations.rb +0 -11
  780. data/spec/redmine/db/migrate/20090406161854_add_parent_id_to_enumerations.rb +0 -9
  781. data/spec/redmine/db/migrate/20090425161243_add_queries_group_by.rb +0 -9
  782. data/spec/redmine/db/migrate/20090503121501_create_member_roles.rb +0 -12
  783. data/spec/redmine/db/migrate/20090503121505_populate_member_roles.rb +0 -12
  784. data/spec/redmine/db/migrate/20090503121510_drop_members_role_id.rb +0 -9
  785. data/spec/redmine/db/migrate/20090614091200_fix_messages_sticky_null.rb +0 -9
  786. data/spec/redmine/db/migrate/20090704172350_populate_users_type.rb +0 -8
  787. data/spec/redmine/db/migrate/20090704172355_create_groups_users.rb +0 -13
  788. data/spec/redmine/db/migrate/20090704172358_add_member_roles_inherited_from.rb +0 -9
  789. data/spec/redmine/db/migrate/20091010093521_fix_users_custom_values.rb +0 -11
  790. data/spec/redmine/db/migrate/20091017212227_add_missing_indexes_to_workflows.rb +0 -13
  791. data/spec/redmine/db/migrate/20091017212457_add_missing_indexes_to_custom_fields_projects.rb +0 -9
  792. data/spec/redmine/db/migrate/20091017212644_add_missing_indexes_to_messages.rb +0 -11
  793. data/spec/redmine/db/migrate/20091017212938_add_missing_indexes_to_repositories.rb +0 -9
  794. data/spec/redmine/db/migrate/20091017213027_add_missing_indexes_to_comments.rb +0 -11
  795. data/spec/redmine/db/migrate/20091017213113_add_missing_indexes_to_enumerations.rb +0 -9
  796. data/spec/redmine/db/migrate/20091017213151_add_missing_indexes_to_wiki_pages.rb +0 -11
  797. data/spec/redmine/db/migrate/20091017213228_add_missing_indexes_to_watchers.rb +0 -11
  798. data/spec/redmine/db/migrate/20091017213257_add_missing_indexes_to_auth_sources.rb +0 -9
  799. data/spec/redmine/db/migrate/20091017213332_add_missing_indexes_to_documents.rb +0 -9
  800. data/spec/redmine/db/migrate/20091017213444_add_missing_indexes_to_tokens.rb +0 -9
  801. data/spec/redmine/db/migrate/20091017213536_add_missing_indexes_to_changesets.rb +0 -11
  802. data/spec/redmine/db/migrate/20091017213642_add_missing_indexes_to_issue_categories.rb +0 -9
  803. data/spec/redmine/db/migrate/20091017213716_add_missing_indexes_to_member_roles.rb +0 -11
  804. data/spec/redmine/db/migrate/20091017213757_add_missing_indexes_to_boards.rb +0 -9
  805. data/spec/redmine/db/migrate/20091017213835_add_missing_indexes_to_user_preferences.rb +0 -9
  806. data/spec/redmine/db/migrate/20091017213910_add_missing_indexes_to_issues.rb +0 -21
  807. data/spec/redmine/db/migrate/20091017214015_add_missing_indexes_to_members.rb +0 -11
  808. data/spec/redmine/db/migrate/20091017214107_add_missing_indexes_to_custom_fields.rb +0 -9
  809. data/spec/redmine/db/migrate/20091017214136_add_missing_indexes_to_queries.rb +0 -11
  810. data/spec/redmine/db/migrate/20091017214236_add_missing_indexes_to_time_entries.rb +0 -11
  811. data/spec/redmine/db/migrate/20091017214308_add_missing_indexes_to_news.rb +0 -9
  812. data/spec/redmine/db/migrate/20091017214336_add_missing_indexes_to_users.rb +0 -11
  813. data/spec/redmine/db/migrate/20091017214406_add_missing_indexes_to_attachments.rb +0 -11
  814. data/spec/redmine/db/migrate/20091017214440_add_missing_indexes_to_wiki_contents.rb +0 -9
  815. data/spec/redmine/db/migrate/20091017214519_add_missing_indexes_to_custom_values.rb +0 -9
  816. data/spec/redmine/db/migrate/20091017214611_add_missing_indexes_to_journals.rb +0 -11
  817. data/spec/redmine/db/migrate/20091017214644_add_missing_indexes_to_issue_relations.rb +0 -11
  818. data/spec/redmine/db/migrate/20091017214720_add_missing_indexes_to_wiki_redirects.rb +0 -9
  819. data/spec/redmine/db/migrate/20091017214750_add_missing_indexes_to_custom_fields_trackers.rb +0 -9
  820. data/spec/redmine/db/migrate/20091025163651_add_activity_indexes.rb +0 -25
  821. data/spec/redmine/db/migrate/20091108092559_add_versions_status.rb +0 -10
  822. data/spec/redmine/db/migrate/20091114105931_add_view_issues_permission.rb +0 -15
  823. data/spec/redmine/db/migrate/20091123212029_add_default_done_ratio_to_issue_status.rb +0 -9
  824. data/spec/redmine/db/migrate/20091205124427_add_versions_sharing.rb +0 -10
  825. data/spec/redmine/db/migrate/20091220183509_add_lft_and_rgt_indexes_to_projects.rb +0 -11
  826. data/spec/redmine/db/migrate/20091220183727_add_index_to_settings_name.rb +0 -9
  827. data/spec/redmine/db/migrate/20091220184736_add_indexes_to_issue_status.rb +0 -13
  828. data/spec/redmine/db/migrate/20091225164732_remove_enumerations_opt.rb +0 -12
  829. data/spec/redmine/db/migrate/20091227112908_change_wiki_contents_text_limit.rb +0 -16
  830. data/spec/redmine/db/migrate/20100129193402_change_users_mail_notification_to_string.rb +0 -21
  831. data/spec/redmine/db/migrate/20100129193813_update_mail_notification_values.rb +0 -11
  832. data/spec/redmine/db/migrate/20100221100219_add_index_on_changesets_scmid.rb +0 -9
  833. data/spec/redmine/db/migrate/20100313132032_add_issues_nested_sets_columns.rb +0 -17
  834. data/spec/redmine/db/migrate/20100313171051_add_index_on_issues_nested_set.rb +0 -9
  835. data/spec/redmine/db/migrate/20100705164950_change_changes_path_length_limit.rb +0 -14
  836. data/spec/redmine/db/migrate/20100819172912_enable_calendar_and_gantt_modules_where_appropriate.rb +0 -12
  837. data/spec/redmine/db/migrate/20101104182107_add_unique_index_on_members.rb +0 -22
  838. data/spec/redmine/db/migrate/20101107130441_add_custom_fields_visible.rb +0 -10
  839. data/spec/redmine/db/migrate/20101114115114_change_projects_name_limit.rb +0 -9
  840. data/spec/redmine/db/migrate/20101114115359_change_projects_identifier_limit.rb +0 -9
  841. data/spec/redmine/db/migrate/20110220160626_add_workflows_assignee_and_author.rb +0 -14
  842. data/spec/redmine/db/migrate/20110223180944_add_users_salt.rb +0 -9
  843. data/spec/redmine/db/migrate/20110223180953_salt_user_passwords.rb +0 -13
  844. data/spec/redmine/db/migrate/20110224000000_add_repositories_path_encoding.rb +0 -9
  845. data/spec/redmine/db/migrate/20110226120112_change_repositories_password_limit.rb +0 -9
  846. data/spec/redmine/db/migrate/20110226120132_change_auth_sources_account_password_limit.rb +0 -9
  847. data/spec/redmine/db/migrate/20110227125750_change_journal_details_values_to_text.rb +0 -11
  848. data/spec/redmine/db/migrate/20110228000000_add_repositories_log_encoding.rb +0 -9
  849. data/spec/redmine/db/migrate/20110228000100_copy_repositories_log_encoding.rb +0 -12
  850. data/spec/redmine/db/migrate/20110401192910_add_index_to_users_type.rb +0 -9
  851. data/spec/redmine/db/migrate/20110408103312_add_roles_issues_visibility.rb +0 -9
  852. data/spec/redmine/db/migrate/20110412065600_add_issues_is_private.rb +0 -9
  853. data/spec/redmine/db/migrate/20110511000000_add_repositories_extra_info.rb +0 -9
  854. data/spec/redmine/db/migrate/20110902000000_create_changeset_parents.rb +0 -14
  855. data/spec/redmine/db/migrate/20111201201315_add_unique_index_to_issue_relations.rb +0 -16
  856. data/spec/redmine/db/migrate/20120115143024_add_repositories_identifier.rb +0 -9
  857. data/spec/redmine/db/migrate/20120115143100_add_repositories_is_default.rb +0 -9
  858. data/spec/redmine/db/migrate/20120115143126_set_default_repositories.rb +0 -14
  859. data/spec/redmine/db/migrate/20120127174243_add_custom_fields_multiple.rb +0 -9
  860. data/spec/redmine/db/migrate/20120205111326_change_users_login_limit.rb +0 -9
  861. data/spec/redmine/db/migrate/20120223110929_change_attachments_container_defaults.rb +0 -25
  862. data/spec/redmine/db/migrate/20120301153455_add_auth_sources_filter.rb +0 -9
  863. data/spec/redmine/db/migrate/20120422150750_change_repositories_to_full_sti.rb +0 -22
  864. data/spec/redmine/db/migrate/20120705074331_add_trackers_fields_bits.rb +0 -9
  865. data/spec/redmine/db/migrate/20120707064544_add_auth_sources_timeout.rb +0 -9
  866. data/spec/redmine/db/migrate/20120714122000_add_workflows_type.rb +0 -9
  867. data/spec/redmine/db/migrate/20120714122100_update_workflows_to_sti.rb +0 -9
  868. data/spec/redmine/db/migrate/20120714122200_add_workflows_rule_fields.rb +0 -11
  869. data/spec/redmine/db/migrate/20120731164049_add_boards_parent_id.rb +0 -9
  870. data/spec/redmine/db/migrate/20120930112914_add_journals_private_notes.rb +0 -9
  871. data/spec/redmine/db/migrate/20121026002032_add_enumerations_position_name.rb +0 -9
  872. data/spec/redmine/db/migrate/20121026003537_populate_enumerations_position_name.rb +0 -9
  873. data/spec/redmine/db/migrate/20121209123234_add_queries_type.rb +0 -9
  874. data/spec/redmine/db/migrate/20121209123358_update_queries_to_sti.rb +0 -9
  875. data/spec/redmine/db/migrate/20121213084931_add_attachments_disk_directory.rb +0 -9
  876. data/spec/redmine/db/migrate/20130110122628_split_documents_permissions.rb +0 -23
  877. data/spec/redmine/db/migrate/20130201184705_add_unique_index_on_tokens_value.rb +0 -15
  878. data/spec/redmine/db/migrate/20130202090625_add_projects_inherit_members.rb +0 -9
  879. data/spec/redmine/db/migrate/20130207175206_add_unique_index_on_custom_fields_trackers.rb +0 -24
  880. data/spec/redmine/db/migrate/20130207181455_add_unique_index_on_custom_fields_projects.rb +0 -24
  881. data/spec/redmine/db/migrate/20130215073721_change_users_lastname_length_to_255.rb +0 -9
  882. data/spec/redmine/db/migrate/20130215111127_add_issues_closed_on.rb +0 -9
  883. data/spec/redmine/db/migrate/20130215111141_populate_issues_closed_on.rb +0 -26
  884. data/spec/redmine/db/migrate/20130217094251_remove_issues_default_fk_values.rb +0 -19
  885. data/spec/redmine/db/migrate/20130602092539_create_queries_roles.rb +0 -13
  886. data/spec/redmine/db/migrate/20130710182539_add_queries_visibility.rb +0 -13
  887. data/spec/redmine/db/migrate/20130713104233_create_custom_fields_roles.rb +0 -14
  888. data/spec/redmine/db/migrate/20130713111657_add_queries_options.rb +0 -9
  889. data/spec/redmine/db/migrate/20130729070143_add_users_must_change_passwd.rb +0 -9
  890. data/spec/redmine/db/migrate/20130911193200_remove_eols_from_attachments_filename.rb +0 -12
  891. data/spec/redmine/db/migrate/20131004113137_support_for_multiple_commit_keywords.rb +0 -17
  892. data/spec/redmine/db/migrate/20131005100610_add_repositories_created_on.rb +0 -9
  893. data/spec/redmine/db/migrate/20131124175346_add_custom_fields_format_store.rb +0 -9
  894. data/spec/redmine/db/migrate/20131210180802_add_custom_fields_description.rb +0 -9
  895. data/spec/redmine/db/migrate/20131214094309_remove_custom_fields_min_max_length_default_values.rb +0 -15
  896. data/spec/redmine/db/migrate/20131215104612_store_relation_type_in_journal_details.rb +0 -26
  897. data/spec/redmine/db/migrate/20131218183023_delete_orphan_time_entries_custom_values.rb +0 -9
  898. data/spec/redmine/db/migrate/20140228130325_change_changesets_comments_limit.rb +0 -12
  899. data/spec/redmine/db/migrate/20140903143914_add_password_changed_at_to_user.rb +0 -5
  900. data/spec/redmine/db/migrate/20140920094058_insert_builtin_groups.rb +0 -21
  901. data/spec/redmine/db/migrate/20141029181752_add_trackers_default_status_id.rb +0 -15
  902. data/spec/redmine/db/migrate/20141029181824_remove_issue_statuses_is_default.rb +0 -12
  903. data/spec/redmine/db/migrate/20141109112308_add_roles_users_visibility.rb +0 -9
  904. data/spec/redmine/db/migrate/20141122124142_add_wiki_redirects_redirects_to_wiki_id.rb +0 -11
  905. data/spec/redmine/db/migrate/20150113194759_create_email_addresses.rb +0 -12
  906. data/spec/redmine/db/migrate/20150113211532_populate_email_addresses.rb +0 -14
  907. data/spec/redmine/db/migrate/20150113213922_remove_users_mail.rb +0 -13
  908. data/spec/redmine/db/migrate/20150113213955_add_email_addresses_user_id_index.rb +0 -9
  909. data/spec/redmine/db/migrate/20150208105930_replace_move_issues_permission.rb +0 -19
  910. data/spec/redmine/db/migrate/20150510083747_change_documents_title_limit.rb +0 -9
  911. data/spec/redmine/db/migrate/20150525103953_clear_estimated_hours_on_parent_issues.rb +0 -15
  912. data/spec/redmine/db/migrate/20150526183158_add_roles_time_entries_visibility.rb +0 -9
  913. data/spec/redmine/db/migrate/20150528084820_add_roles_all_roles_managed.rb +0 -5
  914. data/spec/redmine/db/migrate/20150528092912_create_roles_managed_roles.rb +0 -8
  915. data/spec/redmine/db/migrate/20150528093249_add_unique_index_on_roles_managed_roles.rb +0 -5
  916. data/spec/redmine/doc/CHANGELOG +0 -3019
  917. data/spec/redmine/doc/COPYING +0 -339
  918. data/spec/redmine/doc/INSTALL +0 -106
  919. data/spec/redmine/doc/README_FOR_APP +0 -28
  920. data/spec/redmine/doc/RUNNING_TESTS +0 -70
  921. data/spec/redmine/doc/UPGRADING +0 -84
  922. data/spec/redmine/extra/mail_handler/rdm-mailhandler.rb +0 -183
  923. data/spec/redmine/extra/sample_plugin/README +0 -15
  924. data/spec/redmine/extra/sample_plugin/app/controllers/example_controller.rb +0 -20
  925. data/spec/redmine/extra/sample_plugin/app/models/meeting.rb +0 -12
  926. data/spec/redmine/extra/sample_plugin/app/views/example/say_goodbye.html.erb +0 -7
  927. data/spec/redmine/extra/sample_plugin/app/views/example/say_hello.html.erb +0 -15
  928. data/spec/redmine/extra/sample_plugin/app/views/my/blocks/_sample_block.html.erb +0 -3
  929. data/spec/redmine/extra/sample_plugin/app/views/settings/_sample_plugin_settings.html.erb +0 -3
  930. data/spec/redmine/extra/sample_plugin/assets/images/it_works.png +0 -0
  931. data/spec/redmine/extra/sample_plugin/assets/stylesheets/example.css +0 -1
  932. data/spec/redmine/extra/sample_plugin/config/locales/en.yml +0 -6
  933. data/spec/redmine/extra/sample_plugin/config/locales/fr.yml +0 -6
  934. data/spec/redmine/extra/sample_plugin/config/routes.rb +0 -7
  935. data/spec/redmine/extra/sample_plugin/db/migrate/001_create_meetings.rb +0 -15
  936. data/spec/redmine/extra/sample_plugin/init.rb +0 -27
  937. data/spec/redmine/extra/sample_plugin/test/integration/routing_test.rb +0 -12
  938. data/spec/redmine/extra/svn/Redmine.pm +0 -554
  939. data/spec/redmine/extra/svn/reposman.rb +0 -289
  940. data/spec/redmine/files/delete.me +0 -1
  941. data/spec/redmine/lib/SVG/GPL.txt +0 -340
  942. data/spec/redmine/lib/SVG/Graph/Bar.rb +0 -148
  943. data/spec/redmine/lib/SVG/Graph/BarBase.rb +0 -139
  944. data/spec/redmine/lib/SVG/Graph/BarHorizontal.rb +0 -149
  945. data/spec/redmine/lib/SVG/Graph/Graph.rb +0 -977
  946. data/spec/redmine/lib/SVG/Graph/Line.rb +0 -444
  947. data/spec/redmine/lib/SVG/Graph/Pie.rb +0 -395
  948. data/spec/redmine/lib/SVG/Graph/Plot.rb +0 -500
  949. data/spec/redmine/lib/SVG/Graph/Schedule.rb +0 -373
  950. data/spec/redmine/lib/SVG/Graph/TimeSeries.rb +0 -238
  951. data/spec/redmine/lib/SVG/LICENSE.txt +0 -57
  952. data/spec/redmine/lib/diff.rb +0 -282
  953. data/spec/redmine/lib/generators/redmine_plugin/USAGE +0 -26
  954. data/spec/redmine/lib/generators/redmine_plugin/redmine_plugin_generator.rb +0 -37
  955. data/spec/redmine/lib/generators/redmine_plugin/templates/README.rdoc +0 -3
  956. data/spec/redmine/lib/generators/redmine_plugin/templates/en_rails_i18n.yml +0 -3
  957. data/spec/redmine/lib/generators/redmine_plugin/templates/init.rb.erb +0 -8
  958. data/spec/redmine/lib/generators/redmine_plugin/templates/routes.rb +0 -2
  959. data/spec/redmine/lib/generators/redmine_plugin/templates/test_helper.rb.erb +0 -2
  960. data/spec/redmine/lib/generators/redmine_plugin_controller/USAGE +0 -5
  961. data/spec/redmine/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb +0 -27
  962. data/spec/redmine/lib/generators/redmine_plugin_controller/templates/controller.rb.erb +0 -9
  963. data/spec/redmine/lib/generators/redmine_plugin_controller/templates/functional_test.rb.erb +0 -8
  964. data/spec/redmine/lib/generators/redmine_plugin_controller/templates/helper.rb.erb +0 -2
  965. data/spec/redmine/lib/generators/redmine_plugin_controller/templates/view.html.erb +0 -1
  966. data/spec/redmine/lib/generators/redmine_plugin_model/USAGE +0 -5
  967. data/spec/redmine/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb +0 -41
  968. data/spec/redmine/lib/generators/redmine_plugin_model/templates/migration.rb +0 -15
  969. data/spec/redmine/lib/generators/redmine_plugin_model/templates/model.rb.erb +0 -3
  970. data/spec/redmine/lib/generators/redmine_plugin_model/templates/unit_test.rb.erb +0 -9
  971. data/spec/redmine/lib/plugins/acts_as_activity_provider/init.rb +0 -2
  972. data/spec/redmine/lib/plugins/acts_as_activity_provider/lib/acts_as_activity_provider.rb +0 -87
  973. data/spec/redmine/lib/plugins/acts_as_attachable/init.rb +0 -2
  974. data/spec/redmine/lib/plugins/acts_as_attachable/lib/acts_as_attachable.rb +0 -120
  975. data/spec/redmine/lib/plugins/acts_as_customizable/init.rb +0 -2
  976. data/spec/redmine/lib/plugins/acts_as_customizable/lib/acts_as_customizable.rb +0 -170
  977. data/spec/redmine/lib/plugins/acts_as_event/init.rb +0 -2
  978. data/spec/redmine/lib/plugins/acts_as_event/lib/acts_as_event.rb +0 -96
  979. data/spec/redmine/lib/plugins/acts_as_list/README +0 -23
  980. data/spec/redmine/lib/plugins/acts_as_list/init.rb +0 -3
  981. data/spec/redmine/lib/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -280
  982. data/spec/redmine/lib/plugins/acts_as_list/test/list_test.rb +0 -332
  983. data/spec/redmine/lib/plugins/acts_as_searchable/init.rb +0 -2
  984. data/spec/redmine/lib/plugins/acts_as_searchable/lib/acts_as_searchable.rb +0 -225
  985. data/spec/redmine/lib/plugins/acts_as_tree/README +0 -26
  986. data/spec/redmine/lib/plugins/acts_as_tree/Rakefile +0 -22
  987. data/spec/redmine/lib/plugins/acts_as_tree/init.rb +0 -1
  988. data/spec/redmine/lib/plugins/acts_as_tree/lib/active_record/acts/tree.rb +0 -109
  989. data/spec/redmine/lib/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  990. data/spec/redmine/lib/plugins/acts_as_tree/test/acts_as_tree_test.rb +0 -219
  991. data/spec/redmine/lib/plugins/acts_as_tree/test/database.yml +0 -0
  992. data/spec/redmine/lib/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  993. data/spec/redmine/lib/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  994. data/spec/redmine/lib/plugins/acts_as_tree/test/schema.rb +0 -0
  995. data/spec/redmine/lib/plugins/acts_as_versioned/CHANGELOG +0 -74
  996. data/spec/redmine/lib/plugins/acts_as_versioned/MIT-LICENSE +0 -20
  997. data/spec/redmine/lib/plugins/acts_as_versioned/README +0 -28
  998. data/spec/redmine/lib/plugins/acts_as_versioned/RUNNING_UNIT_TESTS +0 -41
  999. data/spec/redmine/lib/plugins/acts_as_versioned/Rakefile +0 -182
  1000. data/spec/redmine/lib/plugins/acts_as_versioned/init.rb +0 -1
  1001. data/spec/redmine/lib/plugins/acts_as_versioned/lib/acts_as_versioned.rb +0 -568
  1002. data/spec/redmine/lib/plugins/acts_as_versioned/test/abstract_unit.rb +0 -41
  1003. data/spec/redmine/lib/plugins/acts_as_versioned/test/database.yml +0 -18
  1004. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/authors.yml +0 -6
  1005. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/landmark.rb +0 -3
  1006. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/landmark_versions.yml +0 -7
  1007. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/landmarks.yml +0 -6
  1008. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/locked_pages.yml +0 -10
  1009. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/locked_pages_revisions.yml +0 -27
  1010. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/migrations/1_add_versioned_tables.rb +0 -13
  1011. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/page.rb +0 -43
  1012. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/page_versions.yml +0 -16
  1013. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/pages.yml +0 -7
  1014. data/spec/redmine/lib/plugins/acts_as_versioned/test/fixtures/widget.rb +0 -6
  1015. data/spec/redmine/lib/plugins/acts_as_versioned/test/migration_test.rb +0 -46
  1016. data/spec/redmine/lib/plugins/acts_as_versioned/test/schema.rb +0 -68
  1017. data/spec/redmine/lib/plugins/acts_as_versioned/test/versioned_test.rb +0 -347
  1018. data/spec/redmine/lib/plugins/acts_as_watchable/init.rb +0 -3
  1019. data/spec/redmine/lib/plugins/acts_as_watchable/lib/acts_as_watchable.rb +0 -88
  1020. data/spec/redmine/lib/plugins/gravatar/MIT-LICENSE +0 -20
  1021. data/spec/redmine/lib/plugins/gravatar/README.rdoc +0 -55
  1022. data/spec/redmine/lib/plugins/gravatar/Rakefile +0 -32
  1023. data/spec/redmine/lib/plugins/gravatar/about.yml +0 -7
  1024. data/spec/redmine/lib/plugins/gravatar/init.rb +0 -2
  1025. data/spec/redmine/lib/plugins/gravatar/lib/gravatar.rb +0 -88
  1026. data/spec/redmine/lib/plugins/gravatar/spec/gravatar_spec.rb +0 -43
  1027. data/spec/redmine/lib/plugins/open_id_authentication/CHANGELOG +0 -37
  1028. data/spec/redmine/lib/plugins/open_id_authentication/README +0 -223
  1029. data/spec/redmine/lib/plugins/open_id_authentication/Rakefile +0 -22
  1030. data/spec/redmine/lib/plugins/open_id_authentication/generators/open_id_authentication_tables/open_id_authentication_tables_generator.rb +0 -11
  1031. data/spec/redmine/lib/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/migration.rb +0 -20
  1032. data/spec/redmine/lib/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/migration.rb +0 -26
  1033. data/spec/redmine/lib/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/upgrade_open_id_authentication_tables_generator.rb +0 -11
  1034. data/spec/redmine/lib/plugins/open_id_authentication/init.rb +0 -12
  1035. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication.rb +0 -159
  1036. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/association.rb +0 -9
  1037. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb +0 -55
  1038. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/mem_cache_store.rb +0 -73
  1039. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/nonce.rb +0 -5
  1040. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/request.rb +0 -23
  1041. data/spec/redmine/lib/plugins/open_id_authentication/lib/open_id_authentication/timeout_fixes.rb +0 -20
  1042. data/spec/redmine/lib/plugins/open_id_authentication/lib/tasks/open_id_authentication_tasks.rake +0 -30
  1043. data/spec/redmine/lib/plugins/open_id_authentication/test/mem_cache_store_test.rb +0 -151
  1044. data/spec/redmine/lib/plugins/open_id_authentication/test/normalize_test.rb +0 -32
  1045. data/spec/redmine/lib/plugins/open_id_authentication/test/open_id_authentication_test.rb +0 -46
  1046. data/spec/redmine/lib/plugins/open_id_authentication/test/status_test.rb +0 -14
  1047. data/spec/redmine/lib/plugins/open_id_authentication/test/test_helper.rb +0 -17
  1048. data/spec/redmine/lib/redcloth3.rb +0 -1208
  1049. data/spec/redmine/lib/redmine.rb +0 -274
  1050. data/spec/redmine/lib/redmine/access_control.rb +0 -137
  1051. data/spec/redmine/lib/redmine/access_keys.rb +0 -33
  1052. data/spec/redmine/lib/redmine/activity.rb +0 -52
  1053. data/spec/redmine/lib/redmine/activity/fetcher.rb +0 -110
  1054. data/spec/redmine/lib/redmine/ciphering.rb +0 -103
  1055. data/spec/redmine/lib/redmine/codeset_util.rb +0 -72
  1056. data/spec/redmine/lib/redmine/configuration.rb +0 -128
  1057. data/spec/redmine/lib/redmine/core_ext.rb +0 -1
  1058. data/spec/redmine/lib/redmine/core_ext/active_record.rb +0 -27
  1059. data/spec/redmine/lib/redmine/core_ext/date.rb +0 -5
  1060. data/spec/redmine/lib/redmine/core_ext/date/calculations.rb +0 -35
  1061. data/spec/redmine/lib/redmine/core_ext/string.rb +0 -11
  1062. data/spec/redmine/lib/redmine/core_ext/string/conversions.rb +0 -42
  1063. data/spec/redmine/lib/redmine/core_ext/string/inflections.rb +0 -29
  1064. data/spec/redmine/lib/redmine/database.rb +0 -53
  1065. data/spec/redmine/lib/redmine/default_data/loader.rb +0 -186
  1066. data/spec/redmine/lib/redmine/export/csv.rb +0 -65
  1067. data/spec/redmine/lib/redmine/export/pdf.rb +0 -153
  1068. data/spec/redmine/lib/redmine/export/pdf/issues_pdf_helper.rb +0 -518
  1069. data/spec/redmine/lib/redmine/export/pdf/wiki_pdf_helper.rb +0 -98
  1070. data/spec/redmine/lib/redmine/field_format.rb +0 -718
  1071. data/spec/redmine/lib/redmine/helpers/calendar.rb +0 -85
  1072. data/spec/redmine/lib/redmine/helpers/diff.rb +0 -75
  1073. data/spec/redmine/lib/redmine/helpers/gantt.rb +0 -929
  1074. data/spec/redmine/lib/redmine/helpers/time_report.rb +0 -152
  1075. data/spec/redmine/lib/redmine/hook.rb +0 -175
  1076. data/spec/redmine/lib/redmine/i18n.rb +0 -195
  1077. data/spec/redmine/lib/redmine/imap.rb +0 -66
  1078. data/spec/redmine/lib/redmine/info.rb +0 -37
  1079. data/spec/redmine/lib/redmine/menu_manager.rb +0 -454
  1080. data/spec/redmine/lib/redmine/mime_type.rb +0 -89
  1081. data/spec/redmine/lib/redmine/nested_set/issue_nested_set.rb +0 -200
  1082. data/spec/redmine/lib/redmine/nested_set/project_nested_set.rb +0 -159
  1083. data/spec/redmine/lib/redmine/nested_set/traversing.rb +0 -124
  1084. data/spec/redmine/lib/redmine/notifiable.rb +0 -27
  1085. data/spec/redmine/lib/redmine/pagination.rb +0 -246
  1086. data/spec/redmine/lib/redmine/platform.rb +0 -27
  1087. data/spec/redmine/lib/redmine/plugin.rb +0 -504
  1088. data/spec/redmine/lib/redmine/pop3.rb +0 -74
  1089. data/spec/redmine/lib/redmine/safe_attributes.rb +0 -87
  1090. data/spec/redmine/lib/redmine/scm/adapters.rb +0 -25
  1091. data/spec/redmine/lib/redmine/scm/adapters/abstract_adapter.rb +0 -435
  1092. data/spec/redmine/lib/redmine/scm/adapters/bazaar_adapter.rb +0 -338
  1093. data/spec/redmine/lib/redmine/scm/adapters/cvs_adapter.rb +0 -459
  1094. data/spec/redmine/lib/redmine/scm/adapters/darcs_adapter.rb +0 -239
  1095. data/spec/redmine/lib/redmine/scm/adapters/filesystem_adapter.rb +0 -118
  1096. data/spec/redmine/lib/redmine/scm/adapters/git_adapter.rb +0 -408
  1097. data/spec/redmine/lib/redmine/scm/adapters/mercurial/hg-template-1.0.tmpl +0 -12
  1098. data/spec/redmine/lib/redmine/scm/adapters/mercurial/redminehelper.py +0 -225
  1099. data/spec/redmine/lib/redmine/scm/adapters/mercurial_adapter.rb +0 -329
  1100. data/spec/redmine/lib/redmine/scm/adapters/subversion_adapter.rb +0 -276
  1101. data/spec/redmine/lib/redmine/scm/base.rb +0 -23
  1102. data/spec/redmine/lib/redmine/search.rb +0 -173
  1103. data/spec/redmine/lib/redmine/subclass_factory.rb +0 -47
  1104. data/spec/redmine/lib/redmine/sudo_mode.rb +0 -224
  1105. data/spec/redmine/lib/redmine/syntax_highlighting.rb +0 -66
  1106. data/spec/redmine/lib/redmine/themes.rb +0 -143
  1107. data/spec/redmine/lib/redmine/thumbnail.rb +0 -55
  1108. data/spec/redmine/lib/redmine/unified_diff.rb +0 -284
  1109. data/spec/redmine/lib/redmine/utils.rb +0 -118
  1110. data/spec/redmine/lib/redmine/version.rb +0 -37
  1111. data/spec/redmine/lib/redmine/views/api_template_handler.rb +0 -26
  1112. data/spec/redmine/lib/redmine/views/builders.rb +0 -38
  1113. data/spec/redmine/lib/redmine/views/builders/json.rb +0 -45
  1114. data/spec/redmine/lib/redmine/views/builders/structure.rb +0 -94
  1115. data/spec/redmine/lib/redmine/views/builders/xml.rb +0 -48
  1116. data/spec/redmine/lib/redmine/views/labelled_form_builder.rb +0 -55
  1117. data/spec/redmine/lib/redmine/views/my_page/block.rb +0 -32
  1118. data/spec/redmine/lib/redmine/views/other_formats_builder.rb +0 -33
  1119. data/spec/redmine/lib/redmine/wiki_formatting.rb +0 -200
  1120. data/spec/redmine/lib/redmine/wiki_formatting/html_parser.rb +0 -62
  1121. data/spec/redmine/lib/redmine/wiki_formatting/macros.rb +0 -256
  1122. data/spec/redmine/lib/redmine/wiki_formatting/markdown/formatter.rb +0 -137
  1123. data/spec/redmine/lib/redmine/wiki_formatting/markdown/helper.rb +0 -46
  1124. data/spec/redmine/lib/redmine/wiki_formatting/markdown/html_parser.rb +0 -39
  1125. data/spec/redmine/lib/redmine/wiki_formatting/textile/formatter.rb +0 -134
  1126. data/spec/redmine/lib/redmine/wiki_formatting/textile/helper.rb +0 -46
  1127. data/spec/redmine/lib/redmine/wiki_formatting/textile/html_parser.rb +0 -40
  1128. data/spec/redmine/lib/tasks/ci.rake +0 -97
  1129. data/spec/redmine/lib/tasks/ciphering.rake +0 -35
  1130. data/spec/redmine/lib/tasks/deprecated.rake +0 -13
  1131. data/spec/redmine/lib/tasks/email.rake +0 -185
  1132. data/spec/redmine/lib/tasks/extract_fixtures.rake +0 -22
  1133. data/spec/redmine/lib/tasks/initializers.rake +0 -24
  1134. data/spec/redmine/lib/tasks/load_default_data.rake +0 -36
  1135. data/spec/redmine/lib/tasks/locales.rake +0 -180
  1136. data/spec/redmine/lib/tasks/metrics.rake +0 -6
  1137. data/spec/redmine/lib/tasks/migrate_from_mantis.rake +0 -516
  1138. data/spec/redmine/lib/tasks/migrate_from_trac.rake +0 -777
  1139. data/spec/redmine/lib/tasks/permissions.rake +0 -9
  1140. data/spec/redmine/lib/tasks/redmine.rake +0 -179
  1141. data/spec/redmine/lib/tasks/reminder.rake +0 -45
  1142. data/spec/redmine/lib/tasks/testing.rake +0 -110
  1143. data/spec/redmine/lib/tasks/yardoc.rake +0 -21
  1144. data/spec/redmine/log/delete.me +0 -1
  1145. data/spec/redmine/plugins/README +0 -1
  1146. data/spec/redmine/public/404.html +0 -17
  1147. data/spec/redmine/public/500.html +0 -19
  1148. data/spec/redmine/public/dispatch.fcgi.example +0 -20
  1149. data/spec/redmine/public/favicon.ico +0 -0
  1150. data/spec/redmine/public/help/ar/wiki_syntax_detailed_markdown.html +0 -329
  1151. data/spec/redmine/public/help/ar/wiki_syntax_detailed_textile.html +0 -333
  1152. data/spec/redmine/public/help/ar/wiki_syntax_markdown.html +0 -82
  1153. data/spec/redmine/public/help/ar/wiki_syntax_textile.html +0 -85
  1154. data/spec/redmine/public/help/az/wiki_syntax_detailed_markdown.html +0 -329
  1155. data/spec/redmine/public/help/az/wiki_syntax_detailed_textile.html +0 -333
  1156. data/spec/redmine/public/help/az/wiki_syntax_markdown.html +0 -82
  1157. data/spec/redmine/public/help/az/wiki_syntax_textile.html +0 -85
  1158. data/spec/redmine/public/help/bg/wiki_syntax_detailed_markdown.html +0 -329
  1159. data/spec/redmine/public/help/bg/wiki_syntax_detailed_textile.html +0 -333
  1160. data/spec/redmine/public/help/bg/wiki_syntax_markdown.html +0 -82
  1161. data/spec/redmine/public/help/bg/wiki_syntax_textile.html +0 -85
  1162. data/spec/redmine/public/help/bs/wiki_syntax_detailed_markdown.html +0 -329
  1163. data/spec/redmine/public/help/bs/wiki_syntax_detailed_textile.html +0 -333
  1164. data/spec/redmine/public/help/bs/wiki_syntax_markdown.html +0 -82
  1165. data/spec/redmine/public/help/bs/wiki_syntax_textile.html +0 -85
  1166. data/spec/redmine/public/help/ca/wiki_syntax_detailed_markdown.html +0 -329
  1167. data/spec/redmine/public/help/ca/wiki_syntax_detailed_textile.html +0 -333
  1168. data/spec/redmine/public/help/ca/wiki_syntax_markdown.html +0 -82
  1169. data/spec/redmine/public/help/ca/wiki_syntax_textile.html +0 -85
  1170. data/spec/redmine/public/help/cs/wiki_syntax_detailed_markdown.html +0 -329
  1171. data/spec/redmine/public/help/cs/wiki_syntax_detailed_textile.html +0 -333
  1172. data/spec/redmine/public/help/cs/wiki_syntax_markdown.html +0 -82
  1173. data/spec/redmine/public/help/cs/wiki_syntax_textile.html +0 -85
  1174. data/spec/redmine/public/help/da/wiki_syntax_detailed_markdown.html +0 -329
  1175. data/spec/redmine/public/help/da/wiki_syntax_detailed_textile.html +0 -333
  1176. data/spec/redmine/public/help/da/wiki_syntax_markdown.html +0 -82
  1177. data/spec/redmine/public/help/da/wiki_syntax_textile.html +0 -85
  1178. data/spec/redmine/public/help/de/wiki_syntax_detailed_markdown.html +0 -329
  1179. data/spec/redmine/public/help/de/wiki_syntax_detailed_textile.html +0 -333
  1180. data/spec/redmine/public/help/de/wiki_syntax_markdown.html +0 -82
  1181. data/spec/redmine/public/help/de/wiki_syntax_textile.html +0 -85
  1182. data/spec/redmine/public/help/el/wiki_syntax_detailed_markdown.html +0 -329
  1183. data/spec/redmine/public/help/el/wiki_syntax_detailed_textile.html +0 -333
  1184. data/spec/redmine/public/help/el/wiki_syntax_markdown.html +0 -82
  1185. data/spec/redmine/public/help/el/wiki_syntax_textile.html +0 -85
  1186. data/spec/redmine/public/help/en-gb/wiki_syntax_detailed_markdown.html +0 -329
  1187. data/spec/redmine/public/help/en-gb/wiki_syntax_detailed_textile.html +0 -333
  1188. data/spec/redmine/public/help/en-gb/wiki_syntax_markdown.html +0 -82
  1189. data/spec/redmine/public/help/en-gb/wiki_syntax_textile.html +0 -85
  1190. data/spec/redmine/public/help/en/wiki_syntax_detailed_markdown.html +0 -329
  1191. data/spec/redmine/public/help/en/wiki_syntax_detailed_textile.html +0 -333
  1192. data/spec/redmine/public/help/en/wiki_syntax_markdown.html +0 -82
  1193. data/spec/redmine/public/help/en/wiki_syntax_textile.html +0 -85
  1194. data/spec/redmine/public/help/es-pa/wiki_syntax_detailed_markdown.html +0 -329
  1195. data/spec/redmine/public/help/es-pa/wiki_syntax_detailed_textile.html +0 -333
  1196. data/spec/redmine/public/help/es-pa/wiki_syntax_markdown.html +0 -82
  1197. data/spec/redmine/public/help/es-pa/wiki_syntax_textile.html +0 -86
  1198. data/spec/redmine/public/help/es/wiki_syntax_detailed_markdown.html +0 -329
  1199. data/spec/redmine/public/help/es/wiki_syntax_detailed_textile.html +0 -333
  1200. data/spec/redmine/public/help/es/wiki_syntax_markdown.html +0 -82
  1201. data/spec/redmine/public/help/es/wiki_syntax_textile.html +0 -86
  1202. data/spec/redmine/public/help/et/wiki_syntax_detailed_markdown.html +0 -329
  1203. data/spec/redmine/public/help/et/wiki_syntax_detailed_textile.html +0 -333
  1204. data/spec/redmine/public/help/et/wiki_syntax_markdown.html +0 -82
  1205. data/spec/redmine/public/help/et/wiki_syntax_textile.html +0 -85
  1206. data/spec/redmine/public/help/eu/wiki_syntax_detailed_markdown.html +0 -329
  1207. data/spec/redmine/public/help/eu/wiki_syntax_detailed_textile.html +0 -333
  1208. data/spec/redmine/public/help/eu/wiki_syntax_markdown.html +0 -82
  1209. data/spec/redmine/public/help/eu/wiki_syntax_textile.html +0 -85
  1210. data/spec/redmine/public/help/fa/wiki_syntax_detailed_markdown.html +0 -329
  1211. data/spec/redmine/public/help/fa/wiki_syntax_detailed_textile.html +0 -333
  1212. data/spec/redmine/public/help/fa/wiki_syntax_markdown.html +0 -82
  1213. data/spec/redmine/public/help/fa/wiki_syntax_textile.html +0 -85
  1214. data/spec/redmine/public/help/fi/wiki_syntax_detailed_markdown.html +0 -329
  1215. data/spec/redmine/public/help/fi/wiki_syntax_detailed_textile.html +0 -333
  1216. data/spec/redmine/public/help/fi/wiki_syntax_markdown.html +0 -82
  1217. data/spec/redmine/public/help/fi/wiki_syntax_textile.html +0 -85
  1218. data/spec/redmine/public/help/fr/wiki_syntax_detailed_markdown.html +0 -329
  1219. data/spec/redmine/public/help/fr/wiki_syntax_detailed_textile.html +0 -333
  1220. data/spec/redmine/public/help/fr/wiki_syntax_markdown.html +0 -82
  1221. data/spec/redmine/public/help/fr/wiki_syntax_textile.html +0 -85
  1222. data/spec/redmine/public/help/gl/wiki_syntax_detailed_markdown.html +0 -329
  1223. data/spec/redmine/public/help/gl/wiki_syntax_detailed_textile.html +0 -333
  1224. data/spec/redmine/public/help/gl/wiki_syntax_markdown.html +0 -82
  1225. data/spec/redmine/public/help/gl/wiki_syntax_textile.html +0 -85
  1226. data/spec/redmine/public/help/he/wiki_syntax_detailed_markdown.html +0 -329
  1227. data/spec/redmine/public/help/he/wiki_syntax_detailed_textile.html +0 -333
  1228. data/spec/redmine/public/help/he/wiki_syntax_markdown.html +0 -82
  1229. data/spec/redmine/public/help/he/wiki_syntax_textile.html +0 -85
  1230. data/spec/redmine/public/help/hr/wiki_syntax_detailed_markdown.html +0 -329
  1231. data/spec/redmine/public/help/hr/wiki_syntax_detailed_textile.html +0 -333
  1232. data/spec/redmine/public/help/hr/wiki_syntax_markdown.html +0 -82
  1233. data/spec/redmine/public/help/hr/wiki_syntax_textile.html +0 -85
  1234. data/spec/redmine/public/help/hu/wiki_syntax_detailed_markdown.html +0 -329
  1235. data/spec/redmine/public/help/hu/wiki_syntax_detailed_textile.html +0 -333
  1236. data/spec/redmine/public/help/hu/wiki_syntax_markdown.html +0 -82
  1237. data/spec/redmine/public/help/hu/wiki_syntax_textile.html +0 -85
  1238. data/spec/redmine/public/help/id/wiki_syntax_detailed_markdown.html +0 -329
  1239. data/spec/redmine/public/help/id/wiki_syntax_detailed_textile.html +0 -333
  1240. data/spec/redmine/public/help/id/wiki_syntax_markdown.html +0 -82
  1241. data/spec/redmine/public/help/id/wiki_syntax_textile.html +0 -85
  1242. data/spec/redmine/public/help/it/wiki_syntax_detailed_markdown.html +0 -329
  1243. data/spec/redmine/public/help/it/wiki_syntax_detailed_textile.html +0 -333
  1244. data/spec/redmine/public/help/it/wiki_syntax_markdown.html +0 -82
  1245. data/spec/redmine/public/help/it/wiki_syntax_textile.html +0 -85
  1246. data/spec/redmine/public/help/ja/wiki_syntax_detailed_markdown.html +0 -329
  1247. data/spec/redmine/public/help/ja/wiki_syntax_detailed_textile.html +0 -333
  1248. data/spec/redmine/public/help/ja/wiki_syntax_markdown.html +0 -82
  1249. data/spec/redmine/public/help/ja/wiki_syntax_textile.html +0 -85
  1250. data/spec/redmine/public/help/ko/wiki_syntax_detailed_markdown.html +0 -329
  1251. data/spec/redmine/public/help/ko/wiki_syntax_detailed_textile.html +0 -333
  1252. data/spec/redmine/public/help/ko/wiki_syntax_markdown.html +0 -82
  1253. data/spec/redmine/public/help/ko/wiki_syntax_textile.html +0 -85
  1254. data/spec/redmine/public/help/lt/wiki_syntax_detailed_markdown.html +0 -329
  1255. data/spec/redmine/public/help/lt/wiki_syntax_detailed_textile.html +0 -333
  1256. data/spec/redmine/public/help/lt/wiki_syntax_markdown.html +0 -82
  1257. data/spec/redmine/public/help/lt/wiki_syntax_textile.html +0 -85
  1258. data/spec/redmine/public/help/lv/wiki_syntax_detailed_markdown.html +0 -329
  1259. data/spec/redmine/public/help/lv/wiki_syntax_detailed_textile.html +0 -333
  1260. data/spec/redmine/public/help/lv/wiki_syntax_markdown.html +0 -82
  1261. data/spec/redmine/public/help/lv/wiki_syntax_textile.html +0 -85
  1262. data/spec/redmine/public/help/mk/wiki_syntax_detailed_markdown.html +0 -329
  1263. data/spec/redmine/public/help/mk/wiki_syntax_detailed_textile.html +0 -333
  1264. data/spec/redmine/public/help/mk/wiki_syntax_markdown.html +0 -82
  1265. data/spec/redmine/public/help/mk/wiki_syntax_textile.html +0 -85
  1266. data/spec/redmine/public/help/mn/wiki_syntax_detailed_markdown.html +0 -329
  1267. data/spec/redmine/public/help/mn/wiki_syntax_detailed_textile.html +0 -333
  1268. data/spec/redmine/public/help/mn/wiki_syntax_markdown.html +0 -82
  1269. data/spec/redmine/public/help/mn/wiki_syntax_textile.html +0 -85
  1270. data/spec/redmine/public/help/nl/wiki_syntax_detailed_markdown.html +0 -329
  1271. data/spec/redmine/public/help/nl/wiki_syntax_detailed_textile.html +0 -333
  1272. data/spec/redmine/public/help/nl/wiki_syntax_markdown.html +0 -82
  1273. data/spec/redmine/public/help/nl/wiki_syntax_textile.html +0 -85
  1274. data/spec/redmine/public/help/no/wiki_syntax_detailed_markdown.html +0 -329
  1275. data/spec/redmine/public/help/no/wiki_syntax_detailed_textile.html +0 -333
  1276. data/spec/redmine/public/help/no/wiki_syntax_markdown.html +0 -82
  1277. data/spec/redmine/public/help/no/wiki_syntax_textile.html +0 -85
  1278. data/spec/redmine/public/help/pl/wiki_syntax_detailed_markdown.html +0 -329
  1279. data/spec/redmine/public/help/pl/wiki_syntax_detailed_textile.html +0 -333
  1280. data/spec/redmine/public/help/pl/wiki_syntax_markdown.html +0 -82
  1281. data/spec/redmine/public/help/pl/wiki_syntax_textile.html +0 -85
  1282. data/spec/redmine/public/help/pt-br/wiki_syntax_detailed_markdown.html +0 -329
  1283. data/spec/redmine/public/help/pt-br/wiki_syntax_detailed_textile.html +0 -333
  1284. data/spec/redmine/public/help/pt-br/wiki_syntax_markdown.html +0 -82
  1285. data/spec/redmine/public/help/pt-br/wiki_syntax_textile.html +0 -85
  1286. data/spec/redmine/public/help/pt/wiki_syntax_detailed_markdown.html +0 -329
  1287. data/spec/redmine/public/help/pt/wiki_syntax_detailed_textile.html +0 -333
  1288. data/spec/redmine/public/help/pt/wiki_syntax_markdown.html +0 -82
  1289. data/spec/redmine/public/help/pt/wiki_syntax_textile.html +0 -85
  1290. data/spec/redmine/public/help/ro/wiki_syntax_detailed_markdown.html +0 -329
  1291. data/spec/redmine/public/help/ro/wiki_syntax_detailed_textile.html +0 -333
  1292. data/spec/redmine/public/help/ro/wiki_syntax_markdown.html +0 -82
  1293. data/spec/redmine/public/help/ro/wiki_syntax_textile.html +0 -85
  1294. data/spec/redmine/public/help/ru/wiki_syntax_detailed_markdown.html +0 -329
  1295. data/spec/redmine/public/help/ru/wiki_syntax_detailed_textile.html +0 -366
  1296. data/spec/redmine/public/help/ru/wiki_syntax_markdown.html +0 -82
  1297. data/spec/redmine/public/help/ru/wiki_syntax_textile.html +0 -170
  1298. data/spec/redmine/public/help/sk/wiki_syntax_detailed_markdown.html +0 -329
  1299. data/spec/redmine/public/help/sk/wiki_syntax_detailed_textile.html +0 -333
  1300. data/spec/redmine/public/help/sk/wiki_syntax_markdown.html +0 -82
  1301. data/spec/redmine/public/help/sk/wiki_syntax_textile.html +0 -85
  1302. data/spec/redmine/public/help/sl/wiki_syntax_detailed_markdown.html +0 -329
  1303. data/spec/redmine/public/help/sl/wiki_syntax_detailed_textile.html +0 -333
  1304. data/spec/redmine/public/help/sl/wiki_syntax_markdown.html +0 -82
  1305. data/spec/redmine/public/help/sl/wiki_syntax_textile.html +0 -85
  1306. data/spec/redmine/public/help/sq/wiki_syntax_detailed_markdown.html +0 -329
  1307. data/spec/redmine/public/help/sq/wiki_syntax_detailed_textile.html +0 -333
  1308. data/spec/redmine/public/help/sq/wiki_syntax_markdown.html +0 -82
  1309. data/spec/redmine/public/help/sq/wiki_syntax_textile.html +0 -85
  1310. data/spec/redmine/public/help/sr-yu/wiki_syntax_detailed_markdown.html +0 -329
  1311. data/spec/redmine/public/help/sr-yu/wiki_syntax_detailed_textile.html +0 -333
  1312. data/spec/redmine/public/help/sr-yu/wiki_syntax_markdown.html +0 -82
  1313. data/spec/redmine/public/help/sr-yu/wiki_syntax_textile.html +0 -85
  1314. data/spec/redmine/public/help/sr/wiki_syntax_detailed_markdown.html +0 -329
  1315. data/spec/redmine/public/help/sr/wiki_syntax_detailed_textile.html +0 -333
  1316. data/spec/redmine/public/help/sr/wiki_syntax_markdown.html +0 -82
  1317. data/spec/redmine/public/help/sr/wiki_syntax_textile.html +0 -85
  1318. data/spec/redmine/public/help/sv/wiki_syntax_detailed_markdown.html +0 -329
  1319. data/spec/redmine/public/help/sv/wiki_syntax_detailed_textile.html +0 -333
  1320. data/spec/redmine/public/help/sv/wiki_syntax_markdown.html +0 -82
  1321. data/spec/redmine/public/help/sv/wiki_syntax_textile.html +0 -85
  1322. data/spec/redmine/public/help/th/wiki_syntax_detailed_markdown.html +0 -329
  1323. data/spec/redmine/public/help/th/wiki_syntax_detailed_textile.html +0 -333
  1324. data/spec/redmine/public/help/th/wiki_syntax_markdown.html +0 -82
  1325. data/spec/redmine/public/help/th/wiki_syntax_textile.html +0 -85
  1326. data/spec/redmine/public/help/tr/wiki_syntax_detailed_markdown.html +0 -329
  1327. data/spec/redmine/public/help/tr/wiki_syntax_detailed_textile.html +0 -333
  1328. data/spec/redmine/public/help/tr/wiki_syntax_markdown.html +0 -82
  1329. data/spec/redmine/public/help/tr/wiki_syntax_textile.html +0 -85
  1330. data/spec/redmine/public/help/uk/wiki_syntax_detailed_markdown.html +0 -329
  1331. data/spec/redmine/public/help/uk/wiki_syntax_detailed_textile.html +0 -333
  1332. data/spec/redmine/public/help/uk/wiki_syntax_markdown.html +0 -82
  1333. data/spec/redmine/public/help/uk/wiki_syntax_textile.html +0 -85
  1334. data/spec/redmine/public/help/vi/wiki_syntax_detailed_markdown.html +0 -329
  1335. data/spec/redmine/public/help/vi/wiki_syntax_detailed_textile.html +0 -333
  1336. data/spec/redmine/public/help/vi/wiki_syntax_markdown.html +0 -82
  1337. data/spec/redmine/public/help/vi/wiki_syntax_textile.html +0 -85
  1338. data/spec/redmine/public/help/zh-tw/wiki_syntax_detailed_markdown.html +0 -329
  1339. data/spec/redmine/public/help/zh-tw/wiki_syntax_detailed_textile.html +0 -333
  1340. data/spec/redmine/public/help/zh-tw/wiki_syntax_markdown.html +0 -82
  1341. data/spec/redmine/public/help/zh-tw/wiki_syntax_textile.html +0 -85
  1342. data/spec/redmine/public/help/zh/wiki_syntax_detailed_markdown.html +0 -329
  1343. data/spec/redmine/public/help/zh/wiki_syntax_detailed_textile.html +0 -333
  1344. data/spec/redmine/public/help/zh/wiki_syntax_markdown.html +0 -82
  1345. data/spec/redmine/public/help/zh/wiki_syntax_textile.html +0 -85
  1346. data/spec/redmine/public/htaccess.fcgi.example +0 -49
  1347. data/spec/redmine/public/images/1downarrow.png +0 -0
  1348. data/spec/redmine/public/images/1uparrow.png +0 -0
  1349. data/spec/redmine/public/images/2downarrow.png +0 -0
  1350. data/spec/redmine/public/images/2uparrow.png +0 -0
  1351. data/spec/redmine/public/images/add.png +0 -0
  1352. data/spec/redmine/public/images/arrow_collapsed.png +0 -0
  1353. data/spec/redmine/public/images/arrow_down.png +0 -0
  1354. data/spec/redmine/public/images/arrow_expanded.png +0 -0
  1355. data/spec/redmine/public/images/attachment.png +0 -0
  1356. data/spec/redmine/public/images/bullet_add.png +0 -0
  1357. data/spec/redmine/public/images/bullet_arrow_left.png +0 -0
  1358. data/spec/redmine/public/images/bullet_arrow_right.png +0 -0
  1359. data/spec/redmine/public/images/bullet_black.png +0 -0
  1360. data/spec/redmine/public/images/bullet_blue.png +0 -0
  1361. data/spec/redmine/public/images/bullet_delete.png +0 -0
  1362. data/spec/redmine/public/images/bullet_diamond.png +0 -0
  1363. data/spec/redmine/public/images/bullet_end.png +0 -0
  1364. data/spec/redmine/public/images/bullet_go.png +0 -0
  1365. data/spec/redmine/public/images/bullet_orange.png +0 -0
  1366. data/spec/redmine/public/images/bullet_purple.png +0 -0
  1367. data/spec/redmine/public/images/bullet_toggle_minus.png +0 -0
  1368. data/spec/redmine/public/images/bullet_toggle_plus.png +0 -0
  1369. data/spec/redmine/public/images/calendar.png +0 -0
  1370. data/spec/redmine/public/images/cancel.png +0 -0
  1371. data/spec/redmine/public/images/changeset.png +0 -0
  1372. data/spec/redmine/public/images/close.png +0 -0
  1373. data/spec/redmine/public/images/close_hl.png +0 -0
  1374. data/spec/redmine/public/images/comment.png +0 -0
  1375. data/spec/redmine/public/images/comments.png +0 -0
  1376. data/spec/redmine/public/images/copy.png +0 -0
  1377. data/spec/redmine/public/images/database_key.png +0 -0
  1378. data/spec/redmine/public/images/delete.png +0 -0
  1379. data/spec/redmine/public/images/document.png +0 -0
  1380. data/spec/redmine/public/images/draft.png +0 -0
  1381. data/spec/redmine/public/images/duplicate.png +0 -0
  1382. data/spec/redmine/public/images/edit.png +0 -0
  1383. data/spec/redmine/public/images/email.png +0 -0
  1384. data/spec/redmine/public/images/email_add.png +0 -0
  1385. data/spec/redmine/public/images/email_disabled.png +0 -0
  1386. data/spec/redmine/public/images/exclamation.png +0 -0
  1387. data/spec/redmine/public/images/external.png +0 -0
  1388. data/spec/redmine/public/images/false.png +0 -0
  1389. data/spec/redmine/public/images/fav.png +0 -0
  1390. data/spec/redmine/public/images/fav_off.png +0 -0
  1391. data/spec/redmine/public/images/feed.png +0 -0
  1392. data/spec/redmine/public/images/files/c.png +0 -0
  1393. data/spec/redmine/public/images/files/csharp.png +0 -0
  1394. data/spec/redmine/public/images/files/css.png +0 -0
  1395. data/spec/redmine/public/images/files/default.png +0 -0
  1396. data/spec/redmine/public/images/files/html.png +0 -0
  1397. data/spec/redmine/public/images/files/image.png +0 -0
  1398. data/spec/redmine/public/images/files/java.png +0 -0
  1399. data/spec/redmine/public/images/files/js.png +0 -0
  1400. data/spec/redmine/public/images/files/pdf.png +0 -0
  1401. data/spec/redmine/public/images/files/php.png +0 -0
  1402. data/spec/redmine/public/images/files/ruby.png +0 -0
  1403. data/spec/redmine/public/images/files/text.png +0 -0
  1404. data/spec/redmine/public/images/files/xml.png +0 -0
  1405. data/spec/redmine/public/images/files/zip.png +0 -0
  1406. data/spec/redmine/public/images/folder.png +0 -0
  1407. data/spec/redmine/public/images/folder_open.png +0 -0
  1408. data/spec/redmine/public/images/folder_open_add.png +0 -0
  1409. data/spec/redmine/public/images/folder_open_orange.png +0 -0
  1410. data/spec/redmine/public/images/group.png +0 -0
  1411. data/spec/redmine/public/images/help.png +0 -0
  1412. data/spec/redmine/public/images/history.png +0 -0
  1413. data/spec/redmine/public/images/hourglass.png +0 -0
  1414. data/spec/redmine/public/images/jstoolbar/bt_bq.png +0 -0
  1415. data/spec/redmine/public/images/jstoolbar/bt_bq_remove.png +0 -0
  1416. data/spec/redmine/public/images/jstoolbar/bt_code.png +0 -0
  1417. data/spec/redmine/public/images/jstoolbar/bt_del.png +0 -0
  1418. data/spec/redmine/public/images/jstoolbar/bt_em.png +0 -0
  1419. data/spec/redmine/public/images/jstoolbar/bt_h1.png +0 -0
  1420. data/spec/redmine/public/images/jstoolbar/bt_h2.png +0 -0
  1421. data/spec/redmine/public/images/jstoolbar/bt_h3.png +0 -0
  1422. data/spec/redmine/public/images/jstoolbar/bt_img.png +0 -0
  1423. data/spec/redmine/public/images/jstoolbar/bt_ins.png +0 -0
  1424. data/spec/redmine/public/images/jstoolbar/bt_link.png +0 -0
  1425. data/spec/redmine/public/images/jstoolbar/bt_ol.png +0 -0
  1426. data/spec/redmine/public/images/jstoolbar/bt_pre.png +0 -0
  1427. data/spec/redmine/public/images/jstoolbar/bt_strong.png +0 -0
  1428. data/spec/redmine/public/images/jstoolbar/bt_ul.png +0 -0
  1429. data/spec/redmine/public/images/lightning.png +0 -0
  1430. data/spec/redmine/public/images/link.png +0 -0
  1431. data/spec/redmine/public/images/link_break.png +0 -0
  1432. data/spec/redmine/public/images/loading.gif +0 -0
  1433. data/spec/redmine/public/images/locked.png +0 -0
  1434. data/spec/redmine/public/images/magnifier.png +0 -0
  1435. data/spec/redmine/public/images/message.png +0 -0
  1436. data/spec/redmine/public/images/milestone_done.png +0 -0
  1437. data/spec/redmine/public/images/milestone_late.png +0 -0
  1438. data/spec/redmine/public/images/milestone_todo.png +0 -0
  1439. data/spec/redmine/public/images/move.png +0 -0
  1440. data/spec/redmine/public/images/news.png +0 -0
  1441. data/spec/redmine/public/images/openid-bg.gif +0 -0
  1442. data/spec/redmine/public/images/package.png +0 -0
  1443. data/spec/redmine/public/images/plugin.png +0 -0
  1444. data/spec/redmine/public/images/project_marker.png +0 -0
  1445. data/spec/redmine/public/images/projects.png +0 -0
  1446. data/spec/redmine/public/images/reload.png +0 -0
  1447. data/spec/redmine/public/images/report.png +0 -0
  1448. data/spec/redmine/public/images/save.png +0 -0
  1449. data/spec/redmine/public/images/server_key.png +0 -0
  1450. data/spec/redmine/public/images/sort_asc.png +0 -0
  1451. data/spec/redmine/public/images/sort_desc.png +0 -0
  1452. data/spec/redmine/public/images/stats.png +0 -0
  1453. data/spec/redmine/public/images/table_multiple.png +0 -0
  1454. data/spec/redmine/public/images/task_done.png +0 -0
  1455. data/spec/redmine/public/images/task_late.png +0 -0
  1456. data/spec/redmine/public/images/task_parent_end.png +0 -0
  1457. data/spec/redmine/public/images/task_todo.png +0 -0
  1458. data/spec/redmine/public/images/text_list_bullets.png +0 -0
  1459. data/spec/redmine/public/images/textfield.png +0 -0
  1460. data/spec/redmine/public/images/textfield_key.png +0 -0
  1461. data/spec/redmine/public/images/ticket.png +0 -0
  1462. data/spec/redmine/public/images/ticket_checked.png +0 -0
  1463. data/spec/redmine/public/images/ticket_edit.png +0 -0
  1464. data/spec/redmine/public/images/ticket_go.png +0 -0
  1465. data/spec/redmine/public/images/ticket_note.png +0 -0
  1466. data/spec/redmine/public/images/time.png +0 -0
  1467. data/spec/redmine/public/images/time_add.png +0 -0
  1468. data/spec/redmine/public/images/toggle_check.png +0 -0
  1469. data/spec/redmine/public/images/true.png +0 -0
  1470. data/spec/redmine/public/images/unlock.png +0 -0
  1471. data/spec/redmine/public/images/user.png +0 -0
  1472. data/spec/redmine/public/images/version_marker.png +0 -0
  1473. data/spec/redmine/public/images/warning.png +0 -0
  1474. data/spec/redmine/public/images/wiki_edit.png +0 -0
  1475. data/spec/redmine/public/images/zoom_in.png +0 -0
  1476. data/spec/redmine/public/images/zoom_out.png +0 -0
  1477. data/spec/redmine/public/javascripts/application.js +0 -656
  1478. data/spec/redmine/public/javascripts/attachments.js +0 -191
  1479. data/spec/redmine/public/javascripts/context_menu.js +0 -239
  1480. data/spec/redmine/public/javascripts/gantt.js +0 -175
  1481. data/spec/redmine/public/javascripts/i18n/datepicker-ar.js +0 -37
  1482. data/spec/redmine/public/javascripts/i18n/datepicker-az.js +0 -37
  1483. data/spec/redmine/public/javascripts/i18n/datepicker-bg.js +0 -38
  1484. data/spec/redmine/public/javascripts/i18n/datepicker-bs.js +0 -37
  1485. data/spec/redmine/public/javascripts/i18n/datepicker-ca.js +0 -37
  1486. data/spec/redmine/public/javascripts/i18n/datepicker-cs.js +0 -37
  1487. data/spec/redmine/public/javascripts/i18n/datepicker-da.js +0 -37
  1488. data/spec/redmine/public/javascripts/i18n/datepicker-de.js +0 -37
  1489. data/spec/redmine/public/javascripts/i18n/datepicker-el.js +0 -37
  1490. data/spec/redmine/public/javascripts/i18n/datepicker-en-GB.js +0 -37
  1491. data/spec/redmine/public/javascripts/i18n/datepicker-es.js +0 -37
  1492. data/spec/redmine/public/javascripts/i18n/datepicker-et.js +0 -37
  1493. data/spec/redmine/public/javascripts/i18n/datepicker-eu.js +0 -36
  1494. data/spec/redmine/public/javascripts/i18n/datepicker-fa.js +0 -73
  1495. data/spec/redmine/public/javascripts/i18n/datepicker-fi.js +0 -37
  1496. data/spec/redmine/public/javascripts/i18n/datepicker-fr.js +0 -39
  1497. data/spec/redmine/public/javascripts/i18n/datepicker-gl.js +0 -37
  1498. data/spec/redmine/public/javascripts/i18n/datepicker-he.js +0 -37
  1499. data/spec/redmine/public/javascripts/i18n/datepicker-hr.js +0 -37
  1500. data/spec/redmine/public/javascripts/i18n/datepicker-hu.js +0 -36
  1501. data/spec/redmine/public/javascripts/i18n/datepicker-id.js +0 -37
  1502. data/spec/redmine/public/javascripts/i18n/datepicker-it.js +0 -37
  1503. data/spec/redmine/public/javascripts/i18n/datepicker-ja.js +0 -37
  1504. data/spec/redmine/public/javascripts/i18n/datepicker-ko.js +0 -37
  1505. data/spec/redmine/public/javascripts/i18n/datepicker-lt.js +0 -37
  1506. data/spec/redmine/public/javascripts/i18n/datepicker-lv.js +0 -37
  1507. data/spec/redmine/public/javascripts/i18n/datepicker-mk.js +0 -37
  1508. data/spec/redmine/public/javascripts/i18n/datepicker-nl.js +0 -37
  1509. data/spec/redmine/public/javascripts/i18n/datepicker-no.js +0 -37
  1510. data/spec/redmine/public/javascripts/i18n/datepicker-pl.js +0 -37
  1511. data/spec/redmine/public/javascripts/i18n/datepicker-pt-BR.js +0 -37
  1512. data/spec/redmine/public/javascripts/i18n/datepicker-pt.js +0 -36
  1513. data/spec/redmine/public/javascripts/i18n/datepicker-ro.js +0 -40
  1514. data/spec/redmine/public/javascripts/i18n/datepicker-ru.js +0 -37
  1515. data/spec/redmine/public/javascripts/i18n/datepicker-sk.js +0 -37
  1516. data/spec/redmine/public/javascripts/i18n/datepicker-sl.js +0 -38
  1517. data/spec/redmine/public/javascripts/i18n/datepicker-sq.js +0 -37
  1518. data/spec/redmine/public/javascripts/i18n/datepicker-sr.js +0 -37
  1519. data/spec/redmine/public/javascripts/i18n/datepicker-sv.js +0 -37
  1520. data/spec/redmine/public/javascripts/i18n/datepicker-th.js +0 -37
  1521. data/spec/redmine/public/javascripts/i18n/datepicker-tr.js +0 -37
  1522. data/spec/redmine/public/javascripts/i18n/datepicker-uk.js +0 -38
  1523. data/spec/redmine/public/javascripts/i18n/datepicker-vi.js +0 -37
  1524. data/spec/redmine/public/javascripts/i18n/datepicker-zh-CN.js +0 -37
  1525. data/spec/redmine/public/javascripts/i18n/datepicker-zh-TW.js +0 -37
  1526. data/spec/redmine/public/javascripts/jquery-1.11.1-ui-1.11.0-ujs-3.1.3.js +0 -21
  1527. data/spec/redmine/public/javascripts/jstoolbar/jstoolbar-textile.min.js +0 -2
  1528. data/spec/redmine/public/javascripts/jstoolbar/jstoolbar.js +0 -374
  1529. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ar.js +0 -16
  1530. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-az.js +0 -16
  1531. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-bg.js +0 -16
  1532. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-bs.js +0 -14
  1533. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ca.js +0 -16
  1534. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-cs.js +0 -16
  1535. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-da.js +0 -16
  1536. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-de.js +0 -16
  1537. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-en-gb.js +0 -16
  1538. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-en.js +0 -16
  1539. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-es-pa.js +0 -16
  1540. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-es.js +0 -16
  1541. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-et.js +0 -33
  1542. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-eu.js +0 -20
  1543. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-fa.js +0 -16
  1544. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-fi.js +0 -16
  1545. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-fr.js +0 -16
  1546. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-gl.js +0 -16
  1547. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-he.js +0 -16
  1548. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-hr.js +0 -16
  1549. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-hu.js +0 -16
  1550. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-id.js +0 -16
  1551. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-it.js +0 -19
  1552. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ja.js +0 -16
  1553. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ko.js +0 -16
  1554. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-lt.js +0 -16
  1555. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-lv.js +0 -17
  1556. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-mk.js +0 -17
  1557. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-mn.js +0 -16
  1558. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-nl.js +0 -16
  1559. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-no.js +0 -16
  1560. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-pl.js +0 -17
  1561. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-pt-br.js +0 -18
  1562. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-pt.js +0 -17
  1563. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ro.js +0 -16
  1564. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-ru.js +0 -16
  1565. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sk.js +0 -16
  1566. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sl.js +0 -16
  1567. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sq.js +0 -16
  1568. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sr-yu.js +0 -16
  1569. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sr.js +0 -16
  1570. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-sv.js +0 -16
  1571. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-th.js +0 -16
  1572. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-tr.js +0 -14
  1573. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-uk.js +0 -16
  1574. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-vi.js +0 -16
  1575. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-zh-tw.js +0 -16
  1576. data/spec/redmine/public/javascripts/jstoolbar/lang/jstoolbar-zh.js +0 -16
  1577. data/spec/redmine/public/javascripts/jstoolbar/markdown.js +0 -202
  1578. data/spec/redmine/public/javascripts/jstoolbar/textile.js +0 -211
  1579. data/spec/redmine/public/javascripts/project_identifier.js +0 -81
  1580. data/spec/redmine/public/javascripts/raphael.js +0 -10
  1581. data/spec/redmine/public/javascripts/repository_navigation.js +0 -36
  1582. data/spec/redmine/public/javascripts/revision_graph.js +0 -97
  1583. data/spec/redmine/public/plugin_assets/empty +0 -0
  1584. data/spec/redmine/public/stylesheets/application.css +0 -1225
  1585. data/spec/redmine/public/stylesheets/context_menu.css +0 -52
  1586. data/spec/redmine/public/stylesheets/context_menu_rtl.css +0 -9
  1587. data/spec/redmine/public/stylesheets/jquery/images/animated-overlay.gif +0 -0
  1588. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
  1589. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
  1590. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_flat_10_000000_40x100.png +0 -0
  1591. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_glass_100_eef5fd_1x400.png +0 -0
  1592. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
  1593. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
  1594. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_gloss-wave_35_759fcf_500x100.png +0 -0
  1595. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
  1596. data/spec/redmine/public/stylesheets/jquery/images/ui-bg_highlight-soft_75_759fcf_1x100.png +0 -0
  1597. data/spec/redmine/public/stylesheets/jquery/images/ui-icons_222222_256x240.png +0 -0
  1598. data/spec/redmine/public/stylesheets/jquery/images/ui-icons_759fcf_256x240.png +0 -0
  1599. data/spec/redmine/public/stylesheets/jquery/images/ui-icons_ffd27a_256x240.png +0 -0
  1600. data/spec/redmine/public/stylesheets/jquery/images/ui-icons_ffffff_256x240.png +0 -0
  1601. data/spec/redmine/public/stylesheets/jquery/jquery-ui-1.11.0.css +0 -7
  1602. data/spec/redmine/public/stylesheets/jstoolbar.css +0 -100
  1603. data/spec/redmine/public/stylesheets/rtl.css +0 -385
  1604. data/spec/redmine/public/stylesheets/scm.css +0 -107
  1605. data/spec/redmine/public/themes/README +0 -1
  1606. data/spec/redmine/public/themes/alternate/stylesheets/application.css +0 -70
  1607. data/spec/redmine/public/themes/classic/images/home.png +0 -0
  1608. data/spec/redmine/public/themes/classic/images/wrench.png +0 -0
  1609. data/spec/redmine/public/themes/classic/stylesheets/application.css +0 -41
  1610. data/spec/redmine/script/about +0 -2
  1611. data/spec/redmine/script/rails +0 -2
  1612. data/spec/redmine/test/coverage/html_formatter.rb +0 -70
  1613. data/spec/redmine/test/coverage/views/index.erb +0 -60
  1614. data/spec/redmine/test/coverage/views/source.erb +0 -41
  1615. data/spec/redmine/test/extra/redmine_pm/repository_git_test_pm.rb +0 -97
  1616. data/spec/redmine/test/extra/redmine_pm/repository_subversion_test_pm.rb +0 -309
  1617. data/spec/redmine/test/extra/redmine_pm/test_case.rb +0 -82
  1618. data/spec/redmine/test/fixtures/attachments.yml +0 -269
  1619. data/spec/redmine/test/fixtures/auth_sources.yml +0 -13
  1620. data/spec/redmine/test/fixtures/boards.yml +0 -28
  1621. data/spec/redmine/test/fixtures/changes.yml +0 -22
  1622. data/spec/redmine/test/fixtures/changesets.yml +0 -104
  1623. data/spec/redmine/test/fixtures/comments.yml +0 -17
  1624. data/spec/redmine/test/fixtures/configuration/default.yml +0 -8
  1625. data/spec/redmine/test/fixtures/configuration/empty.yml +0 -7
  1626. data/spec/redmine/test/fixtures/configuration/no_default.yml +0 -8
  1627. data/spec/redmine/test/fixtures/configuration/overrides.yml +0 -9
  1628. data/spec/redmine/test/fixtures/custom_fields.yml +0 -147
  1629. data/spec/redmine/test/fixtures/custom_fields_projects.yml +0 -4
  1630. data/spec/redmine/test/fixtures/custom_fields_trackers.yml +0 -31
  1631. data/spec/redmine/test/fixtures/custom_values.yml +0 -103
  1632. data/spec/redmine/test/fixtures/diffs/issue-12641-ja.diff +0 -25
  1633. data/spec/redmine/test/fixtures/diffs/issue-12641-ru.diff +0 -19
  1634. data/spec/redmine/test/fixtures/diffs/issue-13644-1.diff +0 -7
  1635. data/spec/redmine/test/fixtures/diffs/issue-13644-2.diff +0 -7
  1636. data/spec/redmine/test/fixtures/diffs/issue-13644-3.diff +0 -7
  1637. data/spec/redmine/test/fixtures/diffs/issue-13644-4.diff +0 -7
  1638. data/spec/redmine/test/fixtures/diffs/issue-13644-5.diff +0 -7
  1639. data/spec/redmine/test/fixtures/diffs/partials.diff +0 -46
  1640. data/spec/redmine/test/fixtures/diffs/subversion.diff +0 -79
  1641. data/spec/redmine/test/fixtures/documents.yml +0 -14
  1642. data/spec/redmine/test/fixtures/email_addresses.yml +0 -57
  1643. data/spec/redmine/test/fixtures/enabled_modules.yml +0 -105
  1644. data/spec/redmine/test/fixtures/encoding/iso-8859-1.txt +0 -1
  1645. data/spec/redmine/test/fixtures/enumerations.yml +0 -103
  1646. data/spec/redmine/test/fixtures/files/2006/07/060719210727_archive.zip +0 -0
  1647. data/spec/redmine/test/fixtures/files/2006/07/060719210727_changeset_iso8859-1.diff +0 -13
  1648. data/spec/redmine/test/fixtures/files/2006/07/060719210727_changeset_utf8.diff +0 -13
  1649. data/spec/redmine/test/fixtures/files/2006/07/060719210727_source.rb +0 -10
  1650. data/spec/redmine/test/fixtures/files/2010/11/101123161450_testfile_1.png +0 -0
  1651. data/spec/redmine/test/fixtures/files/2010/12/101223161450_testfile_2.png +0 -0
  1652. data/spec/redmine/test/fixtures/files/hg-export.diff +0 -13
  1653. data/spec/redmine/test/fixtures/files/iso8859-1.txt +0 -13
  1654. data/spec/redmine/test/fixtures/files/japanese-utf-8.txt +0 -1
  1655. data/spec/redmine/test/fixtures/files/testfile.txt +0 -2
  1656. data/spec/redmine/test/fixtures/groups_users.yml +0 -7
  1657. data/spec/redmine/test/fixtures/issue_categories.yml +0 -21
  1658. data/spec/redmine/test/fixtures/issue_relations.yml +0 -12
  1659. data/spec/redmine/test/fixtures/issue_statuses.yml +0 -31
  1660. data/spec/redmine/test/fixtures/issues.yml +0 -268
  1661. data/spec/redmine/test/fixtures/journal_details.yml +0 -43
  1662. data/spec/redmine/test/fixtures/journals.yml +0 -36
  1663. data/spec/redmine/test/fixtures/ldap/slapd.conf +0 -19
  1664. data/spec/redmine/test/fixtures/ldap/test-ldap.ldif +0 -82
  1665. data/spec/redmine/test/fixtures/mail_handler/apple_mail_with_attachment.eml +0 -240
  1666. data/spec/redmine/test/fixtures/mail_handler/body_ks_c_5601-1987.eml +0 -14
  1667. data/spec/redmine/test/fixtures/mail_handler/fullname_of_sender_as_utf8_encoded.eml +0 -5
  1668. data/spec/redmine/test/fixtures/mail_handler/gmail-iso8859-2.eml +0 -11
  1669. data/spec/redmine/test/fixtures/mail_handler/gmail_with_attachment_iso-8859-1.eml +0 -26
  1670. data/spec/redmine/test/fixtures/mail_handler/gmail_with_attachment_ja.eml +0 -20
  1671. data/spec/redmine/test/fixtures/mail_handler/issue_update_with_multiple_quoted_reply_above.eml +0 -48
  1672. data/spec/redmine/test/fixtures/mail_handler/issue_update_with_quoted_reply_above.eml +0 -48
  1673. data/spec/redmine/test/fixtures/mail_handler/japanese_keywords_iso_2022_jp.eml +0 -60
  1674. data/spec/redmine/test/fixtures/mail_handler/message_reply.eml +0 -15
  1675. data/spec/redmine/test/fixtures/mail_handler/message_reply_by_subject.eml +0 -13
  1676. data/spec/redmine/test/fixtures/mail_handler/multiple_text_parts.eml +0 -62
  1677. data/spec/redmine/test/fixtures/mail_handler/no_subject_header.eml +0 -10
  1678. data/spec/redmine/test/fixtures/mail_handler/outlook_2010_html_only.eml +0 -966
  1679. data/spec/redmine/test/fixtures/mail_handler/outlook_web_access_2010_html_only.eml +0 -65
  1680. data/spec/redmine/test/fixtures/mail_handler/quoted_printable_utf8.eml +0 -19
  1681. data/spec/redmine/test/fixtures/mail_handler/subject_as_iso-8859-1.eml +0 -11
  1682. data/spec/redmine/test/fixtures/mail_handler/subject_japanese_1.eml +0 -7
  1683. data/spec/redmine/test/fixtures/mail_handler/subject_japanese_2.eml +0 -7
  1684. data/spec/redmine/test/fixtures/mail_handler/thunderbird_with_attachment_iso-8859-1.eml +0 -34
  1685. data/spec/redmine/test/fixtures/mail_handler/thunderbird_with_attachment_ja.eml +0 -26
  1686. data/spec/redmine/test/fixtures/mail_handler/ticket_by_empty_user.eml +0 -17
  1687. data/spec/redmine/test/fixtures/mail_handler/ticket_by_unknown_user.eml +0 -18
  1688. data/spec/redmine/test/fixtures/mail_handler/ticket_from_emission_address.eml +0 -19
  1689. data/spec/redmine/test/fixtures/mail_handler/ticket_html_only.eml +0 -23
  1690. data/spec/redmine/test/fixtures/mail_handler/ticket_on_given_project.eml +0 -60
  1691. data/spec/redmine/test/fixtures/mail_handler/ticket_reply.eml +0 -74
  1692. data/spec/redmine/test/fixtures/mail_handler/ticket_reply_with_status.eml +0 -80
  1693. data/spec/redmine/test/fixtures/mail_handler/ticket_with_attachment.eml +0 -248
  1694. data/spec/redmine/test/fixtures/mail_handler/ticket_with_attributes.eml +0 -43
  1695. data/spec/redmine/test/fixtures/mail_handler/ticket_with_cc.eml +0 -40
  1696. data/spec/redmine/test/fixtures/mail_handler/ticket_with_custom_fields.eml +0 -42
  1697. data/spec/redmine/test/fixtures/mail_handler/ticket_with_duplicate_keyword.eml +0 -25
  1698. data/spec/redmine/test/fixtures/mail_handler/ticket_with_invalid_attributes.eml +0 -47
  1699. data/spec/redmine/test/fixtures/mail_handler/ticket_with_keyword_after_delimiter.eml +0 -27
  1700. data/spec/redmine/test/fixtures/mail_handler/ticket_with_localized_attributes.eml +0 -43
  1701. data/spec/redmine/test/fixtures/mail_handler/ticket_with_long_subject.eml +0 -57
  1702. data/spec/redmine/test/fixtures/mail_handler/ticket_with_spaces_between_attribute_and_separator.eml +0 -43
  1703. data/spec/redmine/test/fixtures/mail_handler/ticket_without_from_header.eml +0 -40
  1704. data/spec/redmine/test/fixtures/member_roles.yml +0 -53
  1705. data/spec/redmine/test/fixtures/members.yml +0 -62
  1706. data/spec/redmine/test/fixtures/messages.yml +0 -79
  1707. data/spec/redmine/test/fixtures/news.yml +0 -31
  1708. data/spec/redmine/test/fixtures/plugins/foo_plugin/_foo_plugin_settings.html.erb +0 -1
  1709. data/spec/redmine/test/fixtures/projects.yml +0 -73
  1710. data/spec/redmine/test/fixtures/projects_trackers.yml +0 -46
  1711. data/spec/redmine/test/fixtures/queries.yml +0 -165
  1712. data/spec/redmine/test/fixtures/repositories.yml +0 -21
  1713. data/spec/redmine/test/fixtures/repositories/bazaar_repository.tar.gz +0 -0
  1714. data/spec/redmine/test/fixtures/repositories/cvs_repository.tar.gz +0 -0
  1715. data/spec/redmine/test/fixtures/repositories/darcs_repository.tar.gz +0 -0
  1716. data/spec/redmine/test/fixtures/repositories/filesystem_repository.tar.gz +0 -0
  1717. data/spec/redmine/test/fixtures/repositories/git_repository.tar.gz +0 -0
  1718. data/spec/redmine/test/fixtures/repositories/mercurial_repository.hg +0 -0
  1719. data/spec/redmine/test/fixtures/repositories/subversion_repository.dump.gz +0 -0
  1720. data/spec/redmine/test/fixtures/roles.yml +0 -206
  1721. data/spec/redmine/test/fixtures/time_entries.yml +0 -72
  1722. data/spec/redmine/test/fixtures/tokens.yml +0 -13
  1723. data/spec/redmine/test/fixtures/trackers.yml +0 -19
  1724. data/spec/redmine/test/fixtures/user_preferences.yml +0 -31
  1725. data/spec/redmine/test/fixtures/users.yml +0 -171
  1726. data/spec/redmine/test/fixtures/versions.yml +0 -71
  1727. data/spec/redmine/test/fixtures/watchers.yml +0 -13
  1728. data/spec/redmine/test/fixtures/wiki_content_versions.yml +0 -116
  1729. data/spec/redmine/test/fixtures/wiki_contents.yml +0 -136
  1730. data/spec/redmine/test/fixtures/wiki_pages.yml +0 -85
  1731. data/spec/redmine/test/fixtures/wikis.yml +0 -11
  1732. data/spec/redmine/test/fixtures/workflows.yml +0 -1884
  1733. data/spec/redmine/test/functional/account_controller_openid_test.rb +0 -175
  1734. data/spec/redmine/test/functional/account_controller_test.rb +0 -424
  1735. data/spec/redmine/test/functional/activities_controller_test.rb +0 -160
  1736. data/spec/redmine/test/functional/admin_controller_test.rb +0 -168
  1737. data/spec/redmine/test/functional/attachments_controller_test.rb +0 -467
  1738. data/spec/redmine/test/functional/auth_sources_controller_test.rb +0 -173
  1739. data/spec/redmine/test/functional/auto_completes_controller_test.rb +0 -90
  1740. data/spec/redmine/test/functional/boards_controller_test.rb +0 -221
  1741. data/spec/redmine/test/functional/calendars_controller_test.rb +0 -90
  1742. data/spec/redmine/test/functional/comments_controller_test.rb +0 -64
  1743. data/spec/redmine/test/functional/context_menus_controller_test.rb +0 -300
  1744. data/spec/redmine/test/functional/custom_fields_controller_test.rb +0 -238
  1745. data/spec/redmine/test/functional/documents_controller_test.rb +0 -185
  1746. data/spec/redmine/test/functional/email_addresses_controller_test.rb +0 -144
  1747. data/spec/redmine/test/functional/enumerations_controller_test.rb +0 -136
  1748. data/spec/redmine/test/functional/files_controller_test.rb +0 -120
  1749. data/spec/redmine/test/functional/gantts_controller_test.rb +0 -134
  1750. data/spec/redmine/test/functional/groups_controller_test.rb +0 -164
  1751. data/spec/redmine/test/functional/issue_categories_controller_test.rb +0 -145
  1752. data/spec/redmine/test/functional/issue_relations_controller_test.rb +0 -160
  1753. data/spec/redmine/test/functional/issue_statuses_controller_test.rb +0 -136
  1754. data/spec/redmine/test/functional/issues_controller_test.rb +0 -4273
  1755. data/spec/redmine/test/functional/issues_controller_transaction_test.rb +0 -261
  1756. data/spec/redmine/test/functional/issues_custom_fields_visibility_test.rb +0 -322
  1757. data/spec/redmine/test/functional/journals_controller_test.rb +0 -181
  1758. data/spec/redmine/test/functional/mail_handler_controller_test.rb +0 -96
  1759. data/spec/redmine/test/functional/members_controller_test.rb +0 -201
  1760. data/spec/redmine/test/functional/messages_controller_test.rb +0 -219
  1761. data/spec/redmine/test/functional/my_controller_test.rb +0 -280
  1762. data/spec/redmine/test/functional/news_controller_test.rb +0 -178
  1763. data/spec/redmine/test/functional/previews_controller_test.rb +0 -95
  1764. data/spec/redmine/test/functional/principal_memberships_controller_test.rb +0 -209
  1765. data/spec/redmine/test/functional/project_enumerations_controller_test.rb +0 -235
  1766. data/spec/redmine/test/functional/projects_controller_test.rb +0 -684
  1767. data/spec/redmine/test/functional/queries_controller_test.rb +0 -358
  1768. data/spec/redmine/test/functional/reports_controller_test.rb +0 -85
  1769. data/spec/redmine/test/functional/repositories_bazaar_controller_test.rb +0 -233
  1770. data/spec/redmine/test/functional/repositories_controller_test.rb +0 -307
  1771. data/spec/redmine/test/functional/repositories_cvs_controller_test.rb +0 -261
  1772. data/spec/redmine/test/functional/repositories_darcs_controller_test.rb +0 -161
  1773. data/spec/redmine/test/functional/repositories_filesystem_controller_test.rb +0 -150
  1774. data/spec/redmine/test/functional/repositories_git_controller_test.rb +0 -606
  1775. data/spec/redmine/test/functional/repositories_mercurial_controller_test.rb +0 -490
  1776. data/spec/redmine/test/functional/repositories_subversion_controller_test.rb +0 -421
  1777. data/spec/redmine/test/functional/roles_controller_test.rb +0 -208
  1778. data/spec/redmine/test/functional/search_controller_test.rb +0 -332
  1779. data/spec/redmine/test/functional/search_custom_fields_visibility_test.rb +0 -78
  1780. data/spec/redmine/test/functional/sessions_test.rb +0 -132
  1781. data/spec/redmine/test/functional/settings_controller_test.rb +0 -192
  1782. data/spec/redmine/test/functional/sys_controller_test.rb +0 -128
  1783. data/spec/redmine/test/functional/time_entry_reports_controller_test.rb +0 -354
  1784. data/spec/redmine/test/functional/timelog_controller_test.rb +0 -809
  1785. data/spec/redmine/test/functional/timelog_custom_fields_visibility_test.rb +0 -118
  1786. data/spec/redmine/test/functional/trackers_controller_test.rb +0 -205
  1787. data/spec/redmine/test/functional/users_controller_test.rb +0 -452
  1788. data/spec/redmine/test/functional/versions_controller_test.rb +0 -238
  1789. data/spec/redmine/test/functional/watchers_controller_test.rb +0 -271
  1790. data/spec/redmine/test/functional/welcome_controller_test.rb +0 -177
  1791. data/spec/redmine/test/functional/wiki_controller_test.rb +0 -961
  1792. data/spec/redmine/test/functional/wikis_controller_test.rb +0 -84
  1793. data/spec/redmine/test/functional/workflows_controller_test.rb +0 -369
  1794. data/spec/redmine/test/integration/account_test.rb +0 -326
  1795. data/spec/redmine/test/integration/admin_test.rb +0 -61
  1796. data/spec/redmine/test/integration/api_test/api_routing_test.rb +0 -158
  1797. data/spec/redmine/test/integration/api_test/api_test.rb +0 -47
  1798. data/spec/redmine/test/integration/api_test/attachments_test.rb +0 -156
  1799. data/spec/redmine/test/integration/api_test/authentication_test.rb +0 -158
  1800. data/spec/redmine/test/integration/api_test/custom_fields_attribute_test.rb +0 -63
  1801. data/spec/redmine/test/integration/api_test/custom_fields_test.rb +0 -41
  1802. data/spec/redmine/test/integration/api_test/disabled_rest_api_test.rb +0 -78
  1803. data/spec/redmine/test/integration/api_test/enumerations_test.rb +0 -40
  1804. data/spec/redmine/test/integration/api_test/groups_test.rb +0 -209
  1805. data/spec/redmine/test/integration/api_test/issue_categories_test.rb +0 -104
  1806. data/spec/redmine/test/integration/api_test/issue_relations_test.rb +0 -80
  1807. data/spec/redmine/test/integration/api_test/issue_statuses_test.rb +0 -32
  1808. data/spec/redmine/test/integration/api_test/issues_test.rb +0 -704
  1809. data/spec/redmine/test/integration/api_test/jsonp_test.rb +0 -72
  1810. data/spec/redmine/test/integration/api_test/memberships_test.rb +0 -158
  1811. data/spec/redmine/test/integration/api_test/news_test.rb +0 -61
  1812. data/spec/redmine/test/integration/api_test/projects_test.rb +0 -234
  1813. data/spec/redmine/test/integration/api_test/queries_test.rb +0 -39
  1814. data/spec/redmine/test/integration/api_test/roles_test.rb +0 -62
  1815. data/spec/redmine/test/integration/api_test/time_entries_test.rb +0 -135
  1816. data/spec/redmine/test/integration/api_test/trackers_test.rb +0 -33
  1817. data/spec/redmine/test/integration/api_test/users_test.rb +0 -294
  1818. data/spec/redmine/test/integration/api_test/versions_test.rb +0 -129
  1819. data/spec/redmine/test/integration/api_test/wiki_pages_test.rb +0 -190
  1820. data/spec/redmine/test/integration/application_test.rb +0 -97
  1821. data/spec/redmine/test/integration/attachments_test.rb +0 -152
  1822. data/spec/redmine/test/integration/feeds_test.rb +0 -31
  1823. data/spec/redmine/test/integration/issues_test.rb +0 -216
  1824. data/spec/redmine/test/integration/layout_test.rb +0 -127
  1825. data/spec/redmine/test/integration/lib/redmine/hook_test.rb +0 -124
  1826. data/spec/redmine/test/integration/lib/redmine/menu_manager_test.rb +0 -66
  1827. data/spec/redmine/test/integration/lib/redmine/themes_test.rb +0 -100
  1828. data/spec/redmine/test/integration/projects_test.rb +0 -51
  1829. data/spec/redmine/test/integration/repositories_git_test.rb +0 -50
  1830. data/spec/redmine/test/integration/routing/account_test.rb +0 -36
  1831. data/spec/redmine/test/integration/routing/activities_test.rb +0 -31
  1832. data/spec/redmine/test/integration/routing/admin_test.rb +0 -29
  1833. data/spec/redmine/test/integration/routing/attachments_test.rb +0 -36
  1834. data/spec/redmine/test/integration/routing/auth_sources_test.rb +0 -32
  1835. data/spec/redmine/test/integration/routing/auto_completes_test.rb +0 -24
  1836. data/spec/redmine/test/integration/routing/boards_test.rb +0 -32
  1837. data/spec/redmine/test/integration/routing/calendars_test.rb +0 -25
  1838. data/spec/redmine/test/integration/routing/comments_test.rb +0 -25
  1839. data/spec/redmine/test/integration/routing/context_menus_test.rb +0 -30
  1840. data/spec/redmine/test/integration/routing/custom_fields_test.rb +0 -30
  1841. data/spec/redmine/test/integration/routing/documents_test.rb +0 -37
  1842. data/spec/redmine/test/integration/routing/enumerations_test.rb +0 -30
  1843. data/spec/redmine/test/integration/routing/files_test.rb +0 -26
  1844. data/spec/redmine/test/integration/routing/gantts_test.rb +0 -28
  1845. data/spec/redmine/test/integration/routing/groups_test.rb +0 -40
  1846. data/spec/redmine/test/integration/routing/issue_categories_test.rb +0 -32
  1847. data/spec/redmine/test/integration/routing/issue_relations_test.rb +0 -27
  1848. data/spec/redmine/test/integration/routing/issue_statuses_test.rb +0 -32
  1849. data/spec/redmine/test/integration/routing/issues_test.rb +0 -60
  1850. data/spec/redmine/test/integration/routing/journals_test.rb +0 -29
  1851. data/spec/redmine/test/integration/routing/mail_handler_test.rb +0 -25
  1852. data/spec/redmine/test/integration/routing/members_test.rb +0 -31
  1853. data/spec/redmine/test/integration/routing/messages_test.rb +0 -33
  1854. data/spec/redmine/test/integration/routing/my_test.rb +0 -43
  1855. data/spec/redmine/test/integration/routing/news_test.rb +0 -36
  1856. data/spec/redmine/test/integration/routing/previews_test.rb +0 -32
  1857. data/spec/redmine/test/integration/routing/principal_memberships_test.rb +0 -34
  1858. data/spec/redmine/test/integration/routing/project_enumerations_test.rb +0 -25
  1859. data/spec/redmine/test/integration/routing/projects_test.rb +0 -39
  1860. data/spec/redmine/test/integration/routing/queries_test.rb +0 -34
  1861. data/spec/redmine/test/integration/routing/reports_test.rb +0 -25
  1862. data/spec/redmine/test/integration/routing/repositories_test.rb +0 -139
  1863. data/spec/redmine/test/integration/routing/roles_test.rb +0 -33
  1864. data/spec/redmine/test/integration/routing/search_test.rb +0 -25
  1865. data/spec/redmine/test/integration/routing/settings_test.rb +0 -29
  1866. data/spec/redmine/test/integration/routing/sys_test.rb +0 -27
  1867. data/spec/redmine/test/integration/routing/timelog_test.rb +0 -66
  1868. data/spec/redmine/test/integration/routing/trackers_test.rb +0 -33
  1869. data/spec/redmine/test/integration/routing/users_test.rb +0 -32
  1870. data/spec/redmine/test/integration/routing/versions_test.rb +0 -36
  1871. data/spec/redmine/test/integration/routing/watchers_test.rb +0 -31
  1872. data/spec/redmine/test/integration/routing/welcome_test.rb +0 -25
  1873. data/spec/redmine/test/integration/routing/wiki_test.rb +0 -59
  1874. data/spec/redmine/test/integration/routing/wikis_test.rb +0 -27
  1875. data/spec/redmine/test/integration/routing/workflows_test.rb +0 -32
  1876. data/spec/redmine/test/integration/sudo_mode_test.rb +0 -164
  1877. data/spec/redmine/test/integration/users_test.rb +0 -29
  1878. data/spec/redmine/test/mocks/open_id_authentication_mock.rb +0 -46
  1879. data/spec/redmine/test/object_helpers.rb +0 -242
  1880. data/spec/redmine/test/test_helper.rb +0 -355
  1881. data/spec/redmine/test/travis/mariadb.pref +0 -6
  1882. data/spec/redmine/test/ui/base.rb +0 -69
  1883. data/spec/redmine/test/ui/issues_test_ui.rb +0 -278
  1884. data/spec/redmine/test/ui/sudo_mode_test_ui.rb +0 -53
  1885. data/spec/redmine/test/ui/timelog_test_ui.rb +0 -44
  1886. data/spec/redmine/test/unit/activity_test.rb +0 -197
  1887. data/spec/redmine/test/unit/attachment_test.rb +0 -360
  1888. data/spec/redmine/test/unit/auth_source_ldap_test.rb +0 -141
  1889. data/spec/redmine/test/unit/board_test.rb +0 -125
  1890. data/spec/redmine/test/unit/changeset_test.rb +0 -578
  1891. data/spec/redmine/test/unit/comment_test.rb +0 -57
  1892. data/spec/redmine/test/unit/custom_field_test.rb +0 -335
  1893. data/spec/redmine/test/unit/custom_field_user_format_test.rb +0 -78
  1894. data/spec/redmine/test/unit/custom_field_version_format_test.rb +0 -60
  1895. data/spec/redmine/test/unit/custom_value_test.rb +0 -39
  1896. data/spec/redmine/test/unit/default_data_test.rb +0 -49
  1897. data/spec/redmine/test/unit/document_category_test.rb +0 -47
  1898. data/spec/redmine/test/unit/document_test.rb +0 -69
  1899. data/spec/redmine/test/unit/enabled_module_test.rb +0 -43
  1900. data/spec/redmine/test/unit/enumeration_test.rb +0 -130
  1901. data/spec/redmine/test/unit/group_test.rb +0 -169
  1902. data/spec/redmine/test/unit/helpers/activities_helper_test.rb +0 -102
  1903. data/spec/redmine/test/unit/helpers/application_helper_test.rb +0 -1528
  1904. data/spec/redmine/test/unit/helpers/custom_fields_helper_test.rb +0 -60
  1905. data/spec/redmine/test/unit/helpers/groups_helper_test.rb +0 -42
  1906. data/spec/redmine/test/unit/helpers/issues_helper_test.rb +0 -339
  1907. data/spec/redmine/test/unit/helpers/members_helper_test.rb +0 -43
  1908. data/spec/redmine/test/unit/helpers/my_helper_test.rb +0 -50
  1909. data/spec/redmine/test/unit/helpers/projects_helper_test.rb +0 -85
  1910. data/spec/redmine/test/unit/helpers/queries_helper_test.rb +0 -97
  1911. data/spec/redmine/test/unit/helpers/routes_helper_test.rb +0 -47
  1912. data/spec/redmine/test/unit/helpers/search_helper_test.rb +0 -49
  1913. data/spec/redmine/test/unit/helpers/settings_helper_test.rb +0 -31
  1914. data/spec/redmine/test/unit/helpers/sort_helper_test.rb +0 -109
  1915. data/spec/redmine/test/unit/helpers/timelog_helper_test.rb +0 -58
  1916. data/spec/redmine/test/unit/helpers/version_helper_test.rb +0 -53
  1917. data/spec/redmine/test/unit/helpers/watchers_helper_test.rb +0 -74
  1918. data/spec/redmine/test/unit/initializers/patches_test.rb +0 -95
  1919. data/spec/redmine/test/unit/issue_category_test.rb +0 -54
  1920. data/spec/redmine/test/unit/issue_custom_field_test.rb +0 -42
  1921. data/spec/redmine/test/unit/issue_nested_set_concurrency_test.rb +0 -96
  1922. data/spec/redmine/test/unit/issue_nested_set_test.rb +0 -309
  1923. data/spec/redmine/test/unit/issue_priority_test.rb +0 -106
  1924. data/spec/redmine/test/unit/issue_relation_test.rb +0 -236
  1925. data/spec/redmine/test/unit/issue_scopes_test.rb +0 -69
  1926. data/spec/redmine/test/unit/issue_status_test.rb +0 -141
  1927. data/spec/redmine/test/unit/issue_subtasking_test.rb +0 -260
  1928. data/spec/redmine/test/unit/issue_test.rb +0 -2704
  1929. data/spec/redmine/test/unit/issue_transaction_test.rb +0 -52
  1930. data/spec/redmine/test/unit/journal_observer_test.rb +0 -174
  1931. data/spec/redmine/test/unit/journal_test.rb +0 -223
  1932. data/spec/redmine/test/unit/lib/redmine/access_control_test.rb +0 -59
  1933. data/spec/redmine/test/unit/lib/redmine/ciphering_test.rb +0 -106
  1934. data/spec/redmine/test/unit/lib/redmine/codeset_util_test.rb +0 -88
  1935. data/spec/redmine/test/unit/lib/redmine/configuration_test.rb +0 -61
  1936. data/spec/redmine/test/unit/lib/redmine/export/csv_test.rb +0 -31
  1937. data/spec/redmine/test/unit/lib/redmine/export/pdf_test.rb +0 -104
  1938. data/spec/redmine/test/unit/lib/redmine/field_format/bool_format_test.rb +0 -63
  1939. data/spec/redmine/test/unit/lib/redmine/field_format/field_format_test.rb +0 -62
  1940. data/spec/redmine/test/unit/lib/redmine/field_format/link_format_test.rb +0 -90
  1941. data/spec/redmine/test/unit/lib/redmine/field_format/list_format_test.rb +0 -168
  1942. data/spec/redmine/test/unit/lib/redmine/field_format/numeric_format_test.rb +0 -31
  1943. data/spec/redmine/test/unit/lib/redmine/field_format/user_field_format_test.rb +0 -61
  1944. data/spec/redmine/test/unit/lib/redmine/field_format/version_field_format_test.rb +0 -69
  1945. data/spec/redmine/test/unit/lib/redmine/helpers/calendar_test.rb +0 -63
  1946. data/spec/redmine/test/unit/lib/redmine/helpers/diff_test.rb +0 -25
  1947. data/spec/redmine/test/unit/lib/redmine/helpers/gantt_test.rb +0 -498
  1948. data/spec/redmine/test/unit/lib/redmine/hook_test.rb +0 -189
  1949. data/spec/redmine/test/unit/lib/redmine/i18n_test.rb +0 -244
  1950. data/spec/redmine/test/unit/lib/redmine/info_test.rb +0 -27
  1951. data/spec/redmine/test/unit/lib/redmine/menu_manager/mapper_test.rb +0 -191
  1952. data/spec/redmine/test/unit/lib/redmine/menu_manager/menu_helper_test.rb +0 -260
  1953. data/spec/redmine/test/unit/lib/redmine/menu_manager/menu_item_test.rb +0 -108
  1954. data/spec/redmine/test/unit/lib/redmine/menu_manager_test.rb +0 -34
  1955. data/spec/redmine/test/unit/lib/redmine/mime_type_test.rb +0 -66
  1956. data/spec/redmine/test/unit/lib/redmine/notifiable_test.rb +0 -29
  1957. data/spec/redmine/test/unit/lib/redmine/pagination_helper_test.rb +0 -34
  1958. data/spec/redmine/test/unit/lib/redmine/pagination_test.rb +0 -94
  1959. data/spec/redmine/test/unit/lib/redmine/plugin_test.rb +0 -186
  1960. data/spec/redmine/test/unit/lib/redmine/safe_attributes_test.rb +0 -102
  1961. data/spec/redmine/test/unit/lib/redmine/scm/adapters/bazaar_adapter_test.rb +0 -218
  1962. data/spec/redmine/test/unit/lib/redmine/scm/adapters/cvs_adapter_test.rb +0 -106
  1963. data/spec/redmine/test/unit/lib/redmine/scm/adapters/darcs_adapter_test.rb +0 -60
  1964. data/spec/redmine/test/unit/lib/redmine/scm/adapters/filesystem_adapter_test.rb +0 -68
  1965. data/spec/redmine/test/unit/lib/redmine/scm/adapters/git_adapter_test.rb +0 -597
  1966. data/spec/redmine/test/unit/lib/redmine/scm/adapters/mercurial_adapter_test.rb +0 -462
  1967. data/spec/redmine/test/unit/lib/redmine/scm/adapters/subversion_adapter_test.rb +0 -63
  1968. data/spec/redmine/test/unit/lib/redmine/themes_test.rb +0 -61
  1969. data/spec/redmine/test/unit/lib/redmine/unified_diff_test.rb +0 -352
  1970. data/spec/redmine/test/unit/lib/redmine/utils/date_calculation.rb +0 -76
  1971. data/spec/redmine/test/unit/lib/redmine/views/builders/json_test.rb +0 -94
  1972. data/spec/redmine/test/unit/lib/redmine/views/builders/xml_test.rb +0 -67
  1973. data/spec/redmine/test/unit/lib/redmine/views/labelled_form_builder_test.rb +0 -29
  1974. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/html_parser_test.rb +0 -35
  1975. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/macros_test.rb +0 -401
  1976. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/markdown_formatter_test.rb +0 -80
  1977. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/markdown_html_parser_test.rb +0 -30
  1978. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb +0 -512
  1979. data/spec/redmine/test/unit/lib/redmine/wiki_formatting/textile_html_parser_test.rb +0 -30
  1980. data/spec/redmine/test/unit/lib/redmine/wiki_formatting_test.rb +0 -83
  1981. data/spec/redmine/test/unit/lib/redmine_test.rb +0 -86
  1982. data/spec/redmine/test/unit/mail_handler_test.rb +0 -997
  1983. data/spec/redmine/test/unit/mailer_test.rb +0 -853
  1984. data/spec/redmine/test/unit/member_test.rb +0 -193
  1985. data/spec/redmine/test/unit/message_test.rb +0 -184
  1986. data/spec/redmine/test/unit/news_test.rb +0 -90
  1987. data/spec/redmine/test/unit/principal_test.rb +0 -136
  1988. data/spec/redmine/test/unit/project_copy_test.rb +0 -353
  1989. data/spec/redmine/test/unit/project_members_inheritance_test.rb +0 -264
  1990. data/spec/redmine/test/unit/project_nested_set_concurrency_test.rb +0 -76
  1991. data/spec/redmine/test/unit/project_nested_set_test.rb +0 -187
  1992. data/spec/redmine/test/unit/project_test.rb +0 -975
  1993. data/spec/redmine/test/unit/query_test.rb +0 -1514
  1994. data/spec/redmine/test/unit/repository_bazaar_test.rb +0 -297
  1995. data/spec/redmine/test/unit/repository_cvs_test.rb +0 -271
  1996. data/spec/redmine/test/unit/repository_darcs_test.rb +0 -129
  1997. data/spec/redmine/test/unit/repository_filesystem_test.rb +0 -88
  1998. data/spec/redmine/test/unit/repository_git_test.rb +0 -623
  1999. data/spec/redmine/test/unit/repository_mercurial_test.rb +0 -644
  2000. data/spec/redmine/test/unit/repository_subversion_test.rb +0 -285
  2001. data/spec/redmine/test/unit/repository_test.rb +0 -499
  2002. data/spec/redmine/test/unit/role_test.rb +0 -141
  2003. data/spec/redmine/test/unit/search_test.rb +0 -199
  2004. data/spec/redmine/test/unit/setting_test.rb +0 -127
  2005. data/spec/redmine/test/unit/time_entry_activity_test.rb +0 -130
  2006. data/spec/redmine/test/unit/time_entry_query_test.rb +0 -47
  2007. data/spec/redmine/test/unit/time_entry_test.rb +0 -175
  2008. data/spec/redmine/test/unit/token_test.rb +0 -108
  2009. data/spec/redmine/test/unit/tracker_test.rb +0 -118
  2010. data/spec/redmine/test/unit/user_preference_test.rb +0 -77
  2011. data/spec/redmine/test/unit/user_test.rb +0 -1228
  2012. data/spec/redmine/test/unit/version_test.rb +0 -272
  2013. data/spec/redmine/test/unit/watcher_test.rb +0 -192
  2014. data/spec/redmine/test/unit/wiki_content_test.rb +0 -166
  2015. data/spec/redmine/test/unit/wiki_content_version_test.rb +0 -68
  2016. data/spec/redmine/test/unit/wiki_page_test.rb +0 -183
  2017. data/spec/redmine/test/unit/wiki_redirect_test.rb +0 -97
  2018. data/spec/redmine/test/unit/wiki_test.rb +0 -114
  2019. data/spec/redmine/test/unit/workflow_test.rb +0 -65
  2020. data/spec/redmine/test/unit/workflow_transition_test.rb +0 -93
  2021. data/spec/redmine/tmp/pdf/empty +0 -0
  2022. data/spec/redmine/tmp/test/empty +0 -0
  2023. data/spec/redmine/tmp/thumbnails/empty +0 -0
  2024. data/spec/support/easy_queries_helpers.rb +0 -0
@@ -1,2704 +0,0 @@
1
- # Redmine - project management software
2
- # Copyright (C) 2006-2015 Jean-Philippe Lang
3
- #
4
- # This program is free software; you can redistribute it and/or
5
- # modify it under the terms of the GNU General Public License
6
- # as published by the Free Software Foundation; either version 2
7
- # of the License, or (at your option) any later version.
8
- #
9
- # This program is distributed in the hope that it will be useful,
10
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- # GNU General Public License for more details.
13
- #
14
- # You should have received a copy of the GNU General Public License
15
- # along with this program; if not, write to the Free Software
16
- # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17
-
18
- require File.expand_path('../../test_helper', __FILE__)
19
-
20
- class IssueTest < ActiveSupport::TestCase
21
- fixtures :projects, :users, :email_addresses, :members, :member_roles, :roles,
22
- :groups_users,
23
- :trackers, :projects_trackers,
24
- :enabled_modules,
25
- :versions,
26
- :issue_statuses, :issue_categories, :issue_relations, :workflows,
27
- :enumerations,
28
- :issues, :journals, :journal_details,
29
- :custom_fields, :custom_fields_projects, :custom_fields_trackers, :custom_values,
30
- :time_entries
31
-
32
- include Redmine::I18n
33
-
34
- def setup
35
- set_language_if_valid 'en'
36
- end
37
-
38
- def teardown
39
- User.current = nil
40
- end
41
-
42
- def test_initialize
43
- issue = Issue.new
44
-
45
- assert_nil issue.project_id
46
- assert_nil issue.tracker_id
47
- assert_nil issue.status_id
48
- assert_nil issue.author_id
49
- assert_nil issue.assigned_to_id
50
- assert_nil issue.category_id
51
-
52
- assert_equal IssuePriority.default, issue.priority
53
- end
54
-
55
- def test_create
56
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3,
57
- :status_id => 1, :priority => IssuePriority.all.first,
58
- :subject => 'test_create',
59
- :description => 'IssueTest#test_create', :estimated_hours => '1:30')
60
- assert issue.save
61
- issue.reload
62
- assert_equal 1.5, issue.estimated_hours
63
- end
64
-
65
- def test_create_minimal
66
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3, :subject => 'test_create')
67
- assert issue.save
68
- assert_equal issue.tracker.default_status, issue.status
69
- assert issue.description.nil?
70
- assert_nil issue.estimated_hours
71
- end
72
-
73
- def test_create_with_all_fields_disabled
74
- tracker = Tracker.find(1)
75
- tracker.core_fields = []
76
- tracker.save!
77
-
78
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 3, :subject => 'test_create_with_all_fields_disabled')
79
- assert_save issue
80
- end
81
-
82
- def test_start_date_format_should_be_validated
83
- set_language_if_valid 'en'
84
- ['2012', 'ABC', '2012-15-20'].each do |invalid_date|
85
- issue = Issue.new(:start_date => invalid_date)
86
- assert !issue.valid?
87
- assert_include 'Start date is not a valid date', issue.errors.full_messages, "No error found for invalid date #{invalid_date}"
88
- end
89
- end
90
-
91
- def test_due_date_format_should_be_validated
92
- set_language_if_valid 'en'
93
- ['2012', 'ABC', '2012-15-20'].each do |invalid_date|
94
- issue = Issue.new(:due_date => invalid_date)
95
- assert !issue.valid?
96
- assert_include 'Due date is not a valid date', issue.errors.full_messages, "No error found for invalid date #{invalid_date}"
97
- end
98
- end
99
-
100
- def test_due_date_lesser_than_start_date_should_not_validate
101
- set_language_if_valid 'en'
102
- issue = Issue.new(:start_date => '2012-10-06', :due_date => '2012-10-02')
103
- assert !issue.valid?
104
- assert_include 'Due date must be greater than start date', issue.errors.full_messages
105
- end
106
-
107
- def test_start_date_lesser_than_soonest_start_should_not_validate_on_create
108
- issue = Issue.generate(:start_date => '2013-06-04')
109
- issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
110
- assert !issue.valid?
111
- assert_include "Start date cannot be earlier than 06/10/2013 because of preceding issues", issue.errors.full_messages
112
- end
113
-
114
- def test_start_date_lesser_than_soonest_start_should_not_validate_on_update_if_changed
115
- issue = Issue.generate!(:start_date => '2013-06-04')
116
- issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
117
- issue.start_date = '2013-06-07'
118
- assert !issue.valid?
119
- assert_include "Start date cannot be earlier than 06/10/2013 because of preceding issues", issue.errors.full_messages
120
- end
121
-
122
- def test_start_date_lesser_than_soonest_start_should_validate_on_update_if_unchanged
123
- issue = Issue.generate!(:start_date => '2013-06-04')
124
- issue.stubs(:soonest_start).returns(Date.parse('2013-06-10'))
125
- assert issue.valid?
126
- end
127
-
128
- def test_estimated_hours_should_be_validated
129
- set_language_if_valid 'en'
130
- ['-2'].each do |invalid|
131
- issue = Issue.new(:estimated_hours => invalid)
132
- assert !issue.valid?
133
- assert_include 'Estimated time is invalid', issue.errors.full_messages
134
- end
135
- end
136
-
137
- def test_create_with_required_custom_field
138
- set_language_if_valid 'en'
139
- field = IssueCustomField.find_by_name('Database')
140
- field.update_attribute(:is_required, true)
141
-
142
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
143
- :status_id => 1, :subject => 'test_create',
144
- :description => 'IssueTest#test_create_with_required_custom_field')
145
- assert issue.available_custom_fields.include?(field)
146
- # No value for the custom field
147
- assert !issue.save
148
- assert_equal ["Database cannot be blank"], issue.errors.full_messages
149
- # Blank value
150
- issue.custom_field_values = { field.id => '' }
151
- assert !issue.save
152
- assert_equal ["Database cannot be blank"], issue.errors.full_messages
153
- # Invalid value
154
- issue.custom_field_values = { field.id => 'SQLServer' }
155
- assert !issue.save
156
- assert_equal ["Database is not included in the list"], issue.errors.full_messages
157
- # Valid value
158
- issue.custom_field_values = { field.id => 'PostgreSQL' }
159
- assert issue.save
160
- issue.reload
161
- assert_equal 'PostgreSQL', issue.custom_value_for(field).value
162
- end
163
-
164
- def test_create_with_group_assignment
165
- with_settings :issue_group_assignment => '1' do
166
- assert Issue.new(:project_id => 2, :tracker_id => 1, :author_id => 1,
167
- :subject => 'Group assignment',
168
- :assigned_to_id => 11).save
169
- issue = Issue.order('id DESC').first
170
- assert_kind_of Group, issue.assigned_to
171
- assert_equal Group.find(11), issue.assigned_to
172
- end
173
- end
174
-
175
- def test_create_with_parent_issue_id
176
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
177
- :author_id => 1, :subject => 'Group assignment',
178
- :parent_issue_id => 1)
179
- assert_save issue
180
- assert_equal 1, issue.parent_issue_id
181
- assert_equal Issue.find(1), issue.parent
182
- end
183
-
184
- def test_create_with_sharp_parent_issue_id
185
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
186
- :author_id => 1, :subject => 'Group assignment',
187
- :parent_issue_id => "#1")
188
- assert_save issue
189
- assert_equal 1, issue.parent_issue_id
190
- assert_equal Issue.find(1), issue.parent
191
- end
192
-
193
- def test_create_with_invalid_parent_issue_id
194
- set_language_if_valid 'en'
195
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
196
- :author_id => 1, :subject => 'Group assignment',
197
- :parent_issue_id => '01ABC')
198
- assert !issue.save
199
- assert_equal '01ABC', issue.parent_issue_id
200
- assert_include 'Parent task is invalid', issue.errors.full_messages
201
- end
202
-
203
- def test_create_with_invalid_sharp_parent_issue_id
204
- set_language_if_valid 'en'
205
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
206
- :author_id => 1, :subject => 'Group assignment',
207
- :parent_issue_id => '#01ABC')
208
- assert !issue.save
209
- assert_equal '#01ABC', issue.parent_issue_id
210
- assert_include 'Parent task is invalid', issue.errors.full_messages
211
- end
212
-
213
- def assert_visibility_match(user, issues)
214
- assert_equal issues.collect(&:id).sort, Issue.all.select {|issue| issue.visible?(user)}.collect(&:id).sort
215
- end
216
-
217
- def test_visible_scope_for_anonymous
218
- # Anonymous user should see issues of public projects only
219
- issues = Issue.visible(User.anonymous).to_a
220
- assert issues.any?
221
- assert_nil issues.detect {|issue| !issue.project.is_public?}
222
- assert_nil issues.detect {|issue| issue.is_private?}
223
- assert_visibility_match User.anonymous, issues
224
- end
225
-
226
- def test_visible_scope_for_anonymous_without_view_issues_permissions
227
- # Anonymous user should not see issues without permission
228
- Role.anonymous.remove_permission!(:view_issues)
229
- issues = Issue.visible(User.anonymous).to_a
230
- assert issues.empty?
231
- assert_visibility_match User.anonymous, issues
232
- end
233
-
234
- def test_visible_scope_for_anonymous_without_view_issues_permissions_and_membership
235
- Role.anonymous.remove_permission!(:view_issues)
236
- Member.create!(:project_id => 1, :principal => Group.anonymous, :role_ids => [2])
237
-
238
- issues = Issue.visible(User.anonymous).all
239
- assert issues.any?
240
- assert_equal [1], issues.map(&:project_id).uniq.sort
241
- assert_visibility_match User.anonymous, issues
242
- end
243
-
244
- def test_anonymous_should_not_see_private_issues_with_issues_visibility_set_to_default
245
- assert Role.anonymous.update_attribute(:issues_visibility, 'default')
246
- issue = Issue.generate!(:author => User.anonymous, :assigned_to => User.anonymous, :is_private => true)
247
- assert_nil Issue.where(:id => issue.id).visible(User.anonymous).first
248
- assert !issue.visible?(User.anonymous)
249
- end
250
-
251
- def test_anonymous_should_not_see_private_issues_with_issues_visibility_set_to_own
252
- assert Role.anonymous.update_attribute(:issues_visibility, 'own')
253
- issue = Issue.generate!(:author => User.anonymous, :assigned_to => User.anonymous, :is_private => true)
254
- assert_nil Issue.where(:id => issue.id).visible(User.anonymous).first
255
- assert !issue.visible?(User.anonymous)
256
- end
257
-
258
- def test_visible_scope_for_non_member
259
- user = User.find(9)
260
- assert user.projects.empty?
261
- # Non member user should see issues of public projects only
262
- issues = Issue.visible(user).to_a
263
- assert issues.any?
264
- assert_nil issues.detect {|issue| !issue.project.is_public?}
265
- assert_nil issues.detect {|issue| issue.is_private?}
266
- assert_visibility_match user, issues
267
- end
268
-
269
- def test_visible_scope_for_non_member_with_own_issues_visibility
270
- Role.non_member.update_attribute :issues_visibility, 'own'
271
- Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 9, :subject => 'Issue by non member')
272
- user = User.find(9)
273
-
274
- issues = Issue.visible(user).to_a
275
- assert issues.any?
276
- assert_nil issues.detect {|issue| issue.author != user}
277
- assert_visibility_match user, issues
278
- end
279
-
280
- def test_visible_scope_for_non_member_without_view_issues_permissions
281
- # Non member user should not see issues without permission
282
- Role.non_member.remove_permission!(:view_issues)
283
- user = User.find(9)
284
- assert user.projects.empty?
285
- issues = Issue.visible(user).to_a
286
- assert issues.empty?
287
- assert_visibility_match user, issues
288
- end
289
-
290
- def test_visible_scope_for_non_member_without_view_issues_permissions_and_membership
291
- Role.non_member.remove_permission!(:view_issues)
292
- Member.create!(:project_id => 1, :principal => Group.non_member, :role_ids => [2])
293
- user = User.find(9)
294
-
295
- issues = Issue.visible(user).all
296
- assert issues.any?
297
- assert_equal [1], issues.map(&:project_id).uniq.sort
298
- assert_visibility_match user, issues
299
- end
300
-
301
- def test_visible_scope_for_member
302
- user = User.find(9)
303
- # User should see issues of projects for which user has view_issues permissions only
304
- Role.non_member.remove_permission!(:view_issues)
305
- Member.create!(:principal => user, :project_id => 3, :role_ids => [2])
306
- issues = Issue.visible(user).to_a
307
- assert issues.any?
308
- assert_nil issues.detect {|issue| issue.project_id != 3}
309
- assert_nil issues.detect {|issue| issue.is_private?}
310
- assert_visibility_match user, issues
311
- end
312
-
313
- def test_visible_scope_for_member_with_groups_should_return_assigned_issues
314
- user = User.find(8)
315
- assert user.groups.any?
316
- Member.create!(:principal => user.groups.first, :project_id => 1, :role_ids => [2])
317
- Role.non_member.remove_permission!(:view_issues)
318
-
319
- issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 3,
320
- :status_id => 1, :priority => IssuePriority.all.first,
321
- :subject => 'Assignment test',
322
- :assigned_to => user.groups.first,
323
- :is_private => true)
324
-
325
- Role.find(2).update_attribute :issues_visibility, 'default'
326
- issues = Issue.visible(User.find(8)).to_a
327
- assert issues.any?
328
- assert issues.include?(issue)
329
-
330
- Role.find(2).update_attribute :issues_visibility, 'own'
331
- issues = Issue.visible(User.find(8)).to_a
332
- assert issues.any?
333
- assert_include issue, issues
334
- end
335
-
336
- def test_visible_scope_for_admin
337
- user = User.find(1)
338
- user.members.each(&:destroy)
339
- assert user.projects.empty?
340
- issues = Issue.visible(user).to_a
341
- assert issues.any?
342
- # Admin should see issues on private projects that admin does not belong to
343
- assert issues.detect {|issue| !issue.project.is_public?}
344
- # Admin should see private issues of other users
345
- assert issues.detect {|issue| issue.is_private? && issue.author != user}
346
- assert_visibility_match user, issues
347
- end
348
-
349
- def test_visible_scope_with_project
350
- project = Project.find(1)
351
- issues = Issue.visible(User.find(2), :project => project).to_a
352
- projects = issues.collect(&:project).uniq
353
- assert_equal 1, projects.size
354
- assert_equal project, projects.first
355
- end
356
-
357
- def test_visible_scope_with_project_and_subprojects
358
- project = Project.find(1)
359
- issues = Issue.visible(User.find(2), :project => project, :with_subprojects => true).to_a
360
- projects = issues.collect(&:project).uniq
361
- assert projects.size > 1
362
- assert_equal [], projects.select {|p| !p.is_or_is_descendant_of?(project)}
363
- end
364
-
365
- def test_visible_and_nested_set_scopes
366
- user = User.generate!
367
- parent = Issue.generate!(:assigned_to => user)
368
- assert parent.visible?(user)
369
- child1 = Issue.generate!(:parent_issue_id => parent.id, :assigned_to => user)
370
- child2 = Issue.generate!(:parent_issue_id => parent.id, :assigned_to => user)
371
- parent.reload
372
- child1.reload
373
- child2.reload
374
- assert child1.visible?(user)
375
- assert child2.visible?(user)
376
- assert_equal 2, parent.descendants.count
377
- assert_equal 2, parent.descendants.visible(user).count
378
- # awesome_nested_set 2-1-stable branch has regression.
379
- # https://github.com/collectiveidea/awesome_nested_set/commit/3d5ac746542b564f6586c2316180254b088bebb6
380
- # ActiveRecord::StatementInvalid: SQLite3::SQLException: ambiguous column name: lft:
381
- assert_equal 2, parent.descendants.collect{|i| i}.size
382
- assert_equal 2, parent.descendants.visible(user).collect{|i| i}.size
383
- end
384
-
385
- def test_visible_scope_with_unsaved_user_should_not_raise_an_error
386
- user = User.new
387
- assert_nothing_raised do
388
- Issue.visible(user).to_a
389
- end
390
- end
391
-
392
- def test_open_scope
393
- issues = Issue.open.to_a
394
- assert_nil issues.detect(&:closed?)
395
- end
396
-
397
- def test_open_scope_with_arg
398
- issues = Issue.open(false).to_a
399
- assert_equal issues, issues.select(&:closed?)
400
- end
401
-
402
- def test_fixed_version_scope_with_a_version_should_return_its_fixed_issues
403
- version = Version.find(2)
404
- assert version.fixed_issues.any?
405
- assert_equal version.fixed_issues.to_a.sort, Issue.fixed_version(version).to_a.sort
406
- end
407
-
408
- def test_fixed_version_scope_with_empty_array_should_return_no_result
409
- assert_equal 0, Issue.fixed_version([]).count
410
- end
411
-
412
- def test_errors_full_messages_should_include_custom_fields_errors
413
- field = IssueCustomField.find_by_name('Database')
414
-
415
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
416
- :status_id => 1, :subject => 'test_create',
417
- :description => 'IssueTest#test_create_with_required_custom_field')
418
- assert issue.available_custom_fields.include?(field)
419
- # Invalid value
420
- issue.custom_field_values = { field.id => 'SQLServer' }
421
-
422
- assert !issue.valid?
423
- assert_equal 1, issue.errors.full_messages.size
424
- assert_equal "Database #{I18n.translate('activerecord.errors.messages.inclusion')}",
425
- issue.errors.full_messages.first
426
- end
427
-
428
- def test_update_issue_with_required_custom_field
429
- field = IssueCustomField.find_by_name('Database')
430
- field.update_attribute(:is_required, true)
431
-
432
- issue = Issue.find(1)
433
- assert_nil issue.custom_value_for(field)
434
- assert issue.available_custom_fields.include?(field)
435
- # No change to custom values, issue can be saved
436
- assert issue.save
437
- # Blank value
438
- issue.custom_field_values = { field.id => '' }
439
- assert !issue.save
440
- # Valid value
441
- issue.custom_field_values = { field.id => 'PostgreSQL' }
442
- assert issue.save
443
- issue.reload
444
- assert_equal 'PostgreSQL', issue.custom_value_for(field).value
445
- end
446
-
447
- def test_should_not_update_attributes_if_custom_fields_validation_fails
448
- issue = Issue.find(1)
449
- field = IssueCustomField.find_by_name('Database')
450
- assert issue.available_custom_fields.include?(field)
451
-
452
- issue.custom_field_values = { field.id => 'Invalid' }
453
- issue.subject = 'Should be not be saved'
454
- assert !issue.save
455
-
456
- issue.reload
457
- assert_equal "Cannot print recipes", issue.subject
458
- end
459
-
460
- def test_should_not_recreate_custom_values_objects_on_update
461
- field = IssueCustomField.find_by_name('Database')
462
-
463
- issue = Issue.find(1)
464
- issue.custom_field_values = { field.id => 'PostgreSQL' }
465
- assert issue.save
466
- custom_value = issue.custom_value_for(field)
467
- issue.reload
468
- issue.custom_field_values = { field.id => 'MySQL' }
469
- assert issue.save
470
- issue.reload
471
- assert_equal custom_value.id, issue.custom_value_for(field).id
472
- end
473
-
474
- def test_should_not_update_custom_fields_on_changing_tracker_with_different_custom_fields
475
- issue = Issue.create!(:project_id => 1, :tracker_id => 1, :author_id => 1,
476
- :status_id => 1, :subject => 'Test',
477
- :custom_field_values => {'2' => 'Test'})
478
- assert !Tracker.find(2).custom_field_ids.include?(2)
479
-
480
- issue = Issue.find(issue.id)
481
- issue.attributes = {:tracker_id => 2, :custom_field_values => {'1' => ''}}
482
-
483
- issue = Issue.find(issue.id)
484
- custom_value = issue.custom_value_for(2)
485
- assert_not_nil custom_value
486
- assert_equal 'Test', custom_value.value
487
- end
488
-
489
- def test_assigning_tracker_id_should_reload_custom_fields_values
490
- issue = Issue.new(:project => Project.find(1))
491
- assert issue.custom_field_values.empty?
492
- issue.tracker_id = 1
493
- assert issue.custom_field_values.any?
494
- end
495
-
496
- def test_assigning_attributes_should_assign_project_and_tracker_first
497
- seq = sequence('seq')
498
- issue = Issue.new
499
- issue.expects(:project_id=).in_sequence(seq)
500
- issue.expects(:tracker_id=).in_sequence(seq)
501
- issue.expects(:subject=).in_sequence(seq)
502
- issue.attributes = {:tracker_id => 2, :project_id => 1, :subject => 'Test'}
503
- end
504
-
505
- def test_assigning_tracker_and_custom_fields_should_assign_custom_fields
506
- attributes = ActiveSupport::OrderedHash.new
507
- attributes['custom_field_values'] = { '1' => 'MySQL' }
508
- attributes['tracker_id'] = '1'
509
- issue = Issue.new(:project => Project.find(1))
510
- issue.attributes = attributes
511
- assert_equal 'MySQL', issue.custom_field_value(1)
512
- end
513
-
514
- def test_changing_tracker_should_clear_disabled_core_fields
515
- tracker = Tracker.find(2)
516
- tracker.core_fields = tracker.core_fields - %w(due_date)
517
- tracker.save!
518
-
519
- issue = Issue.generate!(:tracker_id => 1, :start_date => Date.today, :due_date => Date.today)
520
- issue.save!
521
-
522
- issue.tracker_id = 2
523
- issue.save!
524
- assert_not_nil issue.start_date
525
- assert_nil issue.due_date
526
- end
527
-
528
- def test_changing_tracker_should_not_add_cleared_fields_to_journal
529
- tracker = Tracker.find(2)
530
- tracker.core_fields = tracker.core_fields - %w(due_date)
531
- tracker.save!
532
-
533
- issue = Issue.generate!(:tracker_id => 1, :due_date => Date.today)
534
- issue.save!
535
-
536
- assert_difference 'Journal.count' do
537
- issue.init_journal User.find(1)
538
- issue.tracker_id = 2
539
- issue.save!
540
- assert_nil issue.due_date
541
- end
542
- journal = Journal.order('id DESC').first
543
- assert_equal 1, journal.details.count
544
- end
545
-
546
- def test_reload_should_reload_custom_field_values
547
- issue = Issue.generate!
548
- issue.custom_field_values = {'2' => 'Foo'}
549
- issue.save!
550
-
551
- issue = Issue.order('id desc').first
552
- assert_equal 'Foo', issue.custom_field_value(2)
553
-
554
- issue.custom_field_values = {'2' => 'Bar'}
555
- assert_equal 'Bar', issue.custom_field_value(2)
556
-
557
- issue.reload
558
- assert_equal 'Foo', issue.custom_field_value(2)
559
- end
560
-
561
- def test_should_update_issue_with_disabled_tracker
562
- p = Project.find(1)
563
- issue = Issue.find(1)
564
-
565
- p.trackers.delete(issue.tracker)
566
- assert !p.trackers.include?(issue.tracker)
567
-
568
- issue.reload
569
- issue.subject = 'New subject'
570
- assert issue.save
571
- end
572
-
573
- def test_should_not_set_a_disabled_tracker
574
- p = Project.find(1)
575
- p.trackers.delete(Tracker.find(2))
576
-
577
- issue = Issue.find(1)
578
- issue.tracker_id = 2
579
- issue.subject = 'New subject'
580
- assert !issue.save
581
- assert_not_equal [], issue.errors[:tracker_id]
582
- end
583
-
584
- def test_category_based_assignment
585
- issue = Issue.create(:project_id => 1, :tracker_id => 1, :author_id => 3,
586
- :status_id => 1, :priority => IssuePriority.all.first,
587
- :subject => 'Assignment test',
588
- :description => 'Assignment test', :category_id => 1)
589
- assert_equal IssueCategory.find(1).assigned_to, issue.assigned_to
590
- end
591
-
592
- def test_new_statuses_allowed_to
593
- WorkflowTransition.delete_all
594
- WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
595
- :old_status_id => 1, :new_status_id => 2,
596
- :author => false, :assignee => false)
597
- WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
598
- :old_status_id => 1, :new_status_id => 3,
599
- :author => true, :assignee => false)
600
- WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
601
- :old_status_id => 1, :new_status_id => 4,
602
- :author => false, :assignee => true)
603
- WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
604
- :old_status_id => 1, :new_status_id => 5,
605
- :author => true, :assignee => true)
606
- status = IssueStatus.find(1)
607
- role = Role.find(1)
608
- tracker = Tracker.find(1)
609
- user = User.find(2)
610
-
611
- issue = Issue.generate!(:tracker => tracker, :status => status,
612
- :project_id => 1, :author_id => 1)
613
- assert_equal [1, 2], issue.new_statuses_allowed_to(user).map(&:id)
614
-
615
- issue = Issue.generate!(:tracker => tracker, :status => status,
616
- :project_id => 1, :author => user)
617
- assert_equal [1, 2, 3, 5], issue.new_statuses_allowed_to(user).map(&:id)
618
-
619
- issue = Issue.generate!(:tracker => tracker, :status => status,
620
- :project_id => 1, :author_id => 1,
621
- :assigned_to => user)
622
- assert_equal [1, 2, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
623
-
624
- issue = Issue.generate!(:tracker => tracker, :status => status,
625
- :project_id => 1, :author => user,
626
- :assigned_to => user)
627
- assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
628
-
629
- group = Group.generate!
630
- group.users << user
631
- issue = Issue.generate!(:tracker => tracker, :status => status,
632
- :project_id => 1, :author => user,
633
- :assigned_to => group)
634
- assert_equal [1, 2, 3, 4, 5], issue.new_statuses_allowed_to(user).map(&:id)
635
- end
636
-
637
- def test_new_statuses_allowed_to_should_consider_group_assignment
638
- WorkflowTransition.delete_all
639
- WorkflowTransition.create!(:role_id => 1, :tracker_id => 1,
640
- :old_status_id => 1, :new_status_id => 4,
641
- :author => false, :assignee => true)
642
- user = User.find(2)
643
- group = Group.generate!
644
- group.users << user
645
-
646
- issue = Issue.generate!(:author_id => 1, :assigned_to => group)
647
- assert_include 4, issue.new_statuses_allowed_to(user).map(&:id)
648
- end
649
-
650
- def test_new_statuses_allowed_to_should_return_all_transitions_for_admin
651
- admin = User.find(1)
652
- issue = Issue.find(1)
653
- assert !admin.member_of?(issue.project)
654
- expected_statuses = [issue.status] +
655
- WorkflowTransition.where(:old_status_id => issue.status_id).
656
- map(&:new_status).uniq.sort
657
- assert_equal expected_statuses, issue.new_statuses_allowed_to(admin)
658
- end
659
-
660
- def test_new_statuses_allowed_to_should_return_default_and_current_status_when_copying
661
- issue = Issue.find(1).copy
662
- assert_equal [1], issue.new_statuses_allowed_to(User.find(2)).map(&:id)
663
-
664
- issue = Issue.find(2).copy
665
- assert_equal [1, 2], issue.new_statuses_allowed_to(User.find(2)).map(&:id)
666
- end
667
-
668
- def test_safe_attributes_names_should_not_include_disabled_field
669
- tracker = Tracker.new(:core_fields => %w(assigned_to_id fixed_version_id))
670
-
671
- issue = Issue.new(:tracker => tracker)
672
- assert_include 'tracker_id', issue.safe_attribute_names
673
- assert_include 'status_id', issue.safe_attribute_names
674
- assert_include 'subject', issue.safe_attribute_names
675
- assert_include 'description', issue.safe_attribute_names
676
- assert_include 'custom_field_values', issue.safe_attribute_names
677
- assert_include 'custom_fields', issue.safe_attribute_names
678
- assert_include 'lock_version', issue.safe_attribute_names
679
-
680
- tracker.core_fields.each do |field|
681
- assert_include field, issue.safe_attribute_names
682
- end
683
-
684
- tracker.disabled_core_fields.each do |field|
685
- assert_not_include field, issue.safe_attribute_names
686
- end
687
- end
688
-
689
- def test_safe_attributes_should_ignore_disabled_fields
690
- tracker = Tracker.find(1)
691
- tracker.core_fields = %w(assigned_to_id due_date)
692
- tracker.save!
693
-
694
- issue = Issue.new(:tracker => tracker)
695
- issue.safe_attributes = {'start_date' => '2012-07-14', 'due_date' => '2012-07-14'}
696
- assert_nil issue.start_date
697
- assert_equal Date.parse('2012-07-14'), issue.due_date
698
- end
699
-
700
- def test_safe_attributes_should_accept_target_tracker_enabled_fields
701
- source = Tracker.find(1)
702
- source.core_fields = []
703
- source.save!
704
- target = Tracker.find(2)
705
- target.core_fields = %w(assigned_to_id due_date)
706
- target.save!
707
-
708
- issue = Issue.new(:tracker => source)
709
- issue.safe_attributes = {'tracker_id' => 2, 'due_date' => '2012-07-14'}
710
- assert_equal target, issue.tracker
711
- assert_equal Date.parse('2012-07-14'), issue.due_date
712
- end
713
-
714
- def test_safe_attributes_should_not_include_readonly_fields
715
- WorkflowPermission.delete_all
716
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
717
- :role_id => 1, :field_name => 'due_date',
718
- :rule => 'readonly')
719
- user = User.find(2)
720
-
721
- issue = Issue.new(:project_id => 1, :tracker_id => 1)
722
- assert_equal %w(due_date), issue.read_only_attribute_names(user)
723
- assert_not_include 'due_date', issue.safe_attribute_names(user)
724
-
725
- issue.send :safe_attributes=, {'start_date' => '2012-07-14', 'due_date' => '2012-07-14'}, user
726
- assert_equal Date.parse('2012-07-14'), issue.start_date
727
- assert_nil issue.due_date
728
- end
729
-
730
- def test_safe_attributes_should_not_include_readonly_custom_fields
731
- cf1 = IssueCustomField.create!(:name => 'Writable field',
732
- :field_format => 'string',
733
- :is_for_all => true, :tracker_ids => [1])
734
- cf2 = IssueCustomField.create!(:name => 'Readonly field',
735
- :field_format => 'string',
736
- :is_for_all => true, :tracker_ids => [1])
737
- WorkflowPermission.delete_all
738
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
739
- :role_id => 1, :field_name => cf2.id.to_s,
740
- :rule => 'readonly')
741
- user = User.find(2)
742
- issue = Issue.new(:project_id => 1, :tracker_id => 1)
743
- assert_equal [cf2.id.to_s], issue.read_only_attribute_names(user)
744
- assert_not_include cf2.id.to_s, issue.safe_attribute_names(user)
745
-
746
- issue.send :safe_attributes=, {'custom_field_values' => {
747
- cf1.id.to_s => 'value1', cf2.id.to_s => 'value2'
748
- }}, user
749
- assert_equal 'value1', issue.custom_field_value(cf1)
750
- assert_nil issue.custom_field_value(cf2)
751
-
752
- issue.send :safe_attributes=, {'custom_fields' => [
753
- {'id' => cf1.id.to_s, 'value' => 'valuea'},
754
- {'id' => cf2.id.to_s, 'value' => 'valueb'}
755
- ]}, user
756
- assert_equal 'valuea', issue.custom_field_value(cf1)
757
- assert_nil issue.custom_field_value(cf2)
758
- end
759
-
760
- def test_editable_custom_field_values_should_return_non_readonly_custom_values
761
- cf1 = IssueCustomField.create!(:name => 'Writable field', :field_format => 'string',
762
- :is_for_all => true, :tracker_ids => [1, 2])
763
- cf2 = IssueCustomField.create!(:name => 'Readonly field', :field_format => 'string',
764
- :is_for_all => true, :tracker_ids => [1, 2])
765
- WorkflowPermission.delete_all
766
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1, :role_id => 1,
767
- :field_name => cf2.id.to_s, :rule => 'readonly')
768
- user = User.find(2)
769
-
770
- issue = Issue.new(:project_id => 1, :tracker_id => 1)
771
- values = issue.editable_custom_field_values(user)
772
- assert values.detect {|value| value.custom_field == cf1}
773
- assert_nil values.detect {|value| value.custom_field == cf2}
774
-
775
- issue.tracker_id = 2
776
- values = issue.editable_custom_field_values(user)
777
- assert values.detect {|value| value.custom_field == cf1}
778
- assert values.detect {|value| value.custom_field == cf2}
779
- end
780
-
781
- def test_editable_custom_fields_should_return_custom_field_that_is_enabled_for_the_role_only
782
- enabled_cf = IssueCustomField.generate!(:is_for_all => true, :tracker_ids => [1], :visible => false, :role_ids => [1,2])
783
- disabled_cf = IssueCustomField.generate!(:is_for_all => true, :tracker_ids => [1], :visible => false, :role_ids => [2])
784
- user = User.find(2)
785
- issue = Issue.new(:project_id => 1, :tracker_id => 1)
786
-
787
- assert_include enabled_cf, issue.editable_custom_fields(user)
788
- assert_not_include disabled_cf, issue.editable_custom_fields(user)
789
- end
790
-
791
- def test_safe_attributes_should_accept_target_tracker_writable_fields
792
- WorkflowPermission.delete_all
793
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
794
- :role_id => 1, :field_name => 'due_date',
795
- :rule => 'readonly')
796
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 2,
797
- :role_id => 1, :field_name => 'start_date',
798
- :rule => 'readonly')
799
- user = User.find(2)
800
-
801
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
802
-
803
- issue.send :safe_attributes=, {'start_date' => '2012-07-12',
804
- 'due_date' => '2012-07-14'}, user
805
- assert_equal Date.parse('2012-07-12'), issue.start_date
806
- assert_nil issue.due_date
807
-
808
- issue.send :safe_attributes=, {'start_date' => '2012-07-15',
809
- 'due_date' => '2012-07-16',
810
- 'tracker_id' => 2}, user
811
- assert_equal Date.parse('2012-07-12'), issue.start_date
812
- assert_equal Date.parse('2012-07-16'), issue.due_date
813
- end
814
-
815
- def test_safe_attributes_should_accept_target_status_writable_fields
816
- WorkflowPermission.delete_all
817
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
818
- :role_id => 1, :field_name => 'due_date',
819
- :rule => 'readonly')
820
- WorkflowPermission.create!(:old_status_id => 2, :tracker_id => 1,
821
- :role_id => 1, :field_name => 'start_date',
822
- :rule => 'readonly')
823
- user = User.find(2)
824
-
825
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
826
-
827
- issue.send :safe_attributes=, {'start_date' => '2012-07-12',
828
- 'due_date' => '2012-07-14'},
829
- user
830
- assert_equal Date.parse('2012-07-12'), issue.start_date
831
- assert_nil issue.due_date
832
-
833
- issue.send :safe_attributes=, {'start_date' => '2012-07-15',
834
- 'due_date' => '2012-07-16',
835
- 'status_id' => 2},
836
- user
837
- assert_equal Date.parse('2012-07-12'), issue.start_date
838
- assert_equal Date.parse('2012-07-16'), issue.due_date
839
- end
840
-
841
- def test_required_attributes_should_be_validated
842
- cf = IssueCustomField.create!(:name => 'Foo', :field_format => 'string',
843
- :is_for_all => true, :tracker_ids => [1, 2])
844
-
845
- WorkflowPermission.delete_all
846
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
847
- :role_id => 1, :field_name => 'due_date',
848
- :rule => 'required')
849
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
850
- :role_id => 1, :field_name => 'category_id',
851
- :rule => 'required')
852
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
853
- :role_id => 1, :field_name => cf.id.to_s,
854
- :rule => 'required')
855
-
856
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 2,
857
- :role_id => 1, :field_name => 'start_date',
858
- :rule => 'required')
859
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 2,
860
- :role_id => 1, :field_name => cf.id.to_s,
861
- :rule => 'required')
862
- user = User.find(2)
863
-
864
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
865
- :status_id => 1, :subject => 'Required fields',
866
- :author => user)
867
- assert_equal [cf.id.to_s, "category_id", "due_date"],
868
- issue.required_attribute_names(user).sort
869
- assert !issue.save, "Issue was saved"
870
- assert_equal ["Category cannot be blank", "Due date cannot be blank", "Foo cannot be blank"],
871
- issue.errors.full_messages.sort
872
-
873
- issue.tracker_id = 2
874
- assert_equal [cf.id.to_s, "start_date"], issue.required_attribute_names(user).sort
875
- assert !issue.save, "Issue was saved"
876
- assert_equal ["Foo cannot be blank", "Start date cannot be blank"],
877
- issue.errors.full_messages.sort
878
-
879
- issue.start_date = Date.today
880
- issue.custom_field_values = {cf.id.to_s => 'bar'}
881
- assert issue.save
882
- end
883
-
884
- def test_required_attribute_that_is_disabled_for_the_tracker_should_not_be_required
885
- WorkflowPermission.delete_all
886
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
887
- :role_id => 1, :field_name => 'start_date',
888
- :rule => 'required')
889
- user = User.find(2)
890
-
891
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
892
- :subject => 'Required fields', :author => user)
893
- assert !issue.save
894
- assert_include "Start date cannot be blank", issue.errors.full_messages
895
-
896
- tracker = Tracker.find(1)
897
- tracker.core_fields -= %w(start_date)
898
- tracker.save!
899
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
900
- :subject => 'Required fields', :author => user)
901
- assert issue.save
902
- end
903
-
904
- def test_required_custom_field_that_is_not_visible_for_the_user_should_not_be_required
905
- CustomField.delete_all
906
- field = IssueCustomField.generate!(:is_required => true, :visible => false, :role_ids => [1], :trackers => Tracker.all, :is_for_all => true)
907
- user = User.generate!
908
- User.add_to_project(user, Project.find(1), Role.find(2))
909
-
910
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
911
- :subject => 'Required fields', :author => user)
912
- assert_save issue
913
- end
914
-
915
- def test_required_custom_field_that_is_visible_for_the_user_should_be_required
916
- CustomField.delete_all
917
- field = IssueCustomField.generate!(:is_required => true, :visible => false, :role_ids => [1], :trackers => Tracker.all, :is_for_all => true)
918
- user = User.generate!
919
- User.add_to_project(user, Project.find(1), Role.find(1))
920
-
921
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
922
- :subject => 'Required fields', :author => user)
923
- assert !issue.save
924
- assert_include "#{field.name} cannot be blank", issue.errors.full_messages
925
- end
926
-
927
- def test_required_attribute_names_for_multiple_roles_should_intersect_rules
928
- WorkflowPermission.delete_all
929
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
930
- :role_id => 1, :field_name => 'due_date',
931
- :rule => 'required')
932
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
933
- :role_id => 1, :field_name => 'start_date',
934
- :rule => 'required')
935
- user = User.find(2)
936
- member = Member.find(1)
937
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
938
-
939
- assert_equal %w(due_date start_date), issue.required_attribute_names(user).sort
940
-
941
- member.role_ids = [1, 2]
942
- member.save!
943
- assert_equal [], issue.required_attribute_names(user.reload)
944
-
945
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
946
- :role_id => 2, :field_name => 'due_date',
947
- :rule => 'required')
948
- assert_equal %w(due_date), issue.required_attribute_names(user)
949
-
950
- member.role_ids = [1, 2, 3]
951
- member.save!
952
- assert_equal [], issue.required_attribute_names(user.reload)
953
-
954
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
955
- :role_id => 3, :field_name => 'due_date',
956
- :rule => 'readonly')
957
- # required + readonly => required
958
- assert_equal %w(due_date), issue.required_attribute_names(user)
959
- end
960
-
961
- def test_read_only_attribute_names_for_multiple_roles_should_intersect_rules
962
- WorkflowPermission.delete_all
963
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
964
- :role_id => 1, :field_name => 'due_date',
965
- :rule => 'readonly')
966
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
967
- :role_id => 1, :field_name => 'start_date',
968
- :rule => 'readonly')
969
- user = User.find(2)
970
- member = Member.find(1)
971
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
972
-
973
- assert_equal %w(due_date start_date), issue.read_only_attribute_names(user).sort
974
-
975
- member.role_ids = [1, 2]
976
- member.save!
977
- assert_equal [], issue.read_only_attribute_names(user.reload)
978
-
979
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
980
- :role_id => 2, :field_name => 'due_date',
981
- :rule => 'readonly')
982
- assert_equal %w(due_date), issue.read_only_attribute_names(user)
983
- end
984
-
985
- # A field that is not visible by role 2 and readonly by role 1 should be readonly for user with role 1 and 2
986
- def test_read_only_attribute_names_should_include_custom_fields_that_combine_readonly_and_not_visible_for_roles
987
- field = IssueCustomField.generate!(
988
- :is_for_all => true, :trackers => Tracker.all, :visible => false, :role_ids => [1]
989
- )
990
- WorkflowPermission.delete_all
991
- WorkflowPermission.create!(
992
- :old_status_id => 1, :tracker_id => 1, :role_id => 1, :field_name => field.id, :rule => 'readonly'
993
- )
994
- user = User.generate!
995
- project = Project.find(1)
996
- User.add_to_project(user, project, Role.where(:id => [1, 2]))
997
-
998
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
999
- assert_equal [field.id.to_s], issue.read_only_attribute_names(user)
1000
- end
1001
-
1002
- def test_workflow_rules_should_ignore_roles_without_issue_permissions
1003
- role = Role.generate! :permissions => [:view_issues, :edit_issues]
1004
- ignored_role = Role.generate! :permissions => [:view_issues]
1005
-
1006
- WorkflowPermission.delete_all
1007
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
1008
- :role => role, :field_name => 'due_date',
1009
- :rule => 'required')
1010
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
1011
- :role => role, :field_name => 'start_date',
1012
- :rule => 'readonly')
1013
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
1014
- :role => role, :field_name => 'done_ratio',
1015
- :rule => 'readonly')
1016
- user = User.generate!
1017
- User.add_to_project user, Project.find(1), [role, ignored_role]
1018
-
1019
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
1020
-
1021
- assert_equal %w(due_date), issue.required_attribute_names(user)
1022
- assert_equal %w(done_ratio start_date), issue.read_only_attribute_names(user).sort
1023
- end
1024
-
1025
- def test_workflow_rules_should_work_for_member_with_duplicate_role
1026
- WorkflowPermission.delete_all
1027
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
1028
- :role_id => 1, :field_name => 'due_date',
1029
- :rule => 'required')
1030
- WorkflowPermission.create!(:old_status_id => 1, :tracker_id => 1,
1031
- :role_id => 1, :field_name => 'start_date',
1032
- :rule => 'readonly')
1033
-
1034
- user = User.generate!
1035
- m = Member.new(:user_id => user.id, :project_id => 1)
1036
- m.member_roles.build(:role_id => 1)
1037
- m.member_roles.build(:role_id => 1)
1038
- m.save!
1039
-
1040
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1)
1041
-
1042
- assert_equal %w(due_date), issue.required_attribute_names(user)
1043
- assert_equal %w(start_date), issue.read_only_attribute_names(user)
1044
- end
1045
-
1046
- def test_copy
1047
- issue = Issue.new.copy_from(1)
1048
- assert issue.copy?
1049
- assert issue.save
1050
- issue.reload
1051
- orig = Issue.find(1)
1052
- assert_equal orig.subject, issue.subject
1053
- assert_equal orig.tracker, issue.tracker
1054
- assert_equal "125", issue.custom_value_for(2).value
1055
- end
1056
-
1057
- def test_copy_should_copy_status
1058
- orig = Issue.find(8)
1059
- assert orig.status != orig.default_status
1060
-
1061
- issue = Issue.new.copy_from(orig)
1062
- assert issue.save
1063
- issue.reload
1064
- assert_equal orig.status, issue.status
1065
- end
1066
-
1067
- def test_copy_should_add_relation_with_copied_issue
1068
- copied = Issue.find(1)
1069
- issue = Issue.new.copy_from(copied)
1070
- assert issue.save
1071
- issue.reload
1072
-
1073
- assert_equal 1, issue.relations.size
1074
- relation = issue.relations.first
1075
- assert_equal 'copied_to', relation.relation_type
1076
- assert_equal copied, relation.issue_from
1077
- assert_equal issue, relation.issue_to
1078
- end
1079
-
1080
- def test_copy_should_copy_subtasks
1081
- issue = Issue.generate_with_descendants!
1082
-
1083
- copy = issue.reload.copy
1084
- copy.author = User.find(7)
1085
- assert_difference 'Issue.count', 1+issue.descendants.count do
1086
- assert copy.save
1087
- end
1088
- copy.reload
1089
- assert_equal %w(Child1 Child2), copy.children.map(&:subject).sort
1090
- child_copy = copy.children.detect {|c| c.subject == 'Child1'}
1091
- assert_equal %w(Child11), child_copy.children.map(&:subject).sort
1092
- assert_equal copy.author, child_copy.author
1093
- end
1094
-
1095
- def test_copy_as_a_child_of_copied_issue_should_not_copy_itself
1096
- parent = Issue.generate!
1097
- child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1')
1098
- child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2')
1099
-
1100
- copy = parent.reload.copy
1101
- copy.parent_issue_id = parent.id
1102
- copy.author = User.find(7)
1103
- assert_difference 'Issue.count', 3 do
1104
- assert copy.save
1105
- end
1106
- parent.reload
1107
- copy.reload
1108
- assert_equal parent, copy.parent
1109
- assert_equal 3, parent.children.count
1110
- assert_equal 5, parent.descendants.count
1111
- assert_equal 2, copy.children.count
1112
- assert_equal 2, copy.descendants.count
1113
- end
1114
-
1115
- def test_copy_as_a_descendant_of_copied_issue_should_not_copy_itself
1116
- parent = Issue.generate!
1117
- child1 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 1')
1118
- child2 = Issue.generate!(:parent_issue_id => parent.id, :subject => 'Child 2')
1119
-
1120
- copy = parent.reload.copy
1121
- copy.parent_issue_id = child1.id
1122
- copy.author = User.find(7)
1123
- assert_difference 'Issue.count', 3 do
1124
- assert copy.save
1125
- end
1126
- parent.reload
1127
- child1.reload
1128
- copy.reload
1129
- assert_equal child1, copy.parent
1130
- assert_equal 2, parent.children.count
1131
- assert_equal 5, parent.descendants.count
1132
- assert_equal 1, child1.children.count
1133
- assert_equal 3, child1.descendants.count
1134
- assert_equal 2, copy.children.count
1135
- assert_equal 2, copy.descendants.count
1136
- end
1137
-
1138
- def test_copy_should_copy_subtasks_to_target_project
1139
- issue = Issue.generate_with_descendants!
1140
-
1141
- copy = issue.copy(:project_id => 3)
1142
- assert_difference 'Issue.count', 1+issue.descendants.count do
1143
- assert copy.save
1144
- end
1145
- assert_equal [3], copy.reload.descendants.map(&:project_id).uniq
1146
- end
1147
-
1148
- def test_copy_should_not_copy_subtasks_twice_when_saving_twice
1149
- issue = Issue.generate_with_descendants!
1150
-
1151
- copy = issue.reload.copy
1152
- assert_difference 'Issue.count', 1+issue.descendants.count do
1153
- assert copy.save
1154
- assert copy.save
1155
- end
1156
- end
1157
-
1158
- def test_should_not_call_after_project_change_on_creation
1159
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :status_id => 1,
1160
- :subject => 'Test', :author_id => 1)
1161
- issue.expects(:after_project_change).never
1162
- issue.save!
1163
- end
1164
-
1165
- def test_should_not_call_after_project_change_on_update
1166
- issue = Issue.find(1)
1167
- issue.project = Project.find(1)
1168
- issue.subject = 'No project change'
1169
- issue.expects(:after_project_change).never
1170
- issue.save!
1171
- end
1172
-
1173
- def test_should_call_after_project_change_on_project_change
1174
- issue = Issue.find(1)
1175
- issue.project = Project.find(2)
1176
- issue.expects(:after_project_change).once
1177
- issue.save!
1178
- end
1179
-
1180
- def test_adding_journal_should_update_timestamp
1181
- issue = Issue.find(1)
1182
- updated_on_was = issue.updated_on
1183
-
1184
- issue.init_journal(User.first, "Adding notes")
1185
- assert_difference 'Journal.count' do
1186
- assert issue.save
1187
- end
1188
- issue.reload
1189
-
1190
- assert_not_equal updated_on_was, issue.updated_on
1191
- end
1192
-
1193
- def test_should_close_duplicates
1194
- # Create 3 issues
1195
- issue1 = Issue.generate!
1196
- issue2 = Issue.generate!
1197
- issue3 = Issue.generate!
1198
-
1199
- # 2 is a dupe of 1
1200
- IssueRelation.create!(:issue_from => issue2, :issue_to => issue1,
1201
- :relation_type => IssueRelation::TYPE_DUPLICATES)
1202
- # And 3 is a dupe of 2
1203
- # IssueRelation.create!(:issue_from => issue3, :issue_to => issue2,
1204
- # :relation_type => IssueRelation::TYPE_DUPLICATES)
1205
- # And 3 is a dupe of 1 (circular duplicates)
1206
- IssueRelation.create!(:issue_from => issue3, :issue_to => issue1,
1207
- :relation_type => IssueRelation::TYPE_DUPLICATES)
1208
-
1209
- assert issue1.reload.duplicates.include?(issue2)
1210
-
1211
- # Closing issue 1
1212
- issue1.init_journal(User.first, "Closing issue1")
1213
- issue1.status = IssueStatus.where(:is_closed => true).first
1214
- assert issue1.save
1215
- # 2 and 3 should be also closed
1216
- assert issue2.reload.closed?
1217
- assert issue3.reload.closed?
1218
- end
1219
-
1220
- def test_should_not_close_duplicated_issue
1221
- issue1 = Issue.generate!
1222
- issue2 = Issue.generate!
1223
-
1224
- # 2 is a dupe of 1
1225
- IssueRelation.create(:issue_from => issue2, :issue_to => issue1,
1226
- :relation_type => IssueRelation::TYPE_DUPLICATES)
1227
- # 2 is a dup of 1 but 1 is not a duplicate of 2
1228
- assert !issue2.reload.duplicates.include?(issue1)
1229
-
1230
- # Closing issue 2
1231
- issue2.init_journal(User.first, "Closing issue2")
1232
- issue2.status = IssueStatus.where(:is_closed => true).first
1233
- assert issue2.save
1234
- # 1 should not be also closed
1235
- assert !issue1.reload.closed?
1236
- end
1237
-
1238
- def test_assignable_versions
1239
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
1240
- :status_id => 1, :fixed_version_id => 1,
1241
- :subject => 'New issue')
1242
- assert_equal ['open'], issue.assignable_versions.collect(&:status).uniq
1243
- end
1244
-
1245
- def test_should_not_be_able_to_assign_a_new_issue_to_a_closed_version
1246
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
1247
- :status_id => 1, :fixed_version_id => 1,
1248
- :subject => 'New issue')
1249
- assert !issue.save
1250
- assert_not_equal [], issue.errors[:fixed_version_id]
1251
- end
1252
-
1253
- def test_should_not_be_able_to_assign_a_new_issue_to_a_locked_version
1254
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
1255
- :status_id => 1, :fixed_version_id => 2,
1256
- :subject => 'New issue')
1257
- assert !issue.save
1258
- assert_not_equal [], issue.errors[:fixed_version_id]
1259
- end
1260
-
1261
- def test_should_be_able_to_assign_a_new_issue_to_an_open_version
1262
- issue = Issue.new(:project_id => 1, :tracker_id => 1, :author_id => 1,
1263
- :status_id => 1, :fixed_version_id => 3,
1264
- :subject => 'New issue')
1265
- assert issue.save
1266
- end
1267
-
1268
- def test_should_be_able_to_update_an_issue_assigned_to_a_closed_version
1269
- issue = Issue.find(11)
1270
- assert_equal 'closed', issue.fixed_version.status
1271
- issue.subject = 'Subject changed'
1272
- assert issue.save
1273
- end
1274
-
1275
- def test_should_not_be_able_to_reopen_an_issue_assigned_to_a_closed_version
1276
- issue = Issue.find(11)
1277
- issue.status_id = 1
1278
- assert !issue.save
1279
- assert_not_equal [], issue.errors[:base]
1280
- end
1281
-
1282
- def test_should_be_able_to_reopen_and_reassign_an_issue_assigned_to_a_closed_version
1283
- issue = Issue.find(11)
1284
- issue.status_id = 1
1285
- issue.fixed_version_id = 3
1286
- assert issue.save
1287
- end
1288
-
1289
- def test_should_be_able_to_reopen_an_issue_assigned_to_a_locked_version
1290
- issue = Issue.find(12)
1291
- assert_equal 'locked', issue.fixed_version.status
1292
- issue.status_id = 1
1293
- assert issue.save
1294
- end
1295
-
1296
- def test_should_not_be_able_to_keep_unshared_version_when_changing_project
1297
- issue = Issue.find(2)
1298
- assert_equal 2, issue.fixed_version_id
1299
- issue.project_id = 3
1300
- assert_nil issue.fixed_version_id
1301
- issue.fixed_version_id = 2
1302
- assert !issue.save
1303
- assert_include 'Target version is not included in the list', issue.errors.full_messages
1304
- end
1305
-
1306
- def test_should_keep_shared_version_when_changing_project
1307
- Version.find(2).update_attribute :sharing, 'tree'
1308
-
1309
- issue = Issue.find(2)
1310
- assert_equal 2, issue.fixed_version_id
1311
- issue.project_id = 3
1312
- assert_equal 2, issue.fixed_version_id
1313
- assert issue.save
1314
- end
1315
-
1316
- def test_allowed_target_projects_should_include_projects_with_issue_tracking_enabled
1317
- assert_include Project.find(2), Issue.allowed_target_projects(User.find(2))
1318
- end
1319
-
1320
- def test_allowed_target_projects_should_not_include_projects_with_issue_tracking_disabled
1321
- Project.find(2).disable_module! :issue_tracking
1322
- assert_not_include Project.find(2), Issue.allowed_target_projects(User.find(2))
1323
- end
1324
-
1325
- def test_move_to_another_project_with_same_category
1326
- issue = Issue.find(1)
1327
- issue.project = Project.find(2)
1328
- assert issue.save
1329
- issue.reload
1330
- assert_equal 2, issue.project_id
1331
- # Category changes
1332
- assert_equal 4, issue.category_id
1333
- # Make sure time entries were move to the target project
1334
- assert_equal 2, issue.time_entries.first.project_id
1335
- end
1336
-
1337
- def test_move_to_another_project_without_same_category
1338
- issue = Issue.find(2)
1339
- issue.project = Project.find(2)
1340
- assert issue.save
1341
- issue.reload
1342
- assert_equal 2, issue.project_id
1343
- # Category cleared
1344
- assert_nil issue.category_id
1345
- end
1346
-
1347
- def test_move_to_another_project_should_clear_fixed_version_when_not_shared
1348
- issue = Issue.find(1)
1349
- issue.update_attribute(:fixed_version_id, 1)
1350
- issue.project = Project.find(2)
1351
- assert issue.save
1352
- issue.reload
1353
- assert_equal 2, issue.project_id
1354
- # Cleared fixed_version
1355
- assert_equal nil, issue.fixed_version
1356
- end
1357
-
1358
- def test_move_to_another_project_should_keep_fixed_version_when_shared_with_the_target_project
1359
- issue = Issue.find(1)
1360
- issue.update_attribute(:fixed_version_id, 4)
1361
- issue.project = Project.find(5)
1362
- assert issue.save
1363
- issue.reload
1364
- assert_equal 5, issue.project_id
1365
- # Keep fixed_version
1366
- assert_equal 4, issue.fixed_version_id
1367
- end
1368
-
1369
- def test_move_to_another_project_should_clear_fixed_version_when_not_shared_with_the_target_project
1370
- issue = Issue.find(1)
1371
- issue.update_attribute(:fixed_version_id, 1)
1372
- issue.project = Project.find(5)
1373
- assert issue.save
1374
- issue.reload
1375
- assert_equal 5, issue.project_id
1376
- # Cleared fixed_version
1377
- assert_equal nil, issue.fixed_version
1378
- end
1379
-
1380
- def test_move_to_another_project_should_keep_fixed_version_when_shared_systemwide
1381
- issue = Issue.find(1)
1382
- issue.update_attribute(:fixed_version_id, 7)
1383
- issue.project = Project.find(2)
1384
- assert issue.save
1385
- issue.reload
1386
- assert_equal 2, issue.project_id
1387
- # Keep fixed_version
1388
- assert_equal 7, issue.fixed_version_id
1389
- end
1390
-
1391
- def test_move_to_another_project_should_keep_parent_if_valid
1392
- issue = Issue.find(1)
1393
- issue.update_attribute(:parent_issue_id, 2)
1394
- issue.project = Project.find(3)
1395
- assert issue.save
1396
- issue.reload
1397
- assert_equal 2, issue.parent_id
1398
- end
1399
-
1400
- def test_move_to_another_project_should_clear_parent_if_not_valid
1401
- issue = Issue.find(1)
1402
- issue.update_attribute(:parent_issue_id, 2)
1403
- issue.project = Project.find(2)
1404
- assert issue.save
1405
- issue.reload
1406
- assert_nil issue.parent_id
1407
- end
1408
-
1409
- def test_move_to_another_project_with_disabled_tracker
1410
- issue = Issue.find(1)
1411
- target = Project.find(2)
1412
- target.tracker_ids = [3]
1413
- target.save
1414
- issue.project = target
1415
- assert issue.save
1416
- issue.reload
1417
- assert_equal 2, issue.project_id
1418
- assert_equal 3, issue.tracker_id
1419
- end
1420
-
1421
- def test_copy_to_the_same_project
1422
- issue = Issue.find(1)
1423
- copy = issue.copy
1424
- assert_difference 'Issue.count' do
1425
- copy.save!
1426
- end
1427
- assert_kind_of Issue, copy
1428
- assert_equal issue.project, copy.project
1429
- assert_equal "125", copy.custom_value_for(2).value
1430
- end
1431
-
1432
- def test_copy_to_another_project_and_tracker
1433
- issue = Issue.find(1)
1434
- copy = issue.copy(:project_id => 3, :tracker_id => 2)
1435
- assert_difference 'Issue.count' do
1436
- copy.save!
1437
- end
1438
- copy.reload
1439
- assert_kind_of Issue, copy
1440
- assert_equal Project.find(3), copy.project
1441
- assert_equal Tracker.find(2), copy.tracker
1442
- # Custom field #2 is not associated with target tracker
1443
- assert_nil copy.custom_value_for(2)
1444
- end
1445
-
1446
- test "#copy should not create a journal" do
1447
- copy = Issue.find(1).copy({:project_id => 3, :tracker_id => 2, :assigned_to_id => 3}, :link => false)
1448
- copy.save!
1449
- assert_equal 0, copy.reload.journals.size
1450
- end
1451
-
1452
- test "#copy should allow assigned_to changes" do
1453
- copy = Issue.find(1).copy(:project_id => 3, :tracker_id => 2, :assigned_to_id => 3)
1454
- assert_equal 3, copy.assigned_to_id
1455
- end
1456
-
1457
- test "#copy should allow status changes" do
1458
- copy = Issue.find(1).copy(:project_id => 3, :tracker_id => 2, :status_id => 2)
1459
- assert_equal 2, copy.status_id
1460
- end
1461
-
1462
- test "#copy should allow start date changes" do
1463
- date = Date.today
1464
- copy = Issue.find(1).copy(:project_id => 3, :tracker_id => 2, :start_date => date)
1465
- assert_equal date, copy.start_date
1466
- end
1467
-
1468
- test "#copy should allow due date changes" do
1469
- date = Date.today
1470
- copy = Issue.find(1).copy(:project_id => 3, :tracker_id => 2, :due_date => date)
1471
- assert_equal date, copy.due_date
1472
- end
1473
-
1474
- test "#copy should set current user as author" do
1475
- User.current = User.find(9)
1476
- copy = Issue.find(1).copy(:project_id => 3, :tracker_id => 2)
1477
- assert_equal User.current, copy.author
1478
- end
1479
-
1480
- test "#copy should create a journal with notes" do
1481
- date = Date.today
1482
- notes = "Notes added when copying"
1483
- copy = Issue.find(1).copy({:project_id => 3, :tracker_id => 2, :start_date => date}, :link => false)
1484
- copy.init_journal(User.current, notes)
1485
- copy.save!
1486
-
1487
- assert_equal 1, copy.journals.size
1488
- journal = copy.journals.first
1489
- assert_equal 0, journal.details.size
1490
- assert_equal notes, journal.notes
1491
- end
1492
-
1493
- def test_valid_parent_project
1494
- issue = Issue.find(1)
1495
- issue_in_same_project = Issue.find(2)
1496
- issue_in_child_project = Issue.find(5)
1497
- issue_in_grandchild_project = Issue.generate!(:project_id => 6, :tracker_id => 1)
1498
- issue_in_other_child_project = Issue.find(6)
1499
- issue_in_different_tree = Issue.find(4)
1500
-
1501
- with_settings :cross_project_subtasks => '' do
1502
- assert_equal true, issue.valid_parent_project?(issue_in_same_project)
1503
- assert_equal false, issue.valid_parent_project?(issue_in_child_project)
1504
- assert_equal false, issue.valid_parent_project?(issue_in_grandchild_project)
1505
- assert_equal false, issue.valid_parent_project?(issue_in_different_tree)
1506
- end
1507
-
1508
- with_settings :cross_project_subtasks => 'system' do
1509
- assert_equal true, issue.valid_parent_project?(issue_in_same_project)
1510
- assert_equal true, issue.valid_parent_project?(issue_in_child_project)
1511
- assert_equal true, issue.valid_parent_project?(issue_in_different_tree)
1512
- end
1513
-
1514
- with_settings :cross_project_subtasks => 'tree' do
1515
- assert_equal true, issue.valid_parent_project?(issue_in_same_project)
1516
- assert_equal true, issue.valid_parent_project?(issue_in_child_project)
1517
- assert_equal true, issue.valid_parent_project?(issue_in_grandchild_project)
1518
- assert_equal false, issue.valid_parent_project?(issue_in_different_tree)
1519
-
1520
- assert_equal true, issue_in_child_project.valid_parent_project?(issue_in_same_project)
1521
- assert_equal true, issue_in_child_project.valid_parent_project?(issue_in_other_child_project)
1522
- end
1523
-
1524
- with_settings :cross_project_subtasks => 'descendants' do
1525
- assert_equal true, issue.valid_parent_project?(issue_in_same_project)
1526
- assert_equal false, issue.valid_parent_project?(issue_in_child_project)
1527
- assert_equal false, issue.valid_parent_project?(issue_in_grandchild_project)
1528
- assert_equal false, issue.valid_parent_project?(issue_in_different_tree)
1529
-
1530
- assert_equal true, issue_in_child_project.valid_parent_project?(issue)
1531
- assert_equal false, issue_in_child_project.valid_parent_project?(issue_in_other_child_project)
1532
- end
1533
- end
1534
-
1535
- def test_recipients_should_include_previous_assignee
1536
- user = User.find(3)
1537
- user.members.update_all ["mail_notification = ?", false]
1538
- user.update_attribute :mail_notification, 'only_assigned'
1539
-
1540
- issue = Issue.find(2)
1541
- issue.assigned_to = nil
1542
- assert_include user.mail, issue.recipients
1543
- issue.save!
1544
- assert !issue.recipients.include?(user.mail)
1545
- end
1546
-
1547
- def test_recipients_should_not_include_users_that_cannot_view_the_issue
1548
- issue = Issue.find(12)
1549
- assert issue.recipients.include?(issue.author.mail)
1550
- # copy the issue to a private project
1551
- copy = issue.copy(:project_id => 5, :tracker_id => 2)
1552
- # author is not a member of project anymore
1553
- assert !copy.recipients.include?(copy.author.mail)
1554
- end
1555
-
1556
- def test_recipients_should_include_the_assigned_group_members
1557
- group_member = User.generate!
1558
- group = Group.generate!
1559
- group.users << group_member
1560
-
1561
- issue = Issue.find(12)
1562
- issue.assigned_to = group
1563
- assert issue.recipients.include?(group_member.mail)
1564
- end
1565
-
1566
- def test_watcher_recipients_should_not_include_users_that_cannot_view_the_issue
1567
- user = User.find(3)
1568
- issue = Issue.find(9)
1569
- Watcher.create!(:user => user, :watchable => issue)
1570
- assert issue.watched_by?(user)
1571
- assert !issue.watcher_recipients.include?(user.mail)
1572
- end
1573
-
1574
- def test_issue_destroy
1575
- Issue.find(1).destroy
1576
- assert_nil Issue.find_by_id(1)
1577
- assert_nil TimeEntry.find_by_issue_id(1)
1578
- end
1579
-
1580
- def test_destroy_should_delete_time_entries_custom_values
1581
- issue = Issue.generate!
1582
- time_entry = TimeEntry.generate!(:issue => issue, :custom_field_values => {10 => '1'})
1583
-
1584
- assert_difference 'CustomValue.where(:customized_type => "TimeEntry").count', -1 do
1585
- assert issue.destroy
1586
- end
1587
- end
1588
-
1589
- def test_destroying_a_deleted_issue_should_not_raise_an_error
1590
- issue = Issue.find(1)
1591
- Issue.find(1).destroy
1592
-
1593
- assert_nothing_raised do
1594
- assert_no_difference 'Issue.count' do
1595
- issue.destroy
1596
- end
1597
- assert issue.destroyed?
1598
- end
1599
- end
1600
-
1601
- def test_destroying_a_stale_issue_should_not_raise_an_error
1602
- issue = Issue.find(1)
1603
- Issue.find(1).update_attribute :subject, "Updated"
1604
-
1605
- assert_nothing_raised do
1606
- assert_difference 'Issue.count', -1 do
1607
- issue.destroy
1608
- end
1609
- assert issue.destroyed?
1610
- end
1611
- end
1612
-
1613
- def test_blocked
1614
- blocked_issue = Issue.find(9)
1615
- blocking_issue = Issue.find(10)
1616
-
1617
- assert blocked_issue.blocked?
1618
- assert !blocking_issue.blocked?
1619
- end
1620
-
1621
- def test_blocked_issues_dont_allow_closed_statuses
1622
- blocked_issue = Issue.find(9)
1623
-
1624
- allowed_statuses = blocked_issue.new_statuses_allowed_to(users(:users_002))
1625
- assert !allowed_statuses.empty?
1626
- closed_statuses = allowed_statuses.select {|st| st.is_closed?}
1627
- assert closed_statuses.empty?
1628
- end
1629
-
1630
- def test_unblocked_issues_allow_closed_statuses
1631
- blocking_issue = Issue.find(10)
1632
-
1633
- allowed_statuses = blocking_issue.new_statuses_allowed_to(users(:users_002))
1634
- assert !allowed_statuses.empty?
1635
- closed_statuses = allowed_statuses.select {|st| st.is_closed?}
1636
- assert !closed_statuses.empty?
1637
- end
1638
-
1639
- def test_reschedule_an_issue_without_dates
1640
- with_settings :non_working_week_days => [] do
1641
- issue = Issue.new(:start_date => nil, :due_date => nil)
1642
- issue.reschedule_on '2012-10-09'.to_date
1643
- assert_equal '2012-10-09'.to_date, issue.start_date
1644
- assert_equal '2012-10-09'.to_date, issue.due_date
1645
- end
1646
-
1647
- with_settings :non_working_week_days => %w(6 7) do
1648
- issue = Issue.new(:start_date => nil, :due_date => nil)
1649
- issue.reschedule_on '2012-10-09'.to_date
1650
- assert_equal '2012-10-09'.to_date, issue.start_date
1651
- assert_equal '2012-10-09'.to_date, issue.due_date
1652
-
1653
- issue = Issue.new(:start_date => nil, :due_date => nil)
1654
- issue.reschedule_on '2012-10-13'.to_date
1655
- assert_equal '2012-10-15'.to_date, issue.start_date
1656
- assert_equal '2012-10-15'.to_date, issue.due_date
1657
- end
1658
- end
1659
-
1660
- def test_reschedule_an_issue_with_start_date
1661
- with_settings :non_working_week_days => [] do
1662
- issue = Issue.new(:start_date => '2012-10-09', :due_date => nil)
1663
- issue.reschedule_on '2012-10-13'.to_date
1664
- assert_equal '2012-10-13'.to_date, issue.start_date
1665
- assert_equal '2012-10-13'.to_date, issue.due_date
1666
- end
1667
-
1668
- with_settings :non_working_week_days => %w(6 7) do
1669
- issue = Issue.new(:start_date => '2012-10-09', :due_date => nil)
1670
- issue.reschedule_on '2012-10-11'.to_date
1671
- assert_equal '2012-10-11'.to_date, issue.start_date
1672
- assert_equal '2012-10-11'.to_date, issue.due_date
1673
-
1674
- issue = Issue.new(:start_date => '2012-10-09', :due_date => nil)
1675
- issue.reschedule_on '2012-10-13'.to_date
1676
- assert_equal '2012-10-15'.to_date, issue.start_date
1677
- assert_equal '2012-10-15'.to_date, issue.due_date
1678
- end
1679
- end
1680
-
1681
- def test_reschedule_an_issue_with_start_and_due_dates
1682
- with_settings :non_working_week_days => [] do
1683
- issue = Issue.new(:start_date => '2012-10-09', :due_date => '2012-10-15')
1684
- issue.reschedule_on '2012-10-13'.to_date
1685
- assert_equal '2012-10-13'.to_date, issue.start_date
1686
- assert_equal '2012-10-19'.to_date, issue.due_date
1687
- end
1688
-
1689
- with_settings :non_working_week_days => %w(6 7) do
1690
- issue = Issue.new(:start_date => '2012-10-09', :due_date => '2012-10-19') # 8 working days
1691
- issue.reschedule_on '2012-10-11'.to_date
1692
- assert_equal '2012-10-11'.to_date, issue.start_date
1693
- assert_equal '2012-10-23'.to_date, issue.due_date
1694
-
1695
- issue = Issue.new(:start_date => '2012-10-09', :due_date => '2012-10-19')
1696
- issue.reschedule_on '2012-10-13'.to_date
1697
- assert_equal '2012-10-15'.to_date, issue.start_date
1698
- assert_equal '2012-10-25'.to_date, issue.due_date
1699
- end
1700
- end
1701
-
1702
- def test_rescheduling_an_issue_to_a_later_due_date_should_reschedule_following_issue
1703
- issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1704
- issue2 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1705
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2,
1706
- :relation_type => IssueRelation::TYPE_PRECEDES)
1707
- assert_equal Date.parse('2012-10-18'), issue2.reload.start_date
1708
-
1709
- issue1.reload
1710
- issue1.due_date = '2012-10-23'
1711
- issue1.save!
1712
- issue2.reload
1713
- assert_equal Date.parse('2012-10-24'), issue2.start_date
1714
- assert_equal Date.parse('2012-10-26'), issue2.due_date
1715
- end
1716
-
1717
- def test_rescheduling_an_issue_to_an_earlier_due_date_should_reschedule_following_issue
1718
- issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1719
- issue2 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1720
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2,
1721
- :relation_type => IssueRelation::TYPE_PRECEDES)
1722
- assert_equal Date.parse('2012-10-18'), issue2.reload.start_date
1723
-
1724
- issue1.reload
1725
- issue1.start_date = '2012-09-17'
1726
- issue1.due_date = '2012-09-18'
1727
- issue1.save!
1728
- issue2.reload
1729
- assert_equal Date.parse('2012-09-19'), issue2.start_date
1730
- assert_equal Date.parse('2012-09-21'), issue2.due_date
1731
- end
1732
-
1733
- def test_rescheduling_reschedule_following_issue_earlier_should_consider_other_preceding_issues
1734
- issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1735
- issue2 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1736
- issue3 = Issue.generate!(:start_date => '2012-10-01', :due_date => '2012-10-02')
1737
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2,
1738
- :relation_type => IssueRelation::TYPE_PRECEDES)
1739
- IssueRelation.create!(:issue_from => issue3, :issue_to => issue2,
1740
- :relation_type => IssueRelation::TYPE_PRECEDES)
1741
- assert_equal Date.parse('2012-10-18'), issue2.reload.start_date
1742
-
1743
- issue1.reload
1744
- issue1.start_date = '2012-09-17'
1745
- issue1.due_date = '2012-09-18'
1746
- issue1.save!
1747
- issue2.reload
1748
- # Issue 2 must start after Issue 3
1749
- assert_equal Date.parse('2012-10-03'), issue2.start_date
1750
- assert_equal Date.parse('2012-10-05'), issue2.due_date
1751
- end
1752
-
1753
- def test_rescheduling_a_stale_issue_should_not_raise_an_error
1754
- with_settings :non_working_week_days => [] do
1755
- stale = Issue.find(1)
1756
- issue = Issue.find(1)
1757
- issue.subject = "Updated"
1758
- issue.save!
1759
- date = 10.days.from_now.to_date
1760
- assert_nothing_raised do
1761
- stale.reschedule_on!(date)
1762
- end
1763
- assert_equal date, stale.reload.start_date
1764
- end
1765
- end
1766
-
1767
- def test_child_issue_should_consider_parent_soonest_start_on_create
1768
- set_language_if_valid 'en'
1769
- issue1 = Issue.generate!(:start_date => '2012-10-15', :due_date => '2012-10-17')
1770
- issue2 = Issue.generate!(:start_date => '2012-10-18', :due_date => '2012-10-20')
1771
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2,
1772
- :relation_type => IssueRelation::TYPE_PRECEDES)
1773
- issue1.reload
1774
- issue2.reload
1775
- assert_equal Date.parse('2012-10-18'), issue2.start_date
1776
-
1777
- with_settings :date_format => '%m/%d/%Y' do
1778
- child = Issue.new(:parent_issue_id => issue2.id, :start_date => '2012-10-16',
1779
- :project_id => 1, :tracker_id => 1, :status_id => 1, :subject => 'Child', :author_id => 1)
1780
- assert !child.valid?
1781
- assert_include 'Start date cannot be earlier than 10/18/2012 because of preceding issues', child.errors.full_messages
1782
- assert_equal Date.parse('2012-10-18'), child.soonest_start
1783
- child.start_date = '2012-10-18'
1784
- assert child.save
1785
- end
1786
- end
1787
-
1788
- def test_setting_parent_to_a_dependent_issue_should_not_validate
1789
- set_language_if_valid 'en'
1790
- issue1 = Issue.generate!
1791
- issue2 = Issue.generate!
1792
- issue3 = Issue.generate!
1793
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_PRECEDES)
1794
- IssueRelation.create!(:issue_from => issue3, :issue_to => issue1, :relation_type => IssueRelation::TYPE_PRECEDES)
1795
- issue3.reload
1796
- issue3.parent_issue_id = issue2.id
1797
- assert !issue3.valid?
1798
- assert_include 'Parent task is invalid', issue3.errors.full_messages
1799
- end
1800
-
1801
- def test_setting_parent_should_not_allow_circular_dependency
1802
- set_language_if_valid 'en'
1803
- issue1 = Issue.generate!
1804
- issue2 = Issue.generate!
1805
- IssueRelation.create!(:issue_from => issue1, :issue_to => issue2, :relation_type => IssueRelation::TYPE_PRECEDES)
1806
- issue3 = Issue.generate!
1807
- issue2.reload
1808
- issue2.parent_issue_id = issue3.id
1809
- issue2.save!
1810
- issue4 = Issue.generate!
1811
- IssueRelation.create!(:issue_from => issue3, :issue_to => issue4, :relation_type => IssueRelation::TYPE_PRECEDES)
1812
- issue4.reload
1813
- issue4.parent_issue_id = issue1.id
1814
- assert !issue4.valid?
1815
- assert_include 'Parent task is invalid', issue4.errors.full_messages
1816
- end
1817
-
1818
- def test_overdue
1819
- assert Issue.new(:due_date => 1.day.ago.to_date).overdue?
1820
- assert !Issue.new(:due_date => Date.today).overdue?
1821
- assert !Issue.new(:due_date => 1.day.from_now.to_date).overdue?
1822
- assert !Issue.new(:due_date => nil).overdue?
1823
- assert !Issue.new(:due_date => 1.day.ago.to_date,
1824
- :status => IssueStatus.where(:is_closed => true).first
1825
- ).overdue?
1826
- end
1827
-
1828
- test "#behind_schedule? should be false if the issue has no start_date" do
1829
- assert !Issue.new(:start_date => nil,
1830
- :due_date => 1.day.from_now.to_date,
1831
- :done_ratio => 0).behind_schedule?
1832
- end
1833
-
1834
- test "#behind_schedule? should be false if the issue has no end_date" do
1835
- assert !Issue.new(:start_date => 1.day.from_now.to_date,
1836
- :due_date => nil,
1837
- :done_ratio => 0).behind_schedule?
1838
- end
1839
-
1840
- test "#behind_schedule? should be false if the issue has more done than it's calendar time" do
1841
- assert !Issue.new(:start_date => 50.days.ago.to_date,
1842
- :due_date => 50.days.from_now.to_date,
1843
- :done_ratio => 90).behind_schedule?
1844
- end
1845
-
1846
- test "#behind_schedule? should be true if the issue hasn't been started at all" do
1847
- assert Issue.new(:start_date => 1.day.ago.to_date,
1848
- :due_date => 1.day.from_now.to_date,
1849
- :done_ratio => 0).behind_schedule?
1850
- end
1851
-
1852
- test "#behind_schedule? should be true if the issue has used more calendar time than it's done ratio" do
1853
- assert Issue.new(:start_date => 100.days.ago.to_date,
1854
- :due_date => Date.today,
1855
- :done_ratio => 90).behind_schedule?
1856
- end
1857
-
1858
- test "#assignable_users should be Users" do
1859
- assert_kind_of User, Issue.find(1).assignable_users.first
1860
- end
1861
-
1862
- test "#assignable_users should include the issue author" do
1863
- non_project_member = User.generate!
1864
- issue = Issue.generate!(:author => non_project_member)
1865
-
1866
- assert issue.assignable_users.include?(non_project_member)
1867
- end
1868
-
1869
- test "#assignable_users should include the current assignee" do
1870
- user = User.generate!
1871
- issue = Issue.generate!(:assigned_to => user)
1872
- user.lock!
1873
-
1874
- assert Issue.find(issue.id).assignable_users.include?(user)
1875
- end
1876
-
1877
- test "#assignable_users should not show the issue author twice" do
1878
- assignable_user_ids = Issue.find(1).assignable_users.collect(&:id)
1879
- assert_equal 2, assignable_user_ids.length
1880
-
1881
- assignable_user_ids.each do |user_id|
1882
- assert_equal 1, assignable_user_ids.select {|i| i == user_id}.length,
1883
- "User #{user_id} appears more or less than once"
1884
- end
1885
- end
1886
-
1887
- test "#assignable_users with issue_group_assignment should include groups" do
1888
- issue = Issue.new(:project => Project.find(2))
1889
-
1890
- with_settings :issue_group_assignment => '1' do
1891
- assert_equal %w(Group User), issue.assignable_users.map {|a| a.class.name}.uniq.sort
1892
- assert issue.assignable_users.include?(Group.find(11))
1893
- end
1894
- end
1895
-
1896
- test "#assignable_users without issue_group_assignment should not include groups" do
1897
- issue = Issue.new(:project => Project.find(2))
1898
-
1899
- with_settings :issue_group_assignment => '0' do
1900
- assert_equal %w(User), issue.assignable_users.map {|a| a.class.name}.uniq.sort
1901
- assert !issue.assignable_users.include?(Group.find(11))
1902
- end
1903
- end
1904
-
1905
- def test_assignable_users_should_not_include_builtin_groups
1906
- Member.create!(:project_id => 1, :principal => Group.non_member, :role_ids => [1])
1907
- Member.create!(:project_id => 1, :principal => Group.anonymous, :role_ids => [1])
1908
- issue = Issue.new(:project => Project.find(1))
1909
-
1910
- with_settings :issue_group_assignment => '1' do
1911
- assert_nil issue.assignable_users.detect {|u| u.is_a?(GroupBuiltin)}
1912
- end
1913
- end
1914
-
1915
- def test_create_should_send_email_notification
1916
- ActionMailer::Base.deliveries.clear
1917
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
1918
- :author_id => 3, :status_id => 1,
1919
- :priority => IssuePriority.all.first,
1920
- :subject => 'test_create', :estimated_hours => '1:30')
1921
- with_settings :notified_events => %w(issue_added) do
1922
- assert issue.save
1923
- assert_equal 1, ActionMailer::Base.deliveries.size
1924
- end
1925
- end
1926
-
1927
- def test_create_should_send_one_email_notification_with_both_settings
1928
- ActionMailer::Base.deliveries.clear
1929
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
1930
- :author_id => 3, :status_id => 1,
1931
- :priority => IssuePriority.all.first,
1932
- :subject => 'test_create', :estimated_hours => '1:30')
1933
- with_settings :notified_events => %w(issue_added issue_updated) do
1934
- assert issue.save
1935
- assert_equal 1, ActionMailer::Base.deliveries.size
1936
- end
1937
- end
1938
-
1939
- def test_create_should_not_send_email_notification_with_no_setting
1940
- ActionMailer::Base.deliveries.clear
1941
- issue = Issue.new(:project_id => 1, :tracker_id => 1,
1942
- :author_id => 3, :status_id => 1,
1943
- :priority => IssuePriority.all.first,
1944
- :subject => 'test_create', :estimated_hours => '1:30')
1945
- with_settings :notified_events => [] do
1946
- assert issue.save
1947
- assert_equal 0, ActionMailer::Base.deliveries.size
1948
- end
1949
- end
1950
-
1951
- def test_update_should_notify_previous_assignee
1952
- ActionMailer::Base.deliveries.clear
1953
- user = User.find(3)
1954
- user.members.update_all ["mail_notification = ?", false]
1955
- user.update_attribute :mail_notification, 'only_assigned'
1956
-
1957
- with_settings :notified_events => %w(issue_updated) do
1958
- issue = Issue.find(2)
1959
- issue.init_journal User.find(1)
1960
- issue.assigned_to = nil
1961
- issue.save!
1962
- assert_include user.mail, ActionMailer::Base.deliveries.last.bcc
1963
- end
1964
- end
1965
-
1966
- def test_stale_issue_should_not_send_email_notification
1967
- ActionMailer::Base.deliveries.clear
1968
- issue = Issue.find(1)
1969
- stale = Issue.find(1)
1970
-
1971
- issue.init_journal(User.find(1))
1972
- issue.subject = 'Subjet update'
1973
- with_settings :notified_events => %w(issue_updated) do
1974
- assert issue.save
1975
- assert_equal 1, ActionMailer::Base.deliveries.size
1976
- ActionMailer::Base.deliveries.clear
1977
-
1978
- stale.init_journal(User.find(1))
1979
- stale.subject = 'Another subjet update'
1980
- assert_raise ActiveRecord::StaleObjectError do
1981
- stale.save
1982
- end
1983
- assert ActionMailer::Base.deliveries.empty?
1984
- end
1985
- end
1986
-
1987
- def test_journalized_description
1988
- IssueCustomField.delete_all
1989
-
1990
- i = Issue.first
1991
- old_description = i.description
1992
- new_description = "This is the new description"
1993
-
1994
- i.init_journal(User.find(2))
1995
- i.description = new_description
1996
- assert_difference 'Journal.count', 1 do
1997
- assert_difference 'JournalDetail.count', 1 do
1998
- i.save!
1999
- end
2000
- end
2001
-
2002
- detail = JournalDetail.order('id DESC').first
2003
- assert_equal i, detail.journal.journalized
2004
- assert_equal 'attr', detail.property
2005
- assert_equal 'description', detail.prop_key
2006
- assert_equal old_description, detail.old_value
2007
- assert_equal new_description, detail.value
2008
- end
2009
-
2010
- def test_blank_descriptions_should_not_be_journalized
2011
- IssueCustomField.delete_all
2012
- Issue.where(:id => 1).update_all("description = NULL")
2013
-
2014
- i = Issue.find(1)
2015
- i.init_journal(User.find(2))
2016
- i.subject = "blank description"
2017
- i.description = "\r\n"
2018
-
2019
- assert_difference 'Journal.count', 1 do
2020
- assert_difference 'JournalDetail.count', 1 do
2021
- i.save!
2022
- end
2023
- end
2024
- end
2025
-
2026
- def test_journalized_multi_custom_field
2027
- field = IssueCustomField.create!(:name => 'filter', :field_format => 'list',
2028
- :is_filter => true, :is_for_all => true,
2029
- :tracker_ids => [1],
2030
- :possible_values => ['value1', 'value2', 'value3'],
2031
- :multiple => true)
2032
-
2033
- issue = Issue.create!(:project_id => 1, :tracker_id => 1,
2034
- :subject => 'Test', :author_id => 1)
2035
-
2036
- assert_difference 'Journal.count' do
2037
- assert_difference 'JournalDetail.count' do
2038
- issue.init_journal(User.first)
2039
- issue.custom_field_values = {field.id => ['value1']}
2040
- issue.save!
2041
- end
2042
- assert_difference 'JournalDetail.count' do
2043
- issue.init_journal(User.first)
2044
- issue.custom_field_values = {field.id => ['value1', 'value2']}
2045
- issue.save!
2046
- end
2047
- assert_difference 'JournalDetail.count', 2 do
2048
- issue.init_journal(User.first)
2049
- issue.custom_field_values = {field.id => ['value3', 'value2']}
2050
- issue.save!
2051
- end
2052
- assert_difference 'JournalDetail.count', 2 do
2053
- issue.init_journal(User.first)
2054
- issue.custom_field_values = {field.id => nil}
2055
- issue.save!
2056
- end
2057
- end
2058
- end
2059
-
2060
- def test_description_eol_should_be_normalized
2061
- i = Issue.new(:description => "CR \r LF \n CRLF \r\n")
2062
- assert_equal "CR \r\n LF \r\n CRLF \r\n", i.description
2063
- end
2064
-
2065
- def test_saving_twice_should_not_duplicate_journal_details
2066
- i = Issue.first
2067
- i.init_journal(User.find(2), 'Some notes')
2068
- # initial changes
2069
- i.subject = 'New subject'
2070
- i.done_ratio = i.done_ratio + 10
2071
- assert_difference 'Journal.count' do
2072
- assert i.save
2073
- end
2074
- # 1 more change
2075
- i.priority = IssuePriority.where("id <> ?", i.priority_id).first
2076
- assert_no_difference 'Journal.count' do
2077
- assert_difference 'JournalDetail.count', 1 do
2078
- i.save
2079
- end
2080
- end
2081
- # no more change
2082
- assert_no_difference 'Journal.count' do
2083
- assert_no_difference 'JournalDetail.count' do
2084
- i.save
2085
- end
2086
- end
2087
- end
2088
-
2089
- def test_all_dependent_issues
2090
- IssueRelation.delete_all
2091
- assert IssueRelation.create!(:issue_from => Issue.find(1),
2092
- :issue_to => Issue.find(2),
2093
- :relation_type => IssueRelation::TYPE_PRECEDES)
2094
- assert IssueRelation.create!(:issue_from => Issue.find(2),
2095
- :issue_to => Issue.find(3),
2096
- :relation_type => IssueRelation::TYPE_PRECEDES)
2097
- assert IssueRelation.create!(:issue_from => Issue.find(3),
2098
- :issue_to => Issue.find(8),
2099
- :relation_type => IssueRelation::TYPE_PRECEDES)
2100
-
2101
- assert_equal [2, 3, 8], Issue.find(1).all_dependent_issues.collect(&:id).sort
2102
- end
2103
-
2104
- def test_all_dependent_issues_with_subtask
2105
- IssueRelation.delete_all
2106
-
2107
- project = Project.generate!(:name => "testproject")
2108
-
2109
- parentIssue = Issue.generate!(:project => project)
2110
- childIssue1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue.id)
2111
- childIssue2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue.id)
2112
-
2113
- assert_equal [childIssue1.id, childIssue2.id].sort, parentIssue.all_dependent_issues.collect(&:id).uniq.sort
2114
- end
2115
-
2116
- def test_all_dependent_issues_does_not_include_self
2117
- IssueRelation.delete_all
2118
-
2119
- project = Project.generate!(:name => "testproject")
2120
-
2121
- parentIssue = Issue.generate!(:project => project)
2122
- childIssue = Issue.generate!(:project => project, :parent_issue_id => parentIssue.id)
2123
-
2124
- assert_equal [childIssue.id], parentIssue.all_dependent_issues.collect(&:id)
2125
- end
2126
-
2127
- def test_all_dependent_issues_with_parenttask_and_sibling
2128
- IssueRelation.delete_all
2129
-
2130
- project = Project.generate!(:name => "testproject")
2131
-
2132
- parentIssue = Issue.generate!(:project => project)
2133
- childIssue1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue.id)
2134
- childIssue2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue.id)
2135
-
2136
- assert_equal [parentIssue.id].sort, childIssue1.all_dependent_issues.collect(&:id)
2137
- end
2138
-
2139
- def test_all_dependent_issues_with_relation_to_leaf_in_other_tree
2140
- IssueRelation.delete_all
2141
-
2142
- project = Project.generate!(:name => "testproject")
2143
-
2144
- parentIssue1 = Issue.generate!(:project => project)
2145
- childIssue1_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2146
- childIssue1_2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2147
-
2148
- parentIssue2 = Issue.generate!(:project => project)
2149
- childIssue2_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2150
- childIssue2_2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2151
-
2152
-
2153
- assert IssueRelation.create(:issue_from => parentIssue1,
2154
- :issue_to => childIssue2_2,
2155
- :relation_type => IssueRelation::TYPE_BLOCKS)
2156
-
2157
- assert_equal [childIssue1_1.id, childIssue1_2.id, parentIssue2.id, childIssue2_2.id].sort,
2158
- parentIssue1.all_dependent_issues.collect(&:id).uniq.sort
2159
- end
2160
-
2161
- def test_all_dependent_issues_with_relation_to_parent_in_other_tree
2162
- IssueRelation.delete_all
2163
-
2164
- project = Project.generate!(:name => "testproject")
2165
-
2166
- parentIssue1 = Issue.generate!(:project => project)
2167
- childIssue1_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2168
- childIssue1_2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2169
-
2170
- parentIssue2 = Issue.generate!(:project => project)
2171
- childIssue2_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2172
- childIssue2_2 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2173
-
2174
-
2175
- assert IssueRelation.create(:issue_from => parentIssue1,
2176
- :issue_to => parentIssue2,
2177
- :relation_type => IssueRelation::TYPE_BLOCKS)
2178
-
2179
- assert_equal [childIssue1_1.id, childIssue1_2.id, parentIssue2.id, childIssue2_1.id, childIssue2_2.id].sort,
2180
- parentIssue1.all_dependent_issues.collect(&:id).uniq.sort
2181
- end
2182
-
2183
- def test_all_dependent_issues_with_transitive_relation
2184
- IssueRelation.delete_all
2185
-
2186
- project = Project.generate!(:name => "testproject")
2187
-
2188
- parentIssue1 = Issue.generate!(:project => project)
2189
- childIssue1_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2190
-
2191
- parentIssue2 = Issue.generate!(:project => project)
2192
- childIssue2_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2193
-
2194
- independentIssue = Issue.generate!(:project => project)
2195
-
2196
- assert IssueRelation.create(:issue_from => parentIssue1,
2197
- :issue_to => childIssue2_1,
2198
- :relation_type => IssueRelation::TYPE_RELATES)
2199
-
2200
- assert IssueRelation.create(:issue_from => childIssue2_1,
2201
- :issue_to => independentIssue,
2202
- :relation_type => IssueRelation::TYPE_RELATES)
2203
-
2204
- assert_equal [childIssue1_1.id, parentIssue2.id, childIssue2_1.id, independentIssue.id].sort,
2205
- parentIssue1.all_dependent_issues.collect(&:id).uniq.sort
2206
- end
2207
-
2208
- def test_all_dependent_issues_with_transitive_relation2
2209
- IssueRelation.delete_all
2210
-
2211
- project = Project.generate!(:name => "testproject")
2212
-
2213
- parentIssue1 = Issue.generate!(:project => project)
2214
- childIssue1_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue1.id)
2215
-
2216
- parentIssue2 = Issue.generate!(:project => project)
2217
- childIssue2_1 = Issue.generate!(:project => project, :parent_issue_id => parentIssue2.id)
2218
-
2219
- independentIssue = Issue.generate!(:project => project)
2220
-
2221
- assert IssueRelation.create(:issue_from => parentIssue1,
2222
- :issue_to => independentIssue,
2223
- :relation_type => IssueRelation::TYPE_RELATES)
2224
-
2225
- assert IssueRelation.create(:issue_from => independentIssue,
2226
- :issue_to => childIssue2_1,
2227
- :relation_type => IssueRelation::TYPE_RELATES)
2228
-
2229
- assert_equal [childIssue1_1.id, parentIssue2.id, childIssue2_1.id, independentIssue.id].sort,
2230
- parentIssue1.all_dependent_issues.collect(&:id).uniq.sort
2231
-
2232
- end
2233
-
2234
- def test_all_dependent_issues_with_persistent_circular_dependency
2235
- IssueRelation.delete_all
2236
- assert IssueRelation.create!(:issue_from => Issue.find(1),
2237
- :issue_to => Issue.find(2),
2238
- :relation_type => IssueRelation::TYPE_PRECEDES)
2239
- assert IssueRelation.create!(:issue_from => Issue.find(2),
2240
- :issue_to => Issue.find(3),
2241
- :relation_type => IssueRelation::TYPE_PRECEDES)
2242
-
2243
- r = IssueRelation.create!(:issue_from => Issue.find(3),
2244
- :issue_to => Issue.find(7),
2245
- :relation_type => IssueRelation::TYPE_PRECEDES)
2246
- IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 1")
2247
-
2248
- assert_equal [2, 3], Issue.find(1).all_dependent_issues.collect(&:id).sort
2249
- end
2250
-
2251
- def test_all_dependent_issues_with_persistent_multiple_circular_dependencies
2252
- IssueRelation.delete_all
2253
- assert IssueRelation.create!(:issue_from => Issue.find(1),
2254
- :issue_to => Issue.find(2),
2255
- :relation_type => IssueRelation::TYPE_RELATES)
2256
- assert IssueRelation.create!(:issue_from => Issue.find(2),
2257
- :issue_to => Issue.find(3),
2258
- :relation_type => IssueRelation::TYPE_RELATES)
2259
- assert IssueRelation.create!(:issue_from => Issue.find(3),
2260
- :issue_to => Issue.find(8),
2261
- :relation_type => IssueRelation::TYPE_RELATES)
2262
-
2263
- r = IssueRelation.create!(:issue_from => Issue.find(8),
2264
- :issue_to => Issue.find(7),
2265
- :relation_type => IssueRelation::TYPE_RELATES)
2266
- IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 2")
2267
-
2268
- r = IssueRelation.create!(:issue_from => Issue.find(3),
2269
- :issue_to => Issue.find(7),
2270
- :relation_type => IssueRelation::TYPE_RELATES)
2271
- IssueRelation.where(["id = ?", r.id]).update_all("issue_to_id = 1")
2272
-
2273
- assert_equal [2, 3, 8], Issue.find(1).all_dependent_issues.collect(&:id).sort
2274
- end
2275
-
2276
- test "#done_ratio should use the issue_status according to Setting.issue_done_ratio" do
2277
- @issue = Issue.find(1)
2278
- @issue_status = IssueStatus.find(1)
2279
- @issue_status.update_attribute(:default_done_ratio, 50)
2280
- @issue2 = Issue.find(2)
2281
- @issue_status2 = IssueStatus.find(2)
2282
- @issue_status2.update_attribute(:default_done_ratio, 0)
2283
-
2284
- with_settings :issue_done_ratio => 'issue_field' do
2285
- assert_equal 0, @issue.done_ratio
2286
- assert_equal 30, @issue2.done_ratio
2287
- end
2288
-
2289
- with_settings :issue_done_ratio => 'issue_status' do
2290
- assert_equal 50, @issue.done_ratio
2291
- assert_equal 0, @issue2.done_ratio
2292
- end
2293
- end
2294
-
2295
- test "#update_done_ratio_from_issue_status should update done_ratio according to Setting.issue_done_ratio" do
2296
- @issue = Issue.find(1)
2297
- @issue_status = IssueStatus.find(1)
2298
- @issue_status.update_attribute(:default_done_ratio, 50)
2299
- @issue2 = Issue.find(2)
2300
- @issue_status2 = IssueStatus.find(2)
2301
- @issue_status2.update_attribute(:default_done_ratio, 0)
2302
-
2303
- with_settings :issue_done_ratio => 'issue_field' do
2304
- @issue.update_done_ratio_from_issue_status
2305
- @issue2.update_done_ratio_from_issue_status
2306
-
2307
- assert_equal 0, @issue.read_attribute(:done_ratio)
2308
- assert_equal 30, @issue2.read_attribute(:done_ratio)
2309
- end
2310
-
2311
- with_settings :issue_done_ratio => 'issue_status' do
2312
- @issue.update_done_ratio_from_issue_status
2313
- @issue2.update_done_ratio_from_issue_status
2314
-
2315
- assert_equal 50, @issue.read_attribute(:done_ratio)
2316
- assert_equal 0, @issue2.read_attribute(:done_ratio)
2317
- end
2318
- end
2319
-
2320
- test "#by_tracker" do
2321
- User.current = User.anonymous
2322
- groups = Issue.by_tracker(Project.find(1))
2323
- assert_equal 3, groups.count
2324
- assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2325
- end
2326
-
2327
- test "#by_version" do
2328
- User.current = User.anonymous
2329
- groups = Issue.by_version(Project.find(1))
2330
- assert_equal 3, groups.count
2331
- assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2332
- end
2333
-
2334
- test "#by_priority" do
2335
- User.current = User.anonymous
2336
- groups = Issue.by_priority(Project.find(1))
2337
- assert_equal 4, groups.count
2338
- assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2339
- end
2340
-
2341
- test "#by_category" do
2342
- User.current = User.anonymous
2343
- groups = Issue.by_category(Project.find(1))
2344
- assert_equal 2, groups.count
2345
- assert_equal 3, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2346
- end
2347
-
2348
- test "#by_assigned_to" do
2349
- User.current = User.anonymous
2350
- groups = Issue.by_assigned_to(Project.find(1))
2351
- assert_equal 2, groups.count
2352
- assert_equal 2, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2353
- end
2354
-
2355
- test "#by_author" do
2356
- User.current = User.anonymous
2357
- groups = Issue.by_author(Project.find(1))
2358
- assert_equal 4, groups.count
2359
- assert_equal 7, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2360
- end
2361
-
2362
- test "#by_subproject" do
2363
- User.current = User.anonymous
2364
- groups = Issue.by_subproject(Project.find(1))
2365
- # Private descendant not visible
2366
- assert_equal 1, groups.count
2367
- assert_equal 2, groups.inject(0) {|sum, group| sum + group['total'].to_i}
2368
- end
2369
-
2370
- def test_recently_updated_scope
2371
- #should return the last updated issue
2372
- assert_equal Issue.reorder("updated_on DESC").first, Issue.recently_updated.limit(1).first
2373
- end
2374
-
2375
- def test_on_active_projects_scope
2376
- assert Project.find(2).archive
2377
-
2378
- before = Issue.on_active_project.length
2379
- # test inclusion to results
2380
- issue = Issue.generate!(:tracker => Project.find(2).trackers.first)
2381
- assert_equal before + 1, Issue.on_active_project.length
2382
-
2383
- # Move to an archived project
2384
- issue.project = Project.find(2)
2385
- assert issue.save
2386
- assert_equal before, Issue.on_active_project.length
2387
- end
2388
-
2389
- test "Issue#recipients should include project recipients" do
2390
- issue = Issue.generate!
2391
- assert issue.project.recipients.present?
2392
- issue.project.recipients.each do |project_recipient|
2393
- assert issue.recipients.include?(project_recipient)
2394
- end
2395
- end
2396
-
2397
- test "Issue#recipients should include the author if the author is active" do
2398
- issue = Issue.generate!(:author => User.generate!)
2399
- assert issue.author, "No author set for Issue"
2400
- assert issue.recipients.include?(issue.author.mail)
2401
- end
2402
-
2403
- test "Issue#recipients should include the assigned to user if the assigned to user is active" do
2404
- issue = Issue.generate!(:assigned_to => User.generate!)
2405
- assert issue.assigned_to, "No assigned_to set for Issue"
2406
- assert issue.recipients.include?(issue.assigned_to.mail)
2407
- end
2408
-
2409
- test "Issue#recipients should not include users who opt out of all email" do
2410
- issue = Issue.generate!(:author => User.generate!)
2411
- issue.author.update_attribute(:mail_notification, :none)
2412
- assert !issue.recipients.include?(issue.author.mail)
2413
- end
2414
-
2415
- test "Issue#recipients should not include the issue author if they are only notified of assigned issues" do
2416
- issue = Issue.generate!(:author => User.generate!)
2417
- issue.author.update_attribute(:mail_notification, :only_assigned)
2418
- assert !issue.recipients.include?(issue.author.mail)
2419
- end
2420
-
2421
- test "Issue#recipients should not include the assigned user if they are only notified of owned issues" do
2422
- issue = Issue.generate!(:assigned_to => User.generate!)
2423
- issue.assigned_to.update_attribute(:mail_notification, :only_owner)
2424
- assert !issue.recipients.include?(issue.assigned_to.mail)
2425
- end
2426
-
2427
- def test_last_journal_id_with_journals_should_return_the_journal_id
2428
- assert_equal 2, Issue.find(1).last_journal_id
2429
- end
2430
-
2431
- def test_last_journal_id_without_journals_should_return_nil
2432
- assert_nil Issue.find(3).last_journal_id
2433
- end
2434
-
2435
- def test_journals_after_should_return_journals_with_greater_id
2436
- assert_equal [Journal.find(2)], Issue.find(1).journals_after('1')
2437
- assert_equal [], Issue.find(1).journals_after('2')
2438
- end
2439
-
2440
- def test_journals_after_with_blank_arg_should_return_all_journals
2441
- assert_equal [Journal.find(1), Journal.find(2)], Issue.find(1).journals_after('')
2442
- end
2443
-
2444
- def test_css_classes_should_include_tracker
2445
- issue = Issue.new(:tracker => Tracker.find(2))
2446
- classes = issue.css_classes.split(' ')
2447
- assert_include 'tracker-2', classes
2448
- end
2449
-
2450
- def test_css_classes_should_include_priority
2451
- issue = Issue.new(:priority => IssuePriority.find(8))
2452
- classes = issue.css_classes.split(' ')
2453
- assert_include 'priority-8', classes
2454
- assert_include 'priority-highest', classes
2455
- end
2456
-
2457
- def test_css_classes_should_include_user_and_group_assignment
2458
- project = Project.first
2459
- user = User.generate!
2460
- group = Group.generate!
2461
- Member.create!(:principal => group, :project => project, :role_ids => [1, 2])
2462
- group.users << user
2463
- assert user.member_of?(project)
2464
- issue1 = Issue.generate(:assigned_to_id => group.id)
2465
- assert_include 'assigned-to-my-group', issue1.css_classes(user)
2466
- assert_not_include 'assigned-to-me', issue1.css_classes(user)
2467
- issue2 = Issue.generate(:assigned_to_id => user.id)
2468
- assert_not_include 'assigned-to-my-group', issue2.css_classes(user)
2469
- assert_include 'assigned-to-me', issue2.css_classes(user)
2470
- end
2471
-
2472
- def test_save_attachments_with_hash_should_save_attachments_in_keys_order
2473
- set_tmp_attachments_directory
2474
- issue = Issue.generate!
2475
- issue.save_attachments({
2476
- 'p0' => {'file' => mock_file_with_options(:original_filename => 'upload')},
2477
- '3' => {'file' => mock_file_with_options(:original_filename => 'bar')},
2478
- '1' => {'file' => mock_file_with_options(:original_filename => 'foo')}
2479
- })
2480
- issue.attach_saved_attachments
2481
-
2482
- assert_equal 3, issue.reload.attachments.count
2483
- assert_equal %w(upload foo bar), issue.attachments.map(&:filename)
2484
- end
2485
-
2486
- def test_closed_on_should_be_nil_when_creating_an_open_issue
2487
- issue = Issue.generate!(:status_id => 1).reload
2488
- assert !issue.closed?
2489
- assert_nil issue.closed_on
2490
- end
2491
-
2492
- def test_closed_on_should_be_set_when_creating_a_closed_issue
2493
- issue = Issue.generate!(:status_id => 5).reload
2494
- assert issue.closed?
2495
- assert_not_nil issue.closed_on
2496
- assert_equal issue.updated_on, issue.closed_on
2497
- assert_equal issue.created_on, issue.closed_on
2498
- end
2499
-
2500
- def test_closed_on_should_be_nil_when_updating_an_open_issue
2501
- issue = Issue.find(1)
2502
- issue.subject = 'Not closed yet'
2503
- issue.save!
2504
- issue.reload
2505
- assert_nil issue.closed_on
2506
- end
2507
-
2508
- def test_closed_on_should_be_set_when_closing_an_open_issue
2509
- issue = Issue.find(1)
2510
- issue.subject = 'Now closed'
2511
- issue.status_id = 5
2512
- issue.save!
2513
- issue.reload
2514
- assert_not_nil issue.closed_on
2515
- assert_equal issue.updated_on, issue.closed_on
2516
- end
2517
-
2518
- def test_closed_on_should_not_be_updated_when_updating_a_closed_issue
2519
- issue = Issue.open(false).first
2520
- was_closed_on = issue.closed_on
2521
- assert_not_nil was_closed_on
2522
- issue.subject = 'Updating a closed issue'
2523
- issue.save!
2524
- issue.reload
2525
- assert_equal was_closed_on, issue.closed_on
2526
- end
2527
-
2528
- def test_closed_on_should_be_preserved_when_reopening_a_closed_issue
2529
- issue = Issue.open(false).first
2530
- was_closed_on = issue.closed_on
2531
- assert_not_nil was_closed_on
2532
- issue.subject = 'Reopening a closed issue'
2533
- issue.status_id = 1
2534
- issue.save!
2535
- issue.reload
2536
- assert !issue.closed?
2537
- assert_equal was_closed_on, issue.closed_on
2538
- end
2539
-
2540
- def test_status_was_should_return_nil_for_new_issue
2541
- issue = Issue.new
2542
- assert_nil issue.status_was
2543
- end
2544
-
2545
- def test_status_was_should_return_status_before_change
2546
- issue = Issue.find(1)
2547
- issue.status = IssueStatus.find(2)
2548
- assert_equal IssueStatus.find(1), issue.status_was
2549
- end
2550
-
2551
- def test_status_was_should_return_status_before_change_with_status_id
2552
- issue = Issue.find(1)
2553
- assert_equal IssueStatus.find(1), issue.status
2554
- issue.status_id = 2
2555
- assert_equal IssueStatus.find(1), issue.status_was
2556
- end
2557
-
2558
- def test_status_was_should_be_reset_on_save
2559
- issue = Issue.find(1)
2560
- issue.status = IssueStatus.find(2)
2561
- assert_equal IssueStatus.find(1), issue.status_was
2562
- assert issue.save!
2563
- assert_equal IssueStatus.find(2), issue.status_was
2564
- end
2565
-
2566
- def test_closing_should_return_true_when_closing_an_issue
2567
- issue = Issue.find(1)
2568
- issue.status = IssueStatus.find(2)
2569
- assert_equal false, issue.closing?
2570
- issue.status = IssueStatus.find(5)
2571
- assert_equal true, issue.closing?
2572
- end
2573
-
2574
- def test_closing_should_return_true_when_closing_an_issue_with_status_id
2575
- issue = Issue.find(1)
2576
- issue.status_id = 2
2577
- assert_equal false, issue.closing?
2578
- issue.status_id = 5
2579
- assert_equal true, issue.closing?
2580
- end
2581
-
2582
- def test_closing_should_return_true_for_new_closed_issue
2583
- issue = Issue.new
2584
- assert_equal false, issue.closing?
2585
- issue.status = IssueStatus.find(5)
2586
- assert_equal true, issue.closing?
2587
- end
2588
-
2589
- def test_closing_should_return_true_for_new_closed_issue_with_status_id
2590
- issue = Issue.new
2591
- assert_equal false, issue.closing?
2592
- issue.status_id = 5
2593
- assert_equal true, issue.closing?
2594
- end
2595
-
2596
- def test_closing_should_be_reset_after_save
2597
- issue = Issue.find(1)
2598
- issue.status_id = 5
2599
- assert_equal true, issue.closing?
2600
- issue.save!
2601
- assert_equal false, issue.closing?
2602
- end
2603
-
2604
- def test_reopening_should_return_true_when_reopening_an_issue
2605
- issue = Issue.find(8)
2606
- issue.status = IssueStatus.find(6)
2607
- assert_equal false, issue.reopening?
2608
- issue.status = IssueStatus.find(2)
2609
- assert_equal true, issue.reopening?
2610
- end
2611
-
2612
- def test_reopening_should_return_true_when_reopening_an_issue_with_status_id
2613
- issue = Issue.find(8)
2614
- issue.status_id = 6
2615
- assert_equal false, issue.reopening?
2616
- issue.status_id = 2
2617
- assert_equal true, issue.reopening?
2618
- end
2619
-
2620
- def test_reopening_should_return_false_for_new_open_issue
2621
- issue = Issue.new
2622
- issue.status = IssueStatus.find(1)
2623
- assert_equal false, issue.reopening?
2624
- end
2625
-
2626
- def test_reopening_should_be_reset_after_save
2627
- issue = Issue.find(8)
2628
- issue.status_id = 2
2629
- assert_equal true, issue.reopening?
2630
- issue.save!
2631
- assert_equal false, issue.reopening?
2632
- end
2633
-
2634
- def test_default_status_without_tracker_should_be_nil
2635
- issue = Issue.new
2636
- assert_nil issue.tracker
2637
- assert_nil issue.default_status
2638
- end
2639
-
2640
- def test_default_status_should_be_tracker_default_status
2641
- issue = Issue.new(:tracker_id => 1)
2642
- assert_not_nil issue.status
2643
- assert_equal issue.tracker.default_status, issue.default_status
2644
- end
2645
-
2646
- def test_initializing_with_tracker_should_set_default_status
2647
- issue = Issue.new(:tracker => Tracker.find(1))
2648
- assert_not_nil issue.status
2649
- assert_equal issue.default_status, issue.status
2650
- end
2651
-
2652
- def test_initializing_with_tracker_id_should_set_default_status
2653
- issue = Issue.new(:tracker_id => 1)
2654
- assert_not_nil issue.status
2655
- assert_equal issue.default_status, issue.status
2656
- end
2657
-
2658
- def test_setting_tracker_should_set_default_status
2659
- issue = Issue.new
2660
- issue.tracker = Tracker.find(1)
2661
- assert_not_nil issue.status
2662
- assert_equal issue.default_status, issue.status
2663
- end
2664
-
2665
- def test_changing_tracker_should_set_default_status_if_status_was_default
2666
- WorkflowTransition.delete_all
2667
- WorkflowTransition.create! :role_id => 1, :tracker_id => 2, :old_status_id => 2, :new_status_id => 1
2668
- Tracker.find(2).update! :default_status_id => 2
2669
-
2670
- issue = Issue.new(:tracker_id => 1, :status_id => 1)
2671
- assert_equal IssueStatus.find(1), issue.status
2672
- issue.tracker = Tracker.find(2)
2673
- assert_equal IssueStatus.find(2), issue.status
2674
- end
2675
-
2676
- def test_changing_tracker_should_set_default_status_if_status_is_not_used_by_tracker
2677
- WorkflowTransition.delete_all
2678
- Tracker.find(2).update! :default_status_id => 2
2679
-
2680
- issue = Issue.new(:tracker_id => 1, :status_id => 3)
2681
- assert_equal IssueStatus.find(3), issue.status
2682
- issue.tracker = Tracker.find(2)
2683
- assert_equal IssueStatus.find(2), issue.status
2684
- end
2685
-
2686
- def test_changing_tracker_should_keep_status_if_status_was_not_default_and_is_used_by_tracker
2687
- WorkflowTransition.delete_all
2688
- WorkflowTransition.create! :role_id => 1, :tracker_id => 2, :old_status_id => 2, :new_status_id => 3
2689
- Tracker.find(2).update! :default_status_id => 2
2690
-
2691
- issue = Issue.new(:tracker_id => 1, :status_id => 3)
2692
- assert_equal IssueStatus.find(3), issue.status
2693
- issue.tracker = Tracker.find(2)
2694
- assert_equal IssueStatus.find(3), issue.status
2695
- end
2696
-
2697
- def test_assigned_to_was_with_a_group
2698
- group = Group.find(10)
2699
-
2700
- issue = Issue.generate!(:assigned_to => group)
2701
- issue.reload.assigned_to = nil
2702
- assert_equal group, issue.assigned_to_was
2703
- end
2704
- end