backlog 0.37.2 → 0.41.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (568) hide show
  1. checksums.yaml +7 -0
  2. data/History.txt +128 -0
  3. data/README.txt +4 -2
  4. data/bin/backlog +1 -1
  5. data/lib/array_helper.rb +4 -4
  6. data/{vendor/plugins → lib}/backlog_jira/README +0 -0
  7. data/{vendor/plugins → lib}/backlog_jira/Rakefile +0 -0
  8. data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/backlog_jira_generator.rb +0 -0
  9. data/{vendor/plugins → lib}/backlog_jira/generators/backlog_jira/templates/migration.rb +0 -0
  10. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/history_model_generator.rb +0 -0
  11. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/fixtures.yml +0 -0
  12. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/functional_test.rb +0 -0
  13. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/model.rb +0 -0
  14. data/{vendor/plugins → lib}/backlog_jira/generators/history_model/templates/unit_test.rb +0 -0
  15. data/lib/backlog_jira/init.rb +66 -0
  16. data/{vendor/plugins → lib}/backlog_jira/install.rb +0 -0
  17. data/{vendor/plugins → lib}/backlog_jira/lib/backlog_jira.rb +0 -0
  18. data/{vendor/plugins → lib}/backlog_jira/lib/tasks/backlog_jira_tasks.rake +0 -0
  19. data/{vendor/plugins → lib}/backlog_jira/test/backlog_jira_test.rb +0 -0
  20. data/{vendor/plugins → lib}/backlog_jira/uninstall.rb +0 -0
  21. data/lib/big_decimal_yaml_fix.rb +16 -25
  22. data/lib/tasks/backup.rake +18 -18
  23. data/lib/time_extras.rb +6 -6
  24. data/lib/user_system.rb +41 -38
  25. data/lib/version_from_history.rb +2 -2
  26. metadata +196 -749
  27. data/Capfile +0 -2
  28. data/Gemfile +0 -34
  29. data/Gemfile.lock +0 -139
  30. data/MODIFICATIONS.txt +0 -13
  31. data/Manifest.txt +0 -0
  32. data/README_LOGIN_SUGAR +0 -194
  33. data/Rakefile +0 -73
  34. data/Rakefile~ +0 -73
  35. data/Screenshot.png +0 -0
  36. data/app/controllers/absences_controller.rb +0 -67
  37. data/app/controllers/application_controller.rb +0 -185
  38. data/app/controllers/application_controller.rb.rails2 +0 -186
  39. data/app/controllers/customers_controller.rb +0 -51
  40. data/app/controllers/dashboard_controller.rb +0 -17
  41. data/app/controllers/estimates_controller.rb +0 -49
  42. data/app/controllers/groups_controller.rb +0 -65
  43. data/app/controllers/parties_controller.rb +0 -33
  44. data/app/controllers/periods_controller.rb +0 -242
  45. data/app/controllers/projects_controller.rb +0 -185
  46. data/app/controllers/public_holidays_controller.rb +0 -70
  47. data/app/controllers/search_controller.rb +0 -15
  48. data/app/controllers/task_files_controller.rb +0 -19
  49. data/app/controllers/tasks_controller.rb +0 -305
  50. data/app/controllers/user_controller.rb +0 -251
  51. data/app/controllers/welcome_controller.rb +0 -29
  52. data/app/controllers/work_locks_controller.rb +0 -88
  53. data/app/controllers/works_controller.rb +0 -383
  54. data/app/helpers/absences_helper.rb +0 -2
  55. data/app/helpers/application_helper.rb +0 -119
  56. data/app/helpers/application_helper.rb.rails2 +0 -118
  57. data/app/helpers/customers_helper.rb +0 -2
  58. data/app/helpers/dashboard_helper.rb +0 -2
  59. data/app/helpers/estimates_helper.rb +0 -2
  60. data/app/helpers/groups_helper.rb +0 -2
  61. data/app/helpers/parties_helper.rb +0 -2
  62. data/app/helpers/periods_helper.rb +0 -57
  63. data/app/helpers/projects_helper.rb +0 -74
  64. data/app/helpers/public_holidays_helper.rb +0 -2
  65. data/app/helpers/search_helper.rb +0 -2
  66. data/app/helpers/task_files_helper.rb +0 -2
  67. data/app/helpers/tasks_helper.rb +0 -2
  68. data/app/helpers/user_helper.rb +0 -53
  69. data/app/helpers/welcome_helper.rb +0 -2
  70. data/app/helpers/work_locks_helper.rb +0 -2
  71. data/app/helpers/works_helper.rb +0 -5
  72. data/app/mailers/user_notify.rb +0 -76
  73. data/app/models/absence.rb +0 -27
  74. data/app/models/chart.rb +0 -5
  75. data/app/models/clock.rb +0 -14
  76. data/app/models/configuration.rb +0 -2
  77. data/app/models/customer.rb +0 -2
  78. data/app/models/estimate.rb +0 -17
  79. data/app/models/group.rb +0 -16
  80. data/app/models/party.rb +0 -27
  81. data/app/models/period.rb +0 -251
  82. data/app/models/project.rb +0 -49
  83. data/app/models/public_holiday.rb +0 -13
  84. data/app/models/report_filter.rb +0 -29
  85. data/app/models/search_result.rb +0 -8
  86. data/app/models/sidebar.rb +0 -41
  87. data/app/models/task.rb +0 -425
  88. data/app/models/task_file.rb +0 -7
  89. data/app/models/task_notify.rb +0 -27
  90. data/app/models/user.rb +0 -146
  91. data/app/models/work.rb +0 -191
  92. data/app/models/work_lock.rb +0 -11
  93. data/app/models/work_lock_nagger.rb +0 -60
  94. data/app/models/work_lock_notify.rb +0 -43
  95. data/app/models/works_report_filter.rb +0 -27
  96. data/app/views/absences/_form.rhtml +0 -10
  97. data/app/views/absences/edit.rhtml +0 -9
  98. data/app/views/absences/list.rhtml +0 -25
  99. data/app/views/absences/new.rhtml +0 -8
  100. data/app/views/absences/show.rhtml +0 -8
  101. data/app/views/customers/_form.rhtml +0 -7
  102. data/app/views/customers/_name_list.rhtml +0 -5
  103. data/app/views/customers/edit.rhtml +0 -9
  104. data/app/views/customers/list.rhtml +0 -28
  105. data/app/views/customers/new.rhtml +0 -8
  106. data/app/views/customers/show.rhtml +0 -8
  107. data/app/views/dashboard/show.rhtml +0 -24
  108. data/app/views/display_notice.rjs +0 -1
  109. data/app/views/groups/_form.rhtml +0 -7
  110. data/app/views/groups/edit.rhtml +0 -57
  111. data/app/views/groups/list.rhtml +0 -26
  112. data/app/views/groups/new.rhtml +0 -7
  113. data/app/views/groups/set_member.rjs +0 -1
  114. data/app/views/layouts/_headers.rhtml +0 -24
  115. data/app/views/layouts/_left_top.rhtml +0 -33
  116. data/app/views/layouts/_notice.rhtml +0 -12
  117. data/app/views/layouts/_shortcuts.rhtml +0 -22
  118. data/app/views/layouts/_shortcuts_js.rhtml +0 -19
  119. data/app/views/layouts/mwrt002.html.erb +0 -44
  120. data/app/views/layouts/wide.rhtml +0 -23
  121. data/app/views/periods/_burn_down_chart.rhtml +0 -9
  122. data/app/views/periods/_form.rhtml +0 -74
  123. data/app/views/periods/_link.rhtml +0 -3
  124. data/app/views/periods/_show_active.rhtml +0 -61
  125. data/app/views/periods/_sidebar_block.rhtml +0 -11
  126. data/app/views/periods/_title.rhtml +0 -18
  127. data/app/views/periods/edit.rhtml +0 -10
  128. data/app/views/periods/finish_task.rjs +0 -4
  129. data/app/views/periods/move_task_to_period.rjs +0 -4
  130. data/app/views/periods/new.rhtml +0 -9
  131. data/app/views/periods/order.rjs +0 -0
  132. data/app/views/periods/reopen_task.rjs +0 -6
  133. data/app/views/periods/show.rhtml +0 -56
  134. data/app/views/projects/_buttons.rhtml +0 -4
  135. data/app/views/projects/_form.rhtml +0 -44
  136. data/app/views/projects/_name_list.rhtml +0 -5
  137. data/app/views/projects/edit.rhtml +0 -14
  138. data/app/views/projects/finish_task.rjs +0 -3
  139. data/app/views/projects/list.rhtml +0 -16
  140. data/app/views/projects/move_task_to_period.rjs +0 -3
  141. data/app/views/projects/new.rhtml +0 -11
  142. data/app/views/projects/reopen_task.rjs +0 -3
  143. data/app/views/projects/show.rhtml +0 -39
  144. data/app/views/public_holidays/_form.rhtml +0 -7
  145. data/app/views/public_holidays/edit.rhtml +0 -9
  146. data/app/views/public_holidays/list.rhtml +0 -25
  147. data/app/views/public_holidays/new.rhtml +0 -8
  148. data/app/views/public_holidays/show.rhtml +0 -8
  149. data/app/views/redirect.rjs +0 -1
  150. data/app/views/search/results.rhtml +0 -40
  151. data/app/views/task_notify/invite.en.html.erb +0 -13
  152. data/app/views/task_notify/invite.no.html.erb +0 -13
  153. data/app/views/tasks/_backlog_header.rhtml +0 -17
  154. data/app/views/tasks/_completed.rhtml +0 -18
  155. data/app/views/tasks/_fields_header.rhtml +0 -13
  156. data/app/views/tasks/_form.rhtml +0 -125
  157. data/app/views/tasks/_invite.rjs +0 -1
  158. data/app/views/tasks/_period_header.rhtml +0 -1
  159. data/app/views/tasks/_task.rhtml +0 -116
  160. data/app/views/tasks/_update.rjs +0 -2
  161. data/app/views/tasks/edit.rhtml +0 -81
  162. data/app/views/tasks/grab.rhtml +0 -9
  163. data/app/views/tasks/invite.rhtml +0 -9
  164. data/app/views/tasks/list.rhtml +0 -77
  165. data/app/views/tasks/list_started.rhtml +0 -62
  166. data/app/views/tasks/new.rhtml +0 -10
  167. data/app/views/tasks/notes.rhtml +0 -12
  168. data/app/views/tasks/start_work.rjs +0 -1
  169. data/app/views/tasks/update_estimate.rjs +0 -3
  170. data/app/views/user/_edit.rhtml +0 -31
  171. data/app/views/user/_password.rhtml +0 -21
  172. data/app/views/user/change_password.rhtml +0 -19
  173. data/app/views/user/delete.rhtml +0 -14
  174. data/app/views/user/edit.rhtml +0 -154
  175. data/app/views/user/forgot_password.rhtml +0 -19
  176. data/app/views/user/login.rhtml +0 -33
  177. data/app/views/user/logout.rhtml +0 -8
  178. data/app/views/user/set_group.rjs +0 -1
  179. data/app/views/user/signup.rhtml +0 -15
  180. data/app/views/user/toggle_work_lock_monitoring.rjs +0 -2
  181. data/app/views/user/welcome.rhtml +0 -8
  182. data/app/views/user_notify/change_password.en.html.erb +0 -10
  183. data/app/views/user_notify/change_password.no.html.erb +0 -10
  184. data/app/views/user_notify/forgot_password.en.html.erb +0 -11
  185. data/app/views/user_notify/forgot_password.no.html.erb +0 -11
  186. data/app/views/user_notify/monitoring.en.html.erb +0 -3
  187. data/app/views/user_notify/monitoring.no.html.erb +0 -3
  188. data/app/views/user_notify/monitoring_invitation.en.html.erb +0 -7
  189. data/app/views/user_notify/monitoring_invitation.no.html.erb +0 -7
  190. data/app/views/user_notify/signup.en.html.erb +0 -12
  191. data/app/views/user_notify/signup.no.html.erb +0 -12
  192. data/app/views/work_lock_notify/lock.en.html.erb +0 -7
  193. data/app/views/work_lock_notify/lock.no.html.erb +0 -7
  194. data/app/views/work_lock_notify/nag.en.html.erb +0 -6
  195. data/app/views/work_lock_notify/nag.no.html.erb +0 -7
  196. data/app/views/work_locks/_form.rhtml +0 -10
  197. data/app/views/work_locks/edit.rhtml +0 -9
  198. data/app/views/work_locks/list.rhtml +0 -25
  199. data/app/views/work_locks/new.rhtml +0 -8
  200. data/app/views/work_locks/show.rhtml +0 -8
  201. data/app/views/works/_buttons.rhtml +0 -2
  202. data/app/views/works/_description_list.rhtml +0 -5
  203. data/app/views/works/_form.rhtml +0 -107
  204. data/app/views/works/_new_row.rhtml +0 -141
  205. data/app/views/works/_row.rhtml +0 -115
  206. data/app/views/works/_row_field.rhtml +0 -17
  207. data/app/views/works/_task_id_list.rhtml +0 -5
  208. data/app/views/works/_weekly_work_sheet_buttons.rhtml +0 -22
  209. data/app/views/works/daily_work_sheet.rhtml +0 -108
  210. data/app/views/works/edit.rhtml +0 -11
  211. data/app/views/works/list.rhtml +0 -148
  212. data/app/views/works/list_excel.rhtml +0 -114
  213. data/app/views/works/new.rhtml +0 -12
  214. data/app/views/works/show.rhtml +0 -10
  215. data/app/views/works/timeliste.rhtml +0 -884
  216. data/app/views/works/update_new_row.rjs +0 -28
  217. data/app/views/works/update_row.rjs +0 -18
  218. data/app/views/works/update_time.rjs +0 -3
  219. data/app/views/works/weekly_work_sheet.rhtml +0 -64
  220. data/app/views/works/weekly_work_sheet_details.rhtml +0 -102
  221. data/backlog.gemspec +0 -44
  222. data/config.ru +0 -4
  223. data/config/application.rb +0 -11
  224. data/config/boot.rb +0 -13
  225. data/config/database.yml +0 -15
  226. data/config/database.yml~ +0 -17
  227. data/config/environment.rb +0 -100
  228. data/config/environments/development.rb +0 -30
  229. data/config/environments/development.rb.rails2 +0 -26
  230. data/config/environments/production.rb +0 -33
  231. data/config/environments/test.rb +0 -24
  232. data/config/environments/user_environment.rb +0 -21
  233. data/config/initializers/backtrace_silencers.rb +0 -7
  234. data/config/initializers/inflections.rb +0 -10
  235. data/config/initializers/jdbc.rb +0 -7
  236. data/config/initializers/mime_types.rb +0 -5
  237. data/config/initializers/secret_token.rb +0 -7
  238. data/config/initializers/session_store.rb +0 -8
  239. data/config/locales/en.yml +0 -200
  240. data/config/locales/no.yml +0 -193
  241. data/config/mime_types.yaml +0 -1
  242. data/config/routes.rb +0 -5
  243. data/config/war.rb +0 -27
  244. data/config/warble.rb +0 -84
  245. data/cruise_build.sh +0 -14
  246. data/cruise_config.rb +0 -5
  247. data/db/migrate/001_create_tasks.rb +0 -22
  248. data/db/migrate/003_add_estimation_points.rb +0 -16
  249. data/db/migrate/004_add_period.rb +0 -63
  250. data/db/migrate/005_add_field_work_started_at.rb +0 -9
  251. data/db/migrate/006_works_data_fix.rb +0 -13
  252. data/db/migrate/007_add_task_created_at.rb +0 -23
  253. data/db/migrate/008_add_backlog_options.rb +0 -13
  254. data/db/migrate/009_add_subtasks.rb +0 -29
  255. data/db/migrate/010_add_work_start.rb +0 -9
  256. data/db/migrate/011_login_sugar.rb +0 -21
  257. data/db/migrate/012_add_resolution.rb +0 -12
  258. data/db/migrate/013_create_estimates.rb +0 -20
  259. data/db/migrate/014_add_customer_option.rb +0 -11
  260. data/db/migrate/015_add_user_option.rb +0 -33
  261. data/db/migrate/016_add_invoicable_flag.rb +0 -11
  262. data/db/migrate/017_increase_backlog_name_limit.rb +0 -10
  263. data/db/migrate/018_create_groups.rb +0 -118
  264. data/db/migrate/019_remove_unique_index_for_period_position.rb +0 -9
  265. data/db/migrate/020_create_task_files.rb +0 -17
  266. data/db/migrate/021_create_work_accounts.rb +0 -111
  267. data/db/migrate/022_remove_track_done_flag.rb +0 -9
  268. data/db/migrate/023_add_indices_for_burn_down_chart.rb +0 -13
  269. data/db/migrate/024_add_sprint_option.rb +0 -10
  270. data/db/migrate/025_add_simple_auditing_of_tasks.rb +0 -11
  271. data/db/migrate/026_add_users_to_tasks.rb +0 -14
  272. data/db/migrate/027_create_work_locks.rb +0 -25
  273. data/db/migrate/028_create_absences.rb +0 -34
  274. data/db/migrate/029_add_work_comments.rb +0 -9
  275. data/db/migrate/030_create_public_holidays.rb +0 -11
  276. data/db/migrate/031_expand_work_done_precision.rb +0 -9
  277. data/db/migrate/20100720124707_merge_work_account_into_backlog.rb +0 -74
  278. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb +0 -22
  279. data/db/migrate/20101006092700_rename_backlogs_to_projects.rb~ +0 -22
  280. data/db/schema.rb +0 -159
  281. data/db/seeds.rb +0 -7
  282. data/db/test.db +0 -0
  283. data/etc/backlog.conf +0 -32
  284. data/ext/mkrf_conf.rb +0 -26
  285. data/lib/class_table_inheritance.rb +0 -224
  286. data/lib/postgresql-8.2-504.jdbc4.jar +0 -0
  287. data/lib/tasks/jdbc.rake +0 -8
  288. data/lib/url_for_fix.rb +0 -30
  289. data/nbproject/private/config.properties +0 -0
  290. data/nbproject/private/private.properties +0 -1
  291. data/nbproject/private/private.xml +0 -4
  292. data/nbproject/private/rake-t.txt +0 -95
  293. data/nbproject/project.properties +0 -4
  294. data/nbproject/project.xml +0 -9
  295. data/public/404.html +0 -26
  296. data/public/422.html +0 -26
  297. data/public/500.html +0 -26
  298. data/public/Frav/303/246rsskjema.xls +0 -0
  299. data/public/applets/bsf.jar +0 -0
  300. data/public/applets/jruby.jar +0 -0
  301. data/public/favicon.ico +0 -0
  302. data/public/images/add.png +0 -0
  303. data/public/images/add.svg +0 -70
  304. data/public/images/ajax-loading.gif +0 -0
  305. data/public/images/appunti_architetto_franc_01.svg +0 -92
  306. data/public/images/arrow-down.gif +0 -0
  307. data/public/images/arrow-up.gif +0 -0
  308. data/public/images/arrow07_2.png +0 -0
  309. data/public/images/arrow07_4.png +0 -0
  310. data/public/images/arrow_down.png +0 -0
  311. data/public/images/arrow_down.svg +0 -59
  312. data/public/images/arrow_left.png +0 -0
  313. data/public/images/arrow_left.svg +0 -59
  314. data/public/images/arrow_right.png +0 -0
  315. data/public/images/arrow_right.svg +0 -59
  316. data/public/images/arrow_up.png +0 -0
  317. data/public/images/arrow_up.svg +0 -59
  318. data/public/images/black-70.png +0 -0
  319. data/public/images/black.png +0 -0
  320. data/public/images/blank.jpg +0 -0
  321. data/public/images/blank.png +0 -0
  322. data/public/images/cestino_pieno_architetto_01.svg +0 -470
  323. data/public/images/checkmark.png +0 -0
  324. data/public/images/checkmark_org.png +0 -0
  325. data/public/images/clipboard.png +0 -0
  326. data/public/images/clipboard.svg +0 -62
  327. data/public/images/construction_hammer_jon__01.svg +0 -116
  328. data/public/images/delete.png +0 -0
  329. data/public/images/email.png +0 -0
  330. data/public/images/email_grey.png +0 -0
  331. data/public/images/eraser.png +0 -0
  332. data/public/images/eraser_org.png +0 -0
  333. data/public/images/ernes_stop.png +0 -0
  334. data/public/images/ernes_stop_org.png +0 -0
  335. data/public/images/flag_red.png +0 -0
  336. data/public/images/flag_yellow.png +0 -0
  337. data/public/images/grab.png +0 -0
  338. data/public/images/grab_gray.png +0 -0
  339. data/public/images/group.png +0 -0
  340. data/public/images/hammer.png +0 -0
  341. data/public/images/header.jpg +0 -0
  342. data/public/images/nextlabel.gif +0 -0
  343. data/public/images/pagebak.jpg +0 -0
  344. data/public/images/paper3.svg +0 -54
  345. data/public/images/period.png +0 -0
  346. data/public/images/period_org.png +0 -0
  347. data/public/images/person.org.png +0 -0
  348. data/public/images/prevlabel.gif +0 -0
  349. data/public/images/question.svg +0 -56
  350. data/public/images/rails.png +0 -0
  351. data/public/images/refresh.png +0 -0
  352. data/public/images/rmagick.gif +0 -0
  353. data/public/images/rmagick_270.gif +0 -0
  354. data/public/images/tabella_architetto_franc_01.svg +0 -105
  355. data/public/images/task.png +0 -0
  356. data/public/images/text-x-generic.png +0 -0
  357. data/public/images/user group.png +0 -0
  358. data/public/images/user.png +0 -0
  359. data/public/images/view_fullscreen.png +0 -0
  360. data/public/images/work_account.png +0 -0
  361. data/public/javascripts/application.js +0 -2
  362. data/public/javascripts/builder.js +0 -136
  363. data/public/javascripts/controls.js +0 -965
  364. data/public/javascripts/dragdrop.js +0 -974
  365. data/public/javascripts/effects.js +0 -1123
  366. data/public/javascripts/lightwindow.js +0 -1921
  367. data/public/javascripts/prototype.js +0 -6001
  368. data/public/javascripts/rails.js +0 -175
  369. data/public/javascripts/ruby.js +0 -46
  370. data/public/javascripts/scriptaculous.js +0 -58
  371. data/public/javascripts/slider.js +0 -275
  372. data/public/javascripts/sound.js +0 -55
  373. data/public/javascripts/unittest.js +0 -568
  374. data/public/javascripts/zapatec/utils/transport.js +0 -2217
  375. data/public/javascripts/zapatec/utils/utils.js +0 -1799
  376. data/public/javascripts/zapatec/utils/zapatec.js +0 -90
  377. data/public/javascripts/zapatec/utils/zpeventdriven.js +0 -212
  378. data/public/javascripts/zapatec/utils/zpwidget.js +0 -729
  379. data/public/javascripts/zapatec/zpcal/lang/calendar-no.js +0 -124
  380. data/public/javascripts/zapatec/zpcal/src/calendar-core.js +0 -2878
  381. data/public/javascripts/zapatec/zpcal/src/calendar-date-core.js +0 -348
  382. data/public/javascripts/zapatec/zpcal/src/calendar-setup.js +0 -360
  383. data/public/javascripts/zapatec/zpcal/src/calendar.js +0 -35
  384. data/public/robots.txt +0 -5
  385. data/public/stylesheets/backlog.css +0 -135
  386. data/public/stylesheets/lightwindow.css +0 -376
  387. data/public/stylesheets/mwrt002.css +0 -54
  388. data/public/stylesheets/mwrt002MAC.css +0 -3
  389. data/public/stylesheets/mwrt002NN.css +0 -3
  390. data/public/stylesheets/scaffold.css +0 -74
  391. data/public/stylesheets/user.css +0 -74
  392. data/public/stylesheets/zpcal/themes/green.css +0 -153
  393. data/public/stylesheets/zpcal/themes/layouts/layout-2d.css +0 -134
  394. data/public/stylesheets/zpcal/themes/layouts/layout-common.css +0 -74
  395. data/public/stylesheets/zpcal/themes/menuarrow.gif +0 -0
  396. data/public/stylesheets/zpcal/themes/scroller-down.gif +0 -0
  397. data/public/stylesheets/zpcal/themes/scroller-up.gif +0 -0
  398. data/script/rails +0 -6
  399. data/test/client/login.rb +0 -23
  400. data/test/client/login_test.rb +0 -64
  401. data/test/client/setup.rb +0 -25
  402. data/test/fixtures/absences.yml +0 -11
  403. data/test/fixtures/configurations.yml +0 -5
  404. data/test/fixtures/customers.yml +0 -7
  405. data/test/fixtures/estimates.yml +0 -10
  406. data/test/fixtures/groups.yml +0 -6
  407. data/test/fixtures/groups_users.yml +0 -3
  408. data/test/fixtures/parties.yml +0 -32
  409. data/test/fixtures/periods.yml +0 -24
  410. data/test/fixtures/projects.yml +0 -8
  411. data/test/fixtures/public_holidays.yml +0 -7
  412. data/test/fixtures/task_files.yml +0 -13
  413. data/test/fixtures/tasks.yml +0 -82
  414. data/test/fixtures/users.yml +0 -59
  415. data/test/fixtures/work_lock_subscriptions.yml +0 -7
  416. data/test/fixtures/work_locks.yml +0 -11
  417. data/test/fixtures/works.yml +0 -47
  418. data/test/functional/absences_controller_test.rb +0 -93
  419. data/test/functional/customers_controller_test.rb +0 -93
  420. data/test/functional/dashboard_controller_test.rb +0 -18
  421. data/test/functional/estimates_controller_test.rb +0 -40
  422. data/test/functional/groups_controller_test.rb +0 -120
  423. data/test/functional/parties_controller_test.rb +0 -35
  424. data/test/functional/periods_controller_test.rb +0 -297
  425. data/test/functional/projects_controller_test.rb +0 -152
  426. data/test/functional/public_holidays_controller_test.rb +0 -93
  427. data/test/functional/search_controller_test.rb +0 -24
  428. data/test/functional/task_files_controller_test.rb +0 -29
  429. data/test/functional/tasks_controller_test.rb +0 -229
  430. data/test/functional/user_controller_test.rb +0 -261
  431. data/test/functional/welcome_controller_test.rb +0 -62
  432. data/test/functional/work_locks_controller_test.rb +0 -93
  433. data/test/functional/works_controller_test.rb +0 -220
  434. data/test/integration/user_system_test.rb +0 -95
  435. data/test/mocks/test/clock.rb +0 -14
  436. data/test/performance/browsing_test.rb +0 -9
  437. data/test/performance/common.rb +0 -91
  438. data/test/performance/jetty_test.rb +0 -15
  439. data/test/performance/server_test.rb +0 -17
  440. data/test/test_helper.rb +0 -119
  441. data/test/test_helper.rb~ +0 -121
  442. data/test/unit/absence_test.rb +0 -29
  443. data/test/unit/big_decimal_yaml_fix_test.rb +0 -15
  444. data/test/unit/configuration_test.rb +0 -10
  445. data/test/unit/customer_test.rb +0 -10
  446. data/test/unit/estimate_test.rb +0 -10
  447. data/test/unit/group_test.rb +0 -10
  448. data/test/unit/party_test.rb +0 -10
  449. data/test/unit/period_test.rb +0 -9
  450. data/test/unit/public_holiday_test.rb +0 -10
  451. data/test/unit/task_file_test.rb +0 -10
  452. data/test/unit/task_test.rb +0 -73
  453. data/test/unit/time_of_day_test.rb +0 -23
  454. data/test/unit/user_test.rb +0 -148
  455. data/test/unit/work_lock_subscription_test.rb +0 -10
  456. data/test/unit/work_lock_test.rb +0 -10
  457. data/test/unit/work_test.rb +0 -81
  458. data/vendor/plugins/acts_as_list/README +0 -23
  459. data/vendor/plugins/acts_as_list/init.rb +0 -3
  460. data/vendor/plugins/acts_as_list/lib/active_record/acts/list.rb +0 -256
  461. data/vendor/plugins/acts_as_list/test/list_test.rb +0 -332
  462. data/vendor/plugins/acts_as_tree/README +0 -26
  463. data/vendor/plugins/acts_as_tree/Rakefile +0 -22
  464. data/vendor/plugins/acts_as_tree/init.rb +0 -1
  465. data/vendor/plugins/acts_as_tree/lib/active_record/acts/tree.rb +0 -96
  466. data/vendor/plugins/acts_as_tree/test/abstract_unit.rb +0 -0
  467. data/vendor/plugins/acts_as_tree/test/acts_as_tree_test.rb +0 -219
  468. data/vendor/plugins/acts_as_tree/test/database.yml +0 -0
  469. data/vendor/plugins/acts_as_tree/test/fixtures/mixin.rb +0 -0
  470. data/vendor/plugins/acts_as_tree/test/fixtures/mixins.yml +0 -0
  471. data/vendor/plugins/acts_as_tree/test/schema.rb +0 -0
  472. data/vendor/plugins/assert_cookie/MIT-LICENSE +0 -7
  473. data/vendor/plugins/assert_cookie/README +0 -6
  474. data/vendor/plugins/assert_cookie/Rakefile +0 -21
  475. data/vendor/plugins/assert_cookie/init.rb +0 -1
  476. data/vendor/plugins/assert_cookie/lib/assert_cookie.rb +0 -73
  477. data/vendor/plugins/assert_cookie/meta.yml +0 -7
  478. data/vendor/plugins/assert_cookie/test/test_assert_cookie.rb +0 -124
  479. data/vendor/plugins/assert_cookie/test/test_helper.rb +0 -31
  480. data/vendor/plugins/auto_complete/README +0 -23
  481. data/vendor/plugins/auto_complete/Rakefile +0 -22
  482. data/vendor/plugins/auto_complete/init.rb +0 -2
  483. data/vendor/plugins/auto_complete/lib/auto_complete.rb +0 -47
  484. data/vendor/plugins/auto_complete/lib/auto_complete_macros_helper.rb +0 -143
  485. data/vendor/plugins/auto_complete/test/auto_complete_test.rb +0 -67
  486. data/vendor/plugins/backlog_jira/init.rb +0 -66
  487. data/vendor/plugins/dynamic_form/MIT-LICENSE +0 -20
  488. data/vendor/plugins/dynamic_form/README +0 -13
  489. data/vendor/plugins/dynamic_form/Rakefile +0 -10
  490. data/vendor/plugins/dynamic_form/dynamic_form.gemspec +0 -12
  491. data/vendor/plugins/dynamic_form/init.rb +0 -1
  492. data/vendor/plugins/dynamic_form/lib/action_view/helpers/dynamic_form.rb +0 -300
  493. data/vendor/plugins/dynamic_form/lib/action_view/locale/en.yml +0 -8
  494. data/vendor/plugins/dynamic_form/lib/dynamic_form.rb +0 -5
  495. data/vendor/plugins/dynamic_form/test/dynamic_form_i18n_test.rb +0 -42
  496. data/vendor/plugins/dynamic_form/test/dynamic_form_test.rb +0 -370
  497. data/vendor/plugins/dynamic_form/test/test_helper.rb +0 -9
  498. data/vendor/plugins/has_history/README +0 -12
  499. data/vendor/plugins/has_history/Rakefile +0 -22
  500. data/vendor/plugins/has_history/generators/history_migration/history_migration_generator.rb +0 -30
  501. data/vendor/plugins/has_history/generators/history_migration/templates/migration.rb +0 -14
  502. data/vendor/plugins/has_history/generators/history_model/history_model_generator.rb +0 -39
  503. data/vendor/plugins/has_history/generators/history_model/templates/fixtures.yml +0 -17
  504. data/vendor/plugins/has_history/generators/history_model/templates/functional_test.rb +0 -129
  505. data/vendor/plugins/has_history/generators/history_model/templates/migration.rb +0 -14
  506. data/vendor/plugins/has_history/generators/history_model/templates/model.rb +0 -4
  507. data/vendor/plugins/has_history/generators/history_model/templates/unit_test.rb +0 -75
  508. data/vendor/plugins/has_history/init.rb +0 -5
  509. data/vendor/plugins/has_history/install.rb +0 -1
  510. data/vendor/plugins/has_history/lib/has_history.rb +0 -178
  511. data/vendor/plugins/has_history/lib/tasks/has_history_tasks.rake +0 -4
  512. data/vendor/plugins/has_history/test/has_history_test.rb +0 -31
  513. data/vendor/plugins/has_history/test/ignorant_master.rb +0 -3
  514. data/vendor/plugins/has_history/test/ignorant_master_history.rb +0 -4
  515. data/vendor/plugins/has_history/test/lone_master.rb +0 -42
  516. data/vendor/plugins/has_history/test/paired_master.rb +0 -5
  517. data/vendor/plugins/has_history/test/paired_master_history.rb +0 -5
  518. data/vendor/plugins/has_history/test/test_helper.rb +0 -154
  519. data/vendor/plugins/has_history/uninstall.rb +0 -1
  520. data/vendor/plugins/prototype_legacy_helper/lib/prototype_legacy_helper.rb +0 -432
  521. data/vendor/plugins/prototype_legacy_helper/test/test_prototype_helper.rb +0 -297
  522. data/vendor/plugins/rails_time/MIT-LICENSE +0 -20
  523. data/vendor/plugins/rails_time/README +0 -28
  524. data/vendor/plugins/rails_time/init.rb +0 -2
  525. data/vendor/plugins/rails_time/lib/activerecord_time_extension.rb +0 -28
  526. data/vendor/plugins/rails_time/lib/time_of_day.rb +0 -88
  527. data/vendor/plugins/rails_time/test/database.yml +0 -18
  528. data/vendor/plugins/rails_time/test/debug.log +0 -1
  529. data/vendor/plugins/rails_time/test/rails_time_test.rb +0 -122
  530. data/vendor/plugins/rails_time/test/schema.rb +0 -10
  531. data/vendor/plugins/rails_time/test/test_helper.rb +0 -17
  532. data/vendor/plugins/verification/MIT-LICENSE +0 -20
  533. data/vendor/plugins/verification/README +0 -34
  534. data/vendor/plugins/verification/Rakefile +0 -22
  535. data/vendor/plugins/verification/init.rb +0 -3
  536. data/vendor/plugins/verification/lib/action_controller/verification.rb +0 -132
  537. data/vendor/plugins/verification/test/test_helper.rb +0 -18
  538. data/vendor/plugins/verification/test/verification_test.rb +0 -270
  539. data/vendor/plugins/will_paginate/LICENSE +0 -18
  540. data/vendor/plugins/will_paginate/README +0 -138
  541. data/vendor/plugins/will_paginate/Rakefile +0 -27
  542. data/vendor/plugins/will_paginate/init.rb +0 -4
  543. data/vendor/plugins/will_paginate/lib/will_paginate.rb +0 -61
  544. data/vendor/plugins/will_paginate/lib/will_paginate/collection.rb +0 -132
  545. data/vendor/plugins/will_paginate/lib/will_paginate/core_ext.rb +0 -80
  546. data/vendor/plugins/will_paginate/lib/will_paginate/finder.rb +0 -181
  547. data/vendor/plugins/will_paginate/lib/will_paginate/view_helpers.rb +0 -206
  548. data/vendor/plugins/will_paginate/test/array_pagination_test.rb +0 -131
  549. data/vendor/plugins/will_paginate/test/boot.rb +0 -23
  550. data/vendor/plugins/will_paginate/test/console +0 -9
  551. data/vendor/plugins/will_paginate/test/finder_test.rb +0 -290
  552. data/vendor/plugins/will_paginate/test/fixtures/admin.rb +0 -3
  553. data/vendor/plugins/will_paginate/test/fixtures/developer.rb +0 -11
  554. data/vendor/plugins/will_paginate/test/fixtures/developers_projects.yml +0 -13
  555. data/vendor/plugins/will_paginate/test/fixtures/project.rb +0 -15
  556. data/vendor/plugins/will_paginate/test/fixtures/projects.yml +0 -7
  557. data/vendor/plugins/will_paginate/test/fixtures/replies.yml +0 -34
  558. data/vendor/plugins/will_paginate/test/fixtures/reply.rb +0 -5
  559. data/vendor/plugins/will_paginate/test/fixtures/schema.rb +0 -38
  560. data/vendor/plugins/will_paginate/test/fixtures/topic.rb +0 -4
  561. data/vendor/plugins/will_paginate/test/fixtures/topics.yml +0 -30
  562. data/vendor/plugins/will_paginate/test/fixtures/user.rb +0 -2
  563. data/vendor/plugins/will_paginate/test/fixtures/users.yml +0 -35
  564. data/vendor/plugins/will_paginate/test/helper.rb +0 -25
  565. data/vendor/plugins/will_paginate/test/lib/activerecord_test_case.rb +0 -23
  566. data/vendor/plugins/will_paginate/test/lib/activerecord_test_connector.rb +0 -67
  567. data/vendor/plugins/will_paginate/test/lib/load_fixtures.rb +0 -13
  568. data/vendor/plugins/will_paginate/test/pagination_test.rb +0 -240
