redmine_extensions 0.1.11 → 0.1.13

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