@@ -1,24 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
- require 'search_controller'
3
-
4
- # Re-raise errors caught by the controller.
5
- class SearchController; def rescue_action(e) raise e end; end
6
-
7
- class SearchControllerTest < ActionController::TestCase
8
- main_scenario
9
-
10
- def setup
11
- @controller = SearchController.new
12
- @request = ActionController::TestRequest.new
13
- @response = ActionController::TestResponse.new
14
- @request.session[:user_id] = 1000001
15
- end
16
-
17
- def test_notes
18
- post :results, :q => 'hullo'
19
- assert_not_nil assigns(:projects)
20
- assert_not_nil assigns(:tasks)
21
- assert_equal 1, assigns(:tasks).size
22
- assert_equal tasks(:first).id, assigns(:tasks).first.id
23
- end
24
- end
@@ -1,29 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
- require 'task_files_controller'
3
-
4
- # Re-raise errors caught by the controller.
5
- class TaskFilesController; def rescue_action(e) raise e end; end
6
-
7
- class TaskFilesControllerTest < ActionController::TestCase
8
- fixtures :task_files
9
-
10
- def setup
11
- @controller = TaskFilesController.new
12
- @request = ActionController::TestRequest.new
13
- @response = ActionController::TestResponse.new
14
- @request.session[:user_id] = 1000001
15
- end
16
-
17
- def test_should_show_task_file
18
- get :show, :id => 1
19
- assert_response :success
20
- end
21
-
22
- def test_should_destroy_task_file
23
- old_count = TaskFile.count
24
- delete :destroy, :id => 1
25
- assert_equal old_count-1, TaskFile.count
26
-
27
- assert_redirected_to :controller => 'tasks', :action => :edit, :id => 2
28
- end
29
- end
@@ -1,229 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
- require 'tasks_controller'
3
-
4
- # Re-raise errors caught by the controller.
5
- class TasksController; def rescue_action(e) raise e end; end
6
-
7
- class TasksControllerTest < ActionController::TestCase
8
- main_scenario
9
-
10
- def setup
11
- @controller = TasksController.new
12
- @request = ActionController::TestRequest.new
13
- @response = ActionController::TestResponse.new
14
- @request.session[:user_id] = 1000001
15
- assert_sequences
16
- end
17
-
18
- def teardown
19
- assert_sequences
20
- end
21
-
22
- # def test_index
23
- # get :index
24
- # assert_redirected_to :controller => 'projects'
25
- # end
26
-
27
- def test_list
28
- get :list
29
- assert_redirected_to :controller => 'projects'
30
- end
31
-
32
- def test_list_started
33
- get :list_started, :id => '1'
34
- assert_response :success
35
- assert_template 'list_started'
36
-
37
- assert_not_nil assigns(:tasks)
38
- assert_not_nil assigns(:selected_task)
39
- end
40
-
41
- def test_list_started_no_selected_task
42
- get :list_started
43
- assert_response :success
44
- assert_template 'list_started'
45
-
46
- assert_not_nil assigns(:tasks)
47
- assert_nil assigns(:selected_task)
48
- end
49
-
50
- def test_new
51
- get :new
52
-
53
- assert_response :success
54
- assert_template 'new'
55
-
56
- assert_not_nil assigns(:task)
57
- end
58
-
59
- def test_create
60
- num_tasks = Task.count
61
-
62
- post :create, :task => {:description => 'an important task', :project_id => '2',
63
- :period_id => periods(:active).id.to_s}
64
-
65
- task = assigns(:task)
66
- assert_equal [], task.errors.full_messages
67
-
68
- assert_response :redirect
69
- assert_redirected_to :controller => 'periods', :action => 'show', :id => periods(:active).id, :task => assigns(:task).id
70
-
71
- assert_equal num_tasks + 1, Task.count
72
- end
73
-
74
- def test_create_without_period
75
- num_tasks = Task.count
76
-
77
- post :create, :task => {:description => 'an important task', :project_id => '2'}
78
-
79
- task = assigns(:task)
80
- assert_equal [], task.errors.full_messages
81
-
82
- assert_response :redirect
83
- assert_redirected_to :controller => 'projects', :action => :edit, :id => 2, :task => task.id
84
-
85
- assert_equal num_tasks + 1, Task.count
86
- end
87
-
88
- def test_edit
89
- get :edit, :id => 1
90
-
91
- assert_response :success
92
- assert_template 'edit'
93
-
94
- assert_not_nil assigns(:task)
95
- assert assigns(:task).valid?
96
- end
97
-
98
- def test_set_task_description
99
- post :set_task_description, "id"=>"2", :value => 'New value'
100
-
101
- after = Task.find(2)
102
- assert_equal 'New value', after.description
103
- end
104
-
105
- def test_set_task_description_on_subtask
106
- post :set_task_description, "id"=>"8", :value => 'New value'
107
-
108
- after = Task.find(8)
109
- assert_equal 'New value', after.description
110
- end
111
-
112
- def test_specify
113
- post :specify, "id" => tasks(:another).id.to_s
114
-
115
- after = Task.find(tasks(:another))
116
- assert_equal 1, after.children.size
117
- end
118
-
119
- def test_specify_passed_period
120
- assert_raise RuntimeError do
121
- post :specify, "id"=>"1"
122
- end
123
- end
124
-
125
- def test_update
126
- post :update, :id => 2, :task => {:description => 'Two'}
127
-
128
- assert_response :redirect
129
- assert_redirected_to :controller => 'periods', :action => 'show', :id => periods(:active), :task => 2
130
-
131
- after = Task.find(2)
132
- assert_equal 'Two', after.description
133
- end
134
-
135
- def test_update_make_unplanned
136
- before = Task.find(2)
137
-
138
- post :update, :id => 2, :task => {:period_id => ''}
139
-
140
- assert_response :redirect
141
- assert_redirected_to :controller => 'projects', :action => 'show', :id => before.project, :task => 2
142
-
143
- after = Task.find(2)
144
- assert_equal nil, after.period_id
145
- assert_equal nil, after.period
146
- assert_equal 2, after.position
147
- end
148
-
149
- def test_update_make_unplanned_with_detour
150
- before = Task.find(2)
151
- add_stored_detour
152
-
153
- post :update, :id => 2, :task => {:period_id => ''}
154
-
155
- assert_response :redirect
156
- assert_redirected_to :controller => 'bogus', :action => :location
157
-
158
- after = Task.find(2)
159
- assert_equal nil, after.period_id
160
- assert_equal nil, after.period
161
- assert_equal 2, after.position
162
- end
163
-
164
- def test_destroy
165
- assert_not_nil Task.find(1)
166
-
167
- post :destroy, :id => 1
168
- assert_response :redirect
169
- assert_redirected_to :controller => 'periods', :action => 'show', :id => periods(:past)
170
-
171
- assert_raise(ActiveRecord::RecordNotFound) {
172
- Task.find(1)
173
- }
174
- end
175
-
176
- def test_end_work
177
- before = Task.find(1)
178
- assert_equal 70, before.total_done
179
-
180
- post :end_work, :id => 1, :work => {:work_start_time => (TimeOfDay.now - 3600).to_s}
181
- assert_response :redirect
182
- assert_redirected_to :controller => 'works', :action => :new,
183
- 'work[task_id]' => 1,
184
- 'work[started_on]' => Time.previous_quarter.to_date.to_s,
185
- 'work[start_time]' => Time.previous_quarter.time_of_day.to_s,
186
- 'work[completed_at]' => Time.next_quarter.iso8601,
187
- 'work[hours]' => "0.25",
188
- 'estimate[todo]' => 1.0
189
-
190
- after = Task.find(1)
191
- assert_equal 70, after.total_done
192
- end
193
-
194
- def test_move_to__subtask_to_top
195
- subtask = tasks(:subtask)
196
- subtask_before = Task.find(subtask.id)
197
- supertask = tasks(:supertask)
198
- supertask_before = Task.find(supertask.id)
199
-
200
- post :move_to, :id => subtask.id.to_s, :target_id => supertask.id.to_s
201
-
202
- assert_response :redirect
203
- assert_redirected_to :controller => 'periods', :action => :show_no_layout, :id => subtask_before.root_task.period_id, :task => tasks(:subtask).id
204
-
205
- subtask_after = Task.find(subtask.id)
206
- assert_equal subtask.root_task.period_id, subtask_after.period_id
207
- assert_equal 3, subtask_after.position
208
- end
209
-
210
- def test_start_work
211
- task_id = tasks(:first).id
212
-
213
- post :start_work, :id => task_id
214
-
215
- after = Task.find(task_id)
216
- assert after.work_started?
217
- end
218
-
219
- def test_start_work_xhr
220
- # raise "This test fails alone, but not with other tests..."
221
- task_id = tasks(:first).id
222
-
223
- xhr :post, :start_work, :id => task_id
224
-
225
- after = Task.find(task_id)
226
- assert after.work_started?
227
- end
228
-
229
- end
@@ -1,261 +0,0 @@
1
- require File.dirname(__FILE__) + '/../test_helper'
2
- require 'user_controller'
3
-
4
- # Raise errors beyond the default web-based presentation
5
- class UserController; def rescue_action(e) raise e end; end
6
-
7
- class UserControllerTest < ActionController::TestCase
8
- include UserSystem
9
-
10
- self.use_transactional_fixtures = false
11
- main_scenario
12
-
13
- def setup
14
- @controller = UserController.new
15
- @request = ActionController::TestRequest.new
16
- @response = ActionController::TestResponse.new
17
- @request.host = "localhost"
18
- Mail::TestMailer.inject_one_error = false
19
- ActionMailer::Base.deliveries = []
20
- end
21
-
22
- def test_login__valid_login__redirects_as_specified
23
- @request.session[:detours] ||= []
24
- @request.session[:detours] << {:controller => 'bogus', :action => :location}
25
- post :login, :user => { :login => "tesla", :password => "atest" }
26
- assert_logged_in users(:tesla)
27
- assert_response :redirect
28
- assert_equal "http://#{@request.host}/bogus/location", @response.redirect_url
29
- end
30
-
31
- def test_login__valid_login__shows_welcome_as_default
32
- post :login, :user => { :login => "tesla", :password => "atest" }
33
- assert_logged_in users(:tesla)
34
- assert_response :redirect
35
- assert_equal @controller.url_for(:controller => 'welcome', :action => :index), @response.redirect_url
36
- end
37
-
38
- def test_login__wrong_password
39
- post :login, :user => { :login => "tesla", :password => "wrong password" }
40
- assert_not_logged_in
41
- assert_template 'login'
42
- assert_contains "Login failed", flash[:notice]
43
- end
44
-
45
- def test_login__wrong_login
46
- post :login, :user => { :login => "wrong login", :password => "atest" }
47
- assert_not_logged_in
48
- assert_template 'login'
49
- assert_contains "Login failed", flash[:notice]
50
- end
51
-
52
- def test_login__deleted_user_cant_login
53
- post :login, :user => { :login => "deleted_tesla", :password => "atest" }
54
- assert_not_logged_in
55
- assert_template 'login'
56
- assert_contains "Login failed", flash[:notice]
57
- end
58
-
59
- def test_signup
60
- post_signup :login => "newuser", :password => "password", :password_confirmation => "password", :email => "newemail@example.com"
61
- assert_not_logged_in
62
- assert_redirected_to_login
63
- assert_equal 1, ActionMailer::Base.deliveries.size
64
-
65
- mail = ActionMailer::Base.deliveries[0]
66
- assert_equal "newemail@example.com", mail.to_addrs[0].to_s
67
- assert_match /login:\s+\w+\s*\n/, mail.encoded
68
- assert_match /password:\s+\w+\s*\n/, mail.encoded
69
- user = User.find_by_email("newemail@example.com")
70
- assert_match /user\[id\]=#{user.id}/, mail.encoded
71
- assert_match /key=#{user.security_token}/, mail.encoded
72
- assert !user.verified
73
- end
74
-
75
- def test_signup__raises_delivery_errors
76
- Mail::TestMailer.inject_one_error = true
77
- post_signup :login => "newtesla", :password => "newpassword", :password_confirmation => "newpassword", :email => "newtesla@example.com"
78
- assert_not_logged_in
79
- assert_equal 0, ActionMailer::Base.deliveries.size
80
- assert_contains "confirmation email not sent", flash[:notice]
81
- end
82
-
83
- def test_signup__mismatched_passwords
84
- post :signup, :user => { :login => "newtesla", :password => "newpassword", :password_confirmation => "wrong", :email => 'test@example.com' }
85
- user = assigns(:user)
86
- assert_equal 1, user.errors.size
87
- assert_not_nil user.errors['password']
88
- end
89
-
90
- def test_signup__bad_login
91
- post_signup :login => "yo", :password => "newpassword", :password_confirmation => "newpassword", :email => 'test@example.com'
92
- user = assigns(:user)
93
- assert_equal 1, user.errors.size
94
- assert_not_nil user.errors['login']
95
- end
96
-
97
- def test_welcome
98
- user = users(:unverified_user)
99
- get :welcome, :user=> { :id => user.id }, :key => user.security_token
100
- user.reload
101
- assert user.verified
102
- assert_logged_in( user )
103
- end
104
-
105
- def test_welcome__fails_if_expired_token
106
- user = users(:unverified_user)
107
- Clock.time = Clock.now + User.token_lifetime + 1 # now past verification deadline
108
- get :welcome, :user=> { :id => user.id }, :key => user.security_token
109
- user.reload
110
- assert !user.verified
111
- assert_not_logged_in
112
- end
113
-
114
- def test_welcome__fails_if_bad_token
115
- user = users(:unverified_user)
116
- Clock.time = Time.now # now before deadline, but with bad token
117
- get :welcome, :user=> { :id => user.id }, :key => "boguskey"
118
- user.reload
119
- assert !user.verified
120
- assert_not_logged_in
121
- end
122
-
123
- def test_edit
124
- tesla = users(:tesla)
125
- set_logged_in tesla
126
- post :edit, :user => { :first_name => "Bob", :form => "edit" }
127
- tesla.reload
128
- assert_equal "Bob", tesla.first_name
129
- end
130
-
131
- def test_delete
132
- user = users(:deletable_user)
133
- set_logged_in user
134
- post :edit, "user" => { "form" => "delete" }
135
- user.reload
136
- assert user.deleted
137
- assert_not_logged_in
138
- end
139
-
140
- def test_change_password
141
- user = users(:tesla)
142
- set_logged_in user
143
- post :change_password, :user => { :password => "changed_password", :password_onfirmation => "changed_password" }
144
- assert_response :success
145
- assert_equal 1, ActionMailer::Base.deliveries.size
146
- mail = ActionMailer::Base.deliveries[0]
147
- assert_equal "tesla@example.com", mail.to_addrs[0].to_s
148
- assert_match /login:\s+\w+\s*\n/, mail.encoded
149
- assert_match /password:\s+\w+\s*\n/, mail.encoded
150
- assert_equal user, User.authenticate(user.login, 'changed_password')
151
- end
152
-
153
- def test_change_password__confirms_password
154
- set_logged_in users(:tesla)
155
- post :change_password, :user => { :password => "bad", :password_confirmation => "bad" }
156
- user = assigns(:user)
157
- assert_equal 0, user.errors.size
158
- # assert_nil user.errors('password')
159
- assert_response :success
160
- assert_equal 1, ActionMailer::Base.deliveries.size
161
- end
162
-
163
- def test_change_password_succeeds_despite_delivery_errors
164
- set_logged_in users(:tesla)
165
- Mail::TestMailer.inject_one_error = true
166
- post :change_password, :user => { :password => "changed_password", :password_confirmation => "changed_password" }
167
- assert_equal 0, ActionMailer::Base.deliveries.size
168
- assert_equal users(:tesla), User.authenticate(users(:tesla).login, 'changed_password')
169
- end
170
-
171
- def test_forgot_password__when_logged_in_redirects_to_change_password
172
- user = users(:tesla)
173
- set_logged_in user
174
- post :forgot_password, :user => { :email => user.email }
175
- assert_equal 0, ActionMailer::Base.deliveries.size
176
- assert_response :redirect
177
- assert_equal @controller.url_for(:action => "change_password"), @response.redirect_url
178
- end
179
-
180
- def test_forgot_password__requires_valid_email_address
181
- post :forgot_password, :user => { :email => "" }
182
- assert_equal 0, ActionMailer::Base.deliveries.size
183
- assert_match /Please enter a valid email address./, @response.body
184
- end
185
-
186
- def test_forgot_password__ignores_unknown_email_address
187
- post :forgot_password, :user => { :email => "unknown_email@example.com" }
188
- assert_equal 0, ActionMailer::Base.deliveries.size
189
- end
190
-
191
- def test_forgot_password__reports_delivery_error
192
- Mail::TestMailer.inject_one_error = true
193
- post :forgot_password, :user => { :email => users(:tesla).email }
194
- assert_equal 0, ActionMailer::Base.deliveries.size
195
- assert_match /Your password could not be emailed/, @response.body
196
- end
197
-
198
- def test_invalid_login
199
- post :login, :user => { :login => "tesla", :password => "not_correct" }
200
- assert_not_logged_in
201
- assert_response :success
202
- assert_template 'login'
203
- end
204
-
205
- def test_logout
206
- set_logged_in users(:tesla)
207
- cookies['autologin'] = {:value => 'tesla'}
208
- get :logout
209
- assert_not_logged_in
210
- assert_nil cookies[:autologin]
211
- end
212
-
213
- def test_login_with_autologin
214
- post :login, :user => { :login => "tesla", :password => "atest", :autologin => '1' }
215
-
216
- assert_logged_in users(:tesla)
217
- assert_response :redirect
218
- assert_equal @controller.url_for(:controller => 'welcome', :action => :index), @response.redirect_url
219
- assert_cookie :autologin, :value => '1000001'
220
- assert_cookie :token
221
- assert_not_equal 'random_token_string', cookies['token']
222
- assert_equal false, User.find(1000001).token_expired?
223
- assert_not_equal 'random_token_string', User.find(1000001).security_token
224
- end
225
-
226
- def test_autologin_with_username_and_blank_password
227
- @request.cookies['autologin'] = {:value => ['no_password_user'], :expires =>30.days.from_now}
228
- get :welcome
229
- assert_logged_in users(:no_password_user)
230
- assert_response :redirect
231
- assert_redirected_to :controller => 'welcome'
232
- end
233
-
234
- def test_autologin_with_token
235
- @request.cookies['autologin'] = {:value => ['1000007'], :expires =>30.days.from_now}
236
- @request.cookies['token'] = {:value => ['random_token_string'], :expires =>30.days.from_now}
237
- get :welcome
238
- assert_logged_in users(:no_password_user)
239
- assert_response :redirect
240
- assert_redirected_to :controller => 'welcome'
241
- end
242
-
243
- def test_autologin_unverified_user_with_token
244
- @request.cookies['autologin'] = {:value => ['1000007'], :expires => 30.days.from_now}
245
- @request.cookies['token'] = {:value => ['random_token_string'], :expires => 30.days.from_now}
246
- get :welcome
247
- assert_logged_in users(:no_password_user)
248
- assert current_user.verified?
249
- assert_response :redirect
250
- assert_redirected_to :controller => 'welcome'
251
- end
252
-
253
- private
254
-
255
- # TODO (uwe): This method should be removed
256
- # It is here only because ClassTableInheritanceInRails broke reading fixtures by name
257
- def users(login)
258
- super(login)
259
- end
260
-
261
- end