admin_assistant 2.0.1 → 2.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (400) hide show
  1. data/Rakefile +5 -14
  2. data/VERSION +1 -1
  3. data/admin_assistant.gemspec +174 -388
  4. data/lib/admin_assistant/column.rb +2 -2
  5. data/lib/admin_assistant/has_many_column.rb +6 -1
  6. data/lib/admin_assistant/polymorphic_belongs_to_column.rb +5 -1
  7. data/lib/admin_assistant.rb +4 -5
  8. data/{rails_3_test → rails_3_0}/.gitignore +0 -0
  9. data/{rails_3_test → rails_3_0}/Gemfile +0 -0
  10. data/{rails_3_test → rails_3_0}/Gemfile.lock +1 -1
  11. data/{rails_3_test → rails_3_0}/README +0 -0
  12. data/{rails_3_test → rails_3_0}/Rakefile +0 -0
  13. data/{rails_2_test → rails_3_0}/app/controllers/admin/appointments2_controller.rb +0 -0
  14. data/{rails_2_test → rails_3_0}/app/controllers/admin/appointments_controller.rb +0 -0
  15. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts2_controller.rb +0 -0
  16. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts3_controller.rb +0 -0
  17. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts4_controller.rb +0 -0
  18. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts5_controller.rb +0 -0
  19. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts6_controller.rb +0 -0
  20. data/{rails_3_test → rails_3_0}/app/controllers/admin/blog_posts_controller.rb +0 -0
  21. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -0
  22. data/{rails_2_test → rails_3_0}/app/controllers/admin/blog_posts_read_only_controller.rb +0 -0
  23. data/{rails_2_test → rails_3_0}/app/controllers/admin/bookmarks_controller.rb +0 -0
  24. data/{rails_2_test → rails_3_0}/app/controllers/admin/comments2_controller.rb +0 -0
  25. data/{rails_2_test → rails_3_0}/app/controllers/admin/comments_controller.rb +0 -0
  26. data/{rails_2_test → rails_3_0}/app/controllers/admin/images2_controller.rb +0 -0
  27. data/{rails_2_test → rails_3_0}/app/controllers/admin/images_controller.rb +0 -0
  28. data/{rails_2_test → rails_3_0}/app/controllers/admin/misconfigured1_controller.rb +0 -0
  29. data/{rails_2_test → rails_3_0}/app/controllers/admin/not_migrated_yets_controller.rb +0 -0
  30. data/{rails_2_test → rails_3_0}/app/controllers/admin/product_categories2_controller.rb +0 -0
  31. data/{rails_2_test → rails_3_0}/app/controllers/admin/product_categories_controller.rb +0 -0
  32. data/{rails_2_test → rails_3_0}/app/controllers/admin/television_airings_controller.rb +0 -0
  33. data/{rails_2_test → rails_3_0}/app/controllers/admin/television_time_slots_controller.rb +0 -0
  34. data/{rails_2_test → rails_3_0}/app/controllers/admin/users2_controller.rb +0 -0
  35. data/{rails_3_test → rails_3_0}/app/controllers/admin/users_controller.rb +0 -0
  36. data/{rails_3_test → rails_3_0}/app/controllers/application_controller.rb +0 -0
  37. data/{rails_2_test → rails_3_0}/app/controllers/blog_posts_controller.rb +0 -0
  38. data/{rails_2_test → rails_3_0}/app/helpers/admin/appointments_helper.rb +0 -0
  39. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts2_helper.rb +0 -0
  40. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts3_helper.rb +0 -0
  41. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts4_helper.rb +0 -0
  42. data/{rails_3_test → rails_3_0}/app/helpers/admin/blog_posts6_helper.rb +0 -0
  43. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -0
  44. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_helper.rb +0 -0
  45. data/{rails_2_test → rails_3_0}/app/helpers/admin/blog_posts_read_only_helper.rb +0 -0
  46. data/{rails_2_test → rails_3_0}/app/helpers/admin/bookmarks_helper.rb +0 -0
  47. data/{rails_2_test → rails_3_0}/app/helpers/admin/comments2_helper.rb +0 -0
  48. data/{rails_2_test → rails_3_0}/app/helpers/admin/comments_helper.rb +0 -0
  49. data/{rails_2_test → rails_3_0}/app/helpers/admin/images2_helper.rb +0 -0
  50. data/{rails_2_test → rails_3_0}/app/helpers/admin/images_helper.rb +0 -0
  51. data/{rails_2_test → rails_3_0}/app/helpers/admin/misconfigured1_helper.rb +0 -0
  52. data/{rails_2_test → rails_3_0}/app/helpers/admin/not_migrated_yets_helper.rb +0 -0
  53. data/{rails_2_test → rails_3_0}/app/helpers/admin/product_categories2_helper.rb +0 -0
  54. data/{rails_2_test → rails_3_0}/app/helpers/admin/product_categories_helper.rb +0 -0
  55. data/{rails_2_test → rails_3_0}/app/helpers/admin/television_airings_helper.rb +0 -0
  56. data/{rails_2_test → rails_3_0}/app/helpers/admin/television_time_slots_helper.rb +0 -0
  57. data/{rails_2_test → rails_3_0}/app/helpers/admin/users2_helper.rb +0 -0
  58. data/{rails_3_test → rails_3_0}/app/helpers/admin/users_helper.rb +0 -0
  59. data/{rails_3_test → rails_3_0}/app/helpers/application_helper.rb +0 -0
  60. data/{rails_2_test → rails_3_0}/app/models/appointment.rb +0 -0
  61. data/{rails_2_test → rails_3_0}/app/models/blog_post.rb +0 -0
  62. data/{rails_2_test → rails_3_0}/app/models/blog_post_tag.rb +0 -0
  63. data/{rails_2_test → rails_3_0}/app/models/bookmark.rb +0 -0
  64. data/{rails_2_test → rails_3_0}/app/models/comment.rb +0 -0
  65. data/{rails_2_test → rails_3_0}/app/models/image.rb +0 -0
  66. data/{rails_2_test → rails_3_0}/app/models/not_migrated_yet.rb +0 -0
  67. data/{rails_3_test → rails_3_0}/app/models/product.rb +0 -0
  68. data/{rails_2_test → rails_3_0}/app/models/product_category.rb +0 -0
  69. data/{rails_2_test → rails_3_0}/app/models/tag.rb +0 -0
  70. data/{rails_2_test → rails_3_0}/app/models/television_airing.rb +0 -0
  71. data/{rails_2_test → rails_3_0}/app/models/television_time_slot.rb +0 -0
  72. data/{rails_3_test → rails_3_0}/app/models/user.rb +0 -0
  73. data/{rails_2_test → rails_3_0}/app/views/admin/appointments/_subject_input.html.erb +0 -0
  74. data/{rails_2_test → rails_3_0}/app/views/admin/appointments2/_time_input.html.erb +0 -0
  75. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_form.html.erb +0 -0
  76. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_index.html.erb +0 -0
  77. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -0
  78. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts2/_before_index.html.erb +0 -0
  79. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -0
  80. data/{rails_2_test → rails_3_0}/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -0
  81. data/{rails_3_test → rails_3_0}/app/views/layouts/admin.html.erb +0 -0
  82. data/{rails_3_test → rails_3_0}/app/views/layouts/application.html.erb +0 -0
  83. data/{rails_3_test → rails_3_0}/config/application.rb +0 -0
  84. data/{rails_3_test → rails_3_0}/config/boot.rb +0 -0
  85. data/{rails_3_test → rails_3_0}/config/database.yml +0 -0
  86. data/{rails_3_test → rails_3_0}/config/environment.rb +0 -0
  87. data/{rails_3_test → rails_3_0}/config/environments/development.rb +0 -1
  88. data/{rails_3_test → rails_3_0}/config/environments/production.rb +0 -0
  89. data/{rails_3_test → rails_3_0}/config/environments/test.rb +0 -0
  90. data/{rails_3_test → rails_3_0}/config/initializers/backtrace_silencers.rb +0 -0
  91. data/{rails_3_test → rails_3_0}/config/initializers/inflections.rb +0 -0
  92. data/{rails_2_test → rails_3_0}/config/initializers/mime_types.rb +0 -0
  93. data/{rails_3_test → rails_3_0}/config/initializers/secret_token.rb +0 -0
  94. data/{rails_3_test → rails_3_0}/config/initializers/session_store.rb +0 -0
  95. data/{rails_3_test → rails_3_0}/config/locales/en.yml +0 -0
  96. data/rails_3_0/config/routes.rb +8 -0
  97. data/{rails_3_test → rails_3_0}/config.ru +0 -0
  98. data/{rails_2_test → rails_3_0}/db/migrate/20090213215514_create_blog_posts.rb +0 -0
  99. data/{rails_2_test → rails_3_0}/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -0
  100. data/{rails_2_test → rails_3_0}/db/migrate/20090221220917_create_tags.rb +0 -0
  101. data/{rails_2_test → rails_3_0}/db/migrate/20090221220947_create_blog_post_tags.rb +0 -0
  102. data/{rails_2_test → rails_3_0}/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -0
  103. data/{rails_2_test → rails_3_0}/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -0
  104. data/{rails_2_test → rails_3_0}/db/migrate/20090301191722_create_images.rb +0 -0
  105. data/{rails_2_test → rails_3_0}/db/migrate/20090305165345_create_accounts.rb +0 -0
  106. data/{rails_2_test → rails_3_0}/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -0
  107. data/{rails_2_test → rails_3_0}/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -0
  108. data/{rails_2_test → rails_3_0}/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -0
  109. data/{rails_2_test → rails_3_0}/db/migrate/20090309193635_create_products.rb +0 -0
  110. data/{rails_2_test → rails_3_0}/db/migrate/20090309203056_create_comments.rb +0 -0
  111. data/{rails_2_test → rails_3_0}/db/migrate/20090323005947_create_file_column_images.rb +0 -0
  112. data/{rails_2_test → rails_3_0}/db/migrate/20090326160049_add_birthday_to_users.rb +0 -0
  113. data/{rails_2_test → rails_3_0}/db/migrate/20090326223606_add_state_to_users.rb +0 -0
  114. data/{rails_2_test → rails_3_0}/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -0
  115. data/{rails_2_test → rails_3_0}/db/migrate/20090617173651_create_bookmarks.rb +0 -0
  116. data/{rails_2_test → rails_3_0}/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -0
  117. data/{rails_2_test → rails_3_0}/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -0
  118. data/{rails_2_test → rails_3_0}/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -0
  119. data/{rails_2_test → rails_3_0}/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -0
  120. data/{rails_2_test → rails_3_0}/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -0
  121. data/{rails_2_test → rails_3_0}/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -0
  122. data/{rails_2_test → rails_3_0}/db/migrate/20090714024501_create_product_categories.rb +0 -0
  123. data/{rails_2_test → rails_3_0}/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -0
  124. data/{rails_2_test → rails_3_0}/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -0
  125. data/{rails_2_test → rails_3_0}/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -0
  126. data/{rails_2_test → rails_3_0}/db/migrate/20091222160814_create_appointments.rb +0 -0
  127. data/{rails_2_test → rails_3_0}/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -0
  128. data/{rails_2_test → rails_3_0}/db/migrate/20100214213359_create_television_time_slots.rb +0 -0
  129. data/{rails_2_test → rails_3_0}/db/migrate/20100214213451_create_television_airings.rb +0 -0
  130. data/{rails_3_test → rails_3_0}/db/migrate/20110426215702_remove_avatar_fields_from_users.rb +0 -0
  131. data/{rails_3_test → rails_3_0}/db/seeds.rb +0 -0
  132. data/{rails_3_test → rails_3_0}/doc/README_FOR_APP +0 -0
  133. data/{rails_3_test → rails_3_0}/lib/tasks/.gitkeep +0 -0
  134. data/{rails_3_test → rails_3_0}/public/404.html +0 -0
  135. data/{rails_3_test → rails_3_0}/public/422.html +0 -0
  136. data/{rails_3_test → rails_3_0}/public/500.html +0 -0
  137. data/{rails_2_test → rails_3_0}/public/favicon.ico +0 -0
  138. data/{rails_2_test → rails_3_0}/public/images/rails.png +0 -0
  139. data/{rails_3_test → rails_3_0}/public/index.html +0 -0
  140. data/{rails_2_test → rails_3_0}/public/javascripts/application.js +0 -0
  141. data/{rails_2_test → rails_3_0}/public/javascripts/jquery-1.4.4.min.js +0 -0
  142. data/{rails_3_test → rails_3_0}/public/javascripts/rails.js +0 -0
  143. data/{rails_2_test → rails_3_0}/public/robots.txt +0 -0
  144. data/{rails_3_test → rails_3_0}/public/stylesheets/.gitkeep +0 -0
  145. data/{rails_2_test → rails_3_0}/public/stylesheets/admin.css +0 -0
  146. data/{rails_2_test → rails_3_0}/public/stylesheets/scaffold.css +0 -0
  147. data/{rails_3_test → rails_3_0}/script/rails +0 -0
  148. data/{rails_2_test → rails_3_0}/test/data/ruby_throated.jpg +0 -0
  149. data/{rails_2_test → rails_3_0}/test/data/tweenbot.jpg +0 -0
  150. data/{rails_3_test → rails_3_0}/test/fixtures/placeholder.txt +0 -0
  151. data/{rails_3_test → rails_3_0}/test/integration/admin/appointments2_integration_test.rb +0 -0
  152. data/{rails_3_test → rails_3_0}/test/integration/admin/appointments_integration_test.rb +0 -0
  153. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts2_integration_test.rb +2 -2
  154. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts3_integration_test.rb +0 -0
  155. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts4_integration_test.rb +0 -0
  156. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts5_integration_test.rb +0 -0
  157. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts6_integration_test.rb +0 -0
  158. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_custom_new_and_edit_integration_test.rb +0 -0
  159. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_integration_test.rb +8 -16
  160. data/{rails_3_test → rails_3_0}/test/integration/admin/blog_posts_read_only_integration_test.rb +0 -0
  161. data/{rails_3_test → rails_3_0}/test/integration/admin/bookmarks_integration_test.rb +0 -0
  162. data/{rails_3_test → rails_3_0}/test/integration/admin/comments2_integration_test.rb +0 -0
  163. data/{rails_3_test → rails_3_0}/test/integration/admin/comments_integration_test.rb +0 -0
  164. data/{rails_2_test → rails_3_0}/test/integration/admin/images2_integration_test.rb +0 -0
  165. data/{rails_3_test → rails_3_0}/test/integration/admin/images_integration_test.rb +0 -0
  166. data/{rails_3_test → rails_3_0}/test/integration/admin/misconfigured1_integration_test.rb +0 -0
  167. data/{rails_3_test → rails_3_0}/test/integration/admin/product_categories2_integration_test.rb +0 -0
  168. data/{rails_2_test → rails_3_0}/test/integration/admin/product_categories_integration_test.rb +0 -0
  169. data/{rails_2_test → rails_3_0}/test/integration/admin/television_airings_integration_test.rb +0 -0
  170. data/{rails_2_test → rails_3_0}/test/integration/admin/users2_integration_test.rb +0 -0
  171. data/{rails_3_test → rails_3_0}/test/integration/admin/users_integration_test.rb +0 -0
  172. data/{rails_3_test → rails_3_0}/test/integration/blog_posts_integration_test.rb +0 -0
  173. data/{rails_3_test → rails_3_0}/test/performance/browsing_test.rb +0 -0
  174. data/{rails_3_test → rails_3_0}/test/test_helper.rb +40 -0
  175. data/{rails_3_test → rails_3_0}/vendor/plugins/.gitkeep +0 -0
  176. data/rails_3_1/Gemfile +12 -0
  177. data/rails_3_1/Gemfile.lock +116 -0
  178. data/rails_3_1/README +256 -0
  179. data/{rails_2_test → rails_3_1}/Rakefile +2 -8
  180. data/rails_3_1/config.ru +4 -0
  181. metadata +176 -390
  182. data/lib/admin_assistant/date_time_range_end_point_selector.rb +0 -341
  183. data/rails_2_test/README +0 -256
  184. data/rails_2_test/app/controllers/admin/blog_posts_controller.rb +0 -8
  185. data/rails_2_test/app/controllers/admin/file_column_images2_controller.rb +0 -10
  186. data/rails_2_test/app/controllers/admin/file_column_images_controller.rb +0 -6
  187. data/rails_2_test/app/controllers/admin/products2_controller.rb +0 -15
  188. data/rails_2_test/app/controllers/admin/products_controller.rb +0 -31
  189. data/rails_2_test/app/controllers/admin/users_controller.rb +0 -63
  190. data/rails_2_test/app/controllers/application.rb +0 -16
  191. data/rails_2_test/app/controllers/application_controller.rb +0 -16
  192. data/rails_2_test/app/helpers/admin/appointments2_helper.rb +0 -2
  193. data/rails_2_test/app/helpers/admin/blog_posts6_helper.rb +0 -16
  194. data/rails_2_test/app/helpers/admin/file_column_images2_helper.rb +0 -2
  195. data/rails_2_test/app/helpers/admin/file_column_images_helper.rb +0 -2
  196. data/rails_2_test/app/helpers/admin/products2_helper.rb +0 -3
  197. data/rails_2_test/app/helpers/admin/products_helper.rb +0 -6
  198. data/rails_2_test/app/helpers/admin/users_helper.rb +0 -25
  199. data/rails_2_test/app/helpers/application_helper.rb +0 -3
  200. data/rails_2_test/app/helpers/blog_posts_helper.rb +0 -2
  201. data/rails_2_test/app/models/file_column_image.rb +0 -3
  202. data/rails_2_test/app/models/product.rb +0 -7
  203. data/rails_2_test/app/models/user.rb +0 -14
  204. data/rails_2_test/app/views/admin/products/_name_input.html.erb +0 -2
  205. data/rails_2_test/app/views/admin/products/_percent_off_input.html.erb +0 -2
  206. data/rails_2_test/app/views/admin/products/_price_input.html.erb +0 -10
  207. data/rails_2_test/app/views/blog_posts/show.html.erb +0 -13
  208. data/rails_2_test/app/views/layouts/admin.html.erb +0 -31
  209. data/rails_2_test/config/boot.rb +0 -109
  210. data/rails_2_test/config/database.yml +0 -28
  211. data/rails_2_test/config/environment.rb +0 -78
  212. data/rails_2_test/config/environments/development.rb +0 -17
  213. data/rails_2_test/config/environments/production.rb +0 -24
  214. data/rails_2_test/config/environments/test.rb +0 -24
  215. data/rails_2_test/config/initializers/inflections.rb +0 -10
  216. data/rails_2_test/config/initializers/new_rails_defaults.rb +0 -17
  217. data/rails_2_test/config/locales/en.yml +0 -5
  218. data/rails_2_test/config/routes.rb +0 -43
  219. data/rails_2_test/doc/README_FOR_APP +0 -5
  220. data/rails_2_test/lib/tasks/rspec.rake +0 -163
  221. data/rails_2_test/public/404.html +0 -30
  222. data/rails_2_test/public/422.html +0 -30
  223. data/rails_2_test/public/500.html +0 -33
  224. data/rails_2_test/public/dispatch.cgi +0 -10
  225. data/rails_2_test/public/dispatch.fcgi +0 -24
  226. data/rails_2_test/public/dispatch.rb +0 -10
  227. data/rails_2_test/public/index.html +0 -274
  228. data/rails_2_test/script/about +0 -4
  229. data/rails_2_test/script/autospec +0 -5
  230. data/rails_2_test/script/console +0 -3
  231. data/rails_2_test/script/dbconsole +0 -3
  232. data/rails_2_test/script/destroy +0 -3
  233. data/rails_2_test/script/generate +0 -3
  234. data/rails_2_test/script/performance/benchmarker +0 -3
  235. data/rails_2_test/script/performance/profiler +0 -3
  236. data/rails_2_test/script/performance/request +0 -3
  237. data/rails_2_test/script/plugin +0 -3
  238. data/rails_2_test/script/populate_tables.rb +0 -49
  239. data/rails_2_test/script/process/inspector +0 -3
  240. data/rails_2_test/script/process/reaper +0 -3
  241. data/rails_2_test/script/process/spawner +0 -3
  242. data/rails_2_test/script/runner +0 -3
  243. data/rails_2_test/script/server +0 -3
  244. data/rails_2_test/script/spec +0 -5
  245. data/rails_2_test/script/spec_server +0 -125
  246. data/rails_2_test/test/fixtures/file_column_images.yml +0 -7
  247. data/rails_2_test/test/integration/admin/appointments2_integration_test.rb +0 -79
  248. data/rails_2_test/test/integration/admin/appointments_integration_test.rb +0 -367
  249. data/rails_2_test/test/integration/admin/blog_posts2_integration_test.rb +0 -806
  250. data/rails_2_test/test/integration/admin/blog_posts3_integration_test.rb +0 -418
  251. data/rails_2_test/test/integration/admin/blog_posts4_integration_test.rb +0 -189
  252. data/rails_2_test/test/integration/admin/blog_posts5_integration_test.rb +0 -75
  253. data/rails_2_test/test/integration/admin/blog_posts6_integration_test.rb +0 -39
  254. data/rails_2_test/test/integration/admin/blog_posts_custom_new_and_edit_integration_test.rb +0 -89
  255. data/rails_2_test/test/integration/admin/blog_posts_integration_test.rb +0 -788
  256. data/rails_2_test/test/integration/admin/blog_posts_read_only_integration_test.rb +0 -69
  257. data/rails_2_test/test/integration/admin/bookmarks_integration_test.rb +0 -445
  258. data/rails_2_test/test/integration/admin/comments2_integration_test.rb +0 -52
  259. data/rails_2_test/test/integration/admin/comments_integration_test.rb +0 -50
  260. data/rails_2_test/test/integration/admin/file_column_images2_integration_test.rb +0 -19
  261. data/rails_2_test/test/integration/admin/file_column_images_integration_test.rb +0 -69
  262. data/rails_2_test/test/integration/admin/images_integration_test.rb +0 -79
  263. data/rails_2_test/test/integration/admin/misconfigured1_integration_test.rb +0 -17
  264. data/rails_2_test/test/integration/admin/product_categories2_integration_test.rb +0 -179
  265. data/rails_2_test/test/integration/admin/products2_integration_test.rb +0 -155
  266. data/rails_2_test/test/integration/admin/products_integration_test.rb +0 -210
  267. data/rails_2_test/test/integration/admin/users_integration_test.rb +0 -266
  268. data/rails_2_test/test/integration/blog_posts_integration_test.rb +0 -9
  269. data/rails_2_test/test/test_helper.rb +0 -114
  270. data/rails_2_test/vendor/plugins/file_column/CHANGELOG +0 -69
  271. data/rails_2_test/vendor/plugins/file_column/README +0 -54
  272. data/rails_2_test/vendor/plugins/file_column/Rakefile +0 -36
  273. data/rails_2_test/vendor/plugins/file_column/TODO +0 -6
  274. data/rails_2_test/vendor/plugins/file_column/init.rb +0 -13
  275. data/rails_2_test/vendor/plugins/file_column/lib/file_column.rb +0 -723
  276. data/rails_2_test/vendor/plugins/file_column/lib/file_column_helper.rb +0 -150
  277. data/rails_2_test/vendor/plugins/file_column/lib/file_compat.rb +0 -28
  278. data/rails_2_test/vendor/plugins/file_column/lib/magick_file_column.rb +0 -260
  279. data/rails_2_test/vendor/plugins/file_column/lib/rails_file_column.rb +0 -19
  280. data/rails_2_test/vendor/plugins/file_column/lib/test_case.rb +0 -124
  281. data/rails_2_test/vendor/plugins/file_column/lib/validations.rb +0 -112
  282. data/rails_2_test/vendor/plugins/file_column/test/abstract_unit.rb +0 -63
  283. data/rails_2_test/vendor/plugins/file_column/test/connection.rb +0 -17
  284. data/rails_2_test/vendor/plugins/file_column/test/file_column_helper_test.rb +0 -97
  285. data/rails_2_test/vendor/plugins/file_column/test/file_column_test.rb +0 -650
  286. data/rails_2_test/vendor/plugins/file_column/test/fixtures/entry.rb +0 -32
  287. data/rails_2_test/vendor/plugins/file_column/test/fixtures/invalid-image.jpg +0 -1
  288. data/rails_2_test/vendor/plugins/file_column/test/fixtures/kerb.jpg +0 -0
  289. data/rails_2_test/vendor/plugins/file_column/test/fixtures/mysql.sql +0 -25
  290. data/rails_2_test/vendor/plugins/file_column/test/fixtures/schema.rb +0 -10
  291. data/rails_2_test/vendor/plugins/file_column/test/fixtures/skanthak.png +0 -0
  292. data/rails_2_test/vendor/plugins/file_column/test/magick_test.rb +0 -380
  293. data/rails_2_test/vendor/plugins/file_column/test/magick_view_only_test.rb +0 -21
  294. data/rails_3_test/app/controllers/admin/appointments2_controller.rb +0 -15
  295. data/rails_3_test/app/controllers/admin/appointments_controller.rb +0 -11
  296. data/rails_3_test/app/controllers/admin/blog_posts2_controller.rb +0 -138
  297. data/rails_3_test/app/controllers/admin/blog_posts3_controller.rb +0 -76
  298. data/rails_3_test/app/controllers/admin/blog_posts4_controller.rb +0 -21
  299. data/rails_3_test/app/controllers/admin/blog_posts5_controller.rb +0 -27
  300. data/rails_3_test/app/controllers/admin/blog_posts6_controller.rb +0 -10
  301. data/rails_3_test/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -15
  302. data/rails_3_test/app/controllers/admin/blog_posts_read_only_controller.rb +0 -19
  303. data/rails_3_test/app/controllers/admin/bookmarks_controller.rb +0 -11
  304. data/rails_3_test/app/controllers/admin/comments2_controller.rb +0 -14
  305. data/rails_3_test/app/controllers/admin/comments_controller.rb +0 -12
  306. data/rails_3_test/app/controllers/admin/images2_controller.rb +0 -11
  307. data/rails_3_test/app/controllers/admin/images_controller.rb +0 -6
  308. data/rails_3_test/app/controllers/admin/misconfigured1_controller.rb +0 -7
  309. data/rails_3_test/app/controllers/admin/not_migrated_yets_controller.rb +0 -9
  310. data/rails_3_test/app/controllers/admin/product_categories2_controller.rb +0 -7
  311. data/rails_3_test/app/controllers/admin/product_categories_controller.rb +0 -5
  312. data/rails_3_test/app/controllers/admin/television_airings_controller.rb +0 -5
  313. data/rails_3_test/app/controllers/admin/television_time_slots_controller.rb +0 -5
  314. data/rails_3_test/app/controllers/admin/users2_controller.rb +0 -10
  315. data/rails_3_test/app/controllers/blog_posts_controller.rb +0 -5
  316. data/rails_3_test/app/helpers/admin/appointments_helper.rb +0 -2
  317. data/rails_3_test/app/helpers/admin/blog_posts2_helper.rb +0 -27
  318. data/rails_3_test/app/helpers/admin/blog_posts3_helper.rb +0 -2
  319. data/rails_3_test/app/helpers/admin/blog_posts4_helper.rb +0 -2
  320. data/rails_3_test/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -29
  321. data/rails_3_test/app/helpers/admin/blog_posts_helper.rb +0 -2
  322. data/rails_3_test/app/helpers/admin/blog_posts_read_only_helper.rb +0 -2
  323. data/rails_3_test/app/helpers/admin/bookmarks_helper.rb +0 -2
  324. data/rails_3_test/app/helpers/admin/comments2_helper.rb +0 -2
  325. data/rails_3_test/app/helpers/admin/comments_helper.rb +0 -2
  326. data/rails_3_test/app/helpers/admin/images2_helper.rb +0 -8
  327. data/rails_3_test/app/helpers/admin/images_helper.rb +0 -2
  328. data/rails_3_test/app/helpers/admin/misconfigured1_helper.rb +0 -2
  329. data/rails_3_test/app/helpers/admin/not_migrated_yets_helper.rb +0 -2
  330. data/rails_3_test/app/helpers/admin/product_categories2_helper.rb +0 -2
  331. data/rails_3_test/app/helpers/admin/product_categories_helper.rb +0 -2
  332. data/rails_3_test/app/helpers/admin/television_airings_helper.rb +0 -2
  333. data/rails_3_test/app/helpers/admin/television_time_slots_helper.rb +0 -2
  334. data/rails_3_test/app/helpers/admin/users2_helper.rb +0 -2
  335. data/rails_3_test/app/models/appointment.rb +0 -5
  336. data/rails_3_test/app/models/blog_post.rb +0 -14
  337. data/rails_3_test/app/models/blog_post_tag.rb +0 -6
  338. data/rails_3_test/app/models/bookmark.rb +0 -6
  339. data/rails_3_test/app/models/comment.rb +0 -4
  340. data/rails_3_test/app/models/image.rb +0 -3
  341. data/rails_3_test/app/models/not_migrated_yet.rb +0 -2
  342. data/rails_3_test/app/models/product_category.rb +0 -9
  343. data/rails_3_test/app/models/tag.rb +0 -4
  344. data/rails_3_test/app/models/television_airing.rb +0 -3
  345. data/rails_3_test/app/models/television_time_slot.rb +0 -11
  346. data/rails_3_test/app/views/admin/appointments/_subject_input.html.erb +0 -2
  347. data/rails_3_test/app/views/admin/appointments2/_time_input.html.erb +0 -31
  348. data/rails_3_test/app/views/admin/blog_posts2/_after_form.html.erb +0 -5
  349. data/rails_3_test/app/views/admin/blog_posts2/_after_index.html.erb +0 -1
  350. data/rails_3_test/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -16
  351. data/rails_3_test/app/views/admin/blog_posts2/_before_index.html.erb +0 -2
  352. data/rails_3_test/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -8
  353. data/rails_3_test/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -1
  354. data/rails_3_test/config/initializers/mime_types.rb +0 -5
  355. data/rails_3_test/config/routes.rb +0 -63
  356. data/rails_3_test/db/migrate/20090213215514_create_blog_posts.rb +0 -12
  357. data/rails_3_test/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -9
  358. data/rails_3_test/db/migrate/20090221220917_create_tags.rb +0 -13
  359. data/rails_3_test/db/migrate/20090221220947_create_blog_post_tags.rb +0 -14
  360. data/rails_3_test/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -9
  361. data/rails_3_test/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -9
  362. data/rails_3_test/db/migrate/20090301191722_create_images.rb +0 -16
  363. data/rails_3_test/db/migrate/20090305165345_create_accounts.rb +0 -14
  364. data/rails_3_test/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -9
  365. data/rails_3_test/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -9
  366. data/rails_3_test/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -9
  367. data/rails_3_test/db/migrate/20090309193635_create_products.rb +0 -14
  368. data/rails_3_test/db/migrate/20090309203056_create_comments.rb +0 -15
  369. data/rails_3_test/db/migrate/20090323005947_create_file_column_images.rb +0 -12
  370. data/rails_3_test/db/migrate/20090326160049_add_birthday_to_users.rb +0 -9
  371. data/rails_3_test/db/migrate/20090326223606_add_state_to_users.rb +0 -9
  372. data/rails_3_test/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -9
  373. data/rails_3_test/db/migrate/20090617173651_create_bookmarks.rb +0 -15
  374. data/rails_3_test/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -9
  375. data/rails_3_test/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -11
  376. data/rails_3_test/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -9
  377. data/rails_3_test/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -9
  378. data/rails_3_test/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -9
  379. data/rails_3_test/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -13
  380. data/rails_3_test/db/migrate/20090714024501_create_product_categories.rb +0 -15
  381. data/rails_3_test/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -9
  382. data/rails_3_test/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -11
  383. data/rails_3_test/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -9
  384. data/rails_3_test/db/migrate/20091222160814_create_appointments.rb +0 -14
  385. data/rails_3_test/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -9
  386. data/rails_3_test/db/migrate/20100214213359_create_television_time_slots.rb +0 -13
  387. data/rails_3_test/db/migrate/20100214213451_create_television_airings.rb +0 -15
  388. data/rails_3_test/public/favicon.ico +0 -0
  389. data/rails_3_test/public/images/rails.png +0 -0
  390. data/rails_3_test/public/javascripts/application.js +0 -2
  391. data/rails_3_test/public/javascripts/jquery-1.4.4.min.js +0 -167
  392. data/rails_3_test/public/robots.txt +0 -5
  393. data/rails_3_test/public/stylesheets/admin.css +0 -3
  394. data/rails_3_test/public/stylesheets/scaffold.css +0 -54
  395. data/rails_3_test/test/data/ruby_throated.jpg +0 -0
  396. data/rails_3_test/test/data/tweenbot.jpg +0 -0
  397. data/rails_3_test/test/integration/admin/images2_integration_test.rb +0 -33
  398. data/rails_3_test/test/integration/admin/product_categories_integration_test.rb +0 -12
  399. data/rails_3_test/test/integration/admin/television_airings_integration_test.rb +0 -25
  400. data/rails_3_test/test/integration/admin/users2_integration_test.rb +0 -48
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require 'config/boot'
4
- require 'config/environment'
5
-
6
- def random_word
7
- @chars ||= 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'.
8
- split(//)
9
- (1..25).to_a.map { @chars[rand(@chars.size)] }.join
10
- end
11
-
12
- belongs_to_associations = {
13
- BlogPost => [User], Comment => [User, BlogPost]
14
- }
15
- has_many_associations = {BlogPost => [Tag]}
16
- [Tag, User, Product, BlogPost, Comment].each do |model_class|
17
- if model_class == User
18
- string_text_columns = model_class.columns.select { |c|
19
- [:string, :text].include?(c.type)
20
- }
21
- count = model_class.count
22
- max = model_class == BlogPost ? 251 : 100
23
- count.upto(max) do
24
- saved = false
25
- until saved
26
- atts = {}
27
- string_text_columns.each do |c|
28
- atts[c.name] = random_word
29
- end
30
- if belongs_to_associations[model_class]
31
- belongs_to_associations[model_class].each do |assoc_model|
32
- atts[assoc_model.name.underscore] = assoc_model.find(
33
- :first, :order => 'rand()'
34
- )
35
- end
36
- end
37
- if has_many_associations[model_class]
38
- has_many_associations[model_class].each do |assoc_model|
39
- atts[assoc_model.name.underscore.pluralize] = (1..5).to_a.map {
40
- assoc_model.find :first, :order => 'rand()'
41
- }.uniq
42
- end
43
- end
44
- model = model_class.new atts
45
- saved = model.save!
46
- end
47
- end
48
- end
49
- end
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../config/boot'
3
- require 'commands/process/inspector'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../config/boot'
3
- require 'commands/process/reaper'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../../config/boot'
3
- require 'commands/process/spawner'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/runner'
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.dirname(__FILE__) + '/../config/boot'
3
- require 'commands/server'
@@ -1,5 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH.unshift(File.expand_path(File.dirname(__FILE__) + "/../vendor/plugins/rspec/lib"))
3
- require 'rubygems'
4
- require 'spec'
5
- exit ::Spec::Runner::CommandLine.run(::Spec::Runner::OptionParser.parse(ARGV, STDERR, STDOUT))
@@ -1,125 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH.unshift File.dirname(__FILE__) + '/../vendor/plugins/rspec/lib' # For rspec installed as plugin
3
- require 'rubygems'
4
- require 'drb/drb'
5
- require 'rbconfig'
6
- require 'spec'
7
- require 'optparse'
8
-
9
- # This is based on Florian Weber's TDDMate
10
- module Spec
11
- module Runner
12
- class RailsSpecServer
13
- def run(argv, stderr, stdout)
14
- $stdout = stdout
15
- $stderr = stderr
16
-
17
- unless ActiveRecord::Base.respond_to?(:clear_reloadable_connections!)
18
- base = ActiveRecord::Base
19
- def base.clear_reloadable_connections!
20
- active_connections.each do |name, conn|
21
- if conn.requires_reloading?
22
- conn.disconnect!
23
- active_connections.delete(name)
24
- end
25
- end
26
- end
27
- end
28
-
29
- ActiveRecord::Base.clear_reloadable_connections!
30
-
31
- if ActionController.const_defined?(:Dispatcher)
32
- dispatcher = ::ActionController::Dispatcher.new($stdout)
33
- dispatcher.cleanup_application
34
- elsif ::Dispatcher.respond_to?(:reset_application!)
35
- ::Dispatcher.reset_application!
36
- else
37
- raise "Application reloading failed"
38
- end
39
- if Object.const_defined?(:Fixtures) && Fixtures.respond_to?(:reset_cache)
40
- Fixtures.reset_cache
41
- end
42
-
43
- if ::ActiveSupport.const_defined?(:Dependencies)
44
- ::ActiveSupport::Dependencies.mechanism = :load
45
- else
46
- ::Dependencies.mechanism = :load
47
- end
48
-
49
- require_dependency('application.rb') unless Object.const_defined?(:ApplicationController)
50
- load File.dirname(__FILE__) + '/../spec/spec_helper.rb'
51
-
52
- if in_memory_database?
53
- load "#{RAILS_ROOT}/db/schema.rb" # use db agnostic schema by default
54
- ActiveRecord::Migrator.up('db/migrate') # use migrations
55
- end
56
-
57
- ::Spec::Runner::CommandLine.run(
58
- ::Spec::Runner::OptionParser.parse(
59
- argv,
60
- $stderr,
61
- $stdout
62
- )
63
- )
64
- end
65
-
66
- def in_memory_database?
67
- ENV["RAILS_ENV"] == "test" and
68
- ::ActiveRecord::Base.connection.class.to_s == "ActiveRecord::ConnectionAdapters::SQLite3Adapter" and
69
- ::Rails::Configuration.new.database_configuration['test']['database'] == ':memory:'
70
- end
71
- end
72
- end
73
- end
74
- puts "Loading Rails environment"
75
-
76
- ENV["RAILS_ENV"] = "test"
77
- require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
78
- require 'dispatcher'
79
-
80
- def restart_test_server
81
- puts "restarting"
82
- config = ::Config::CONFIG
83
- ruby = File::join(config['bindir'], config['ruby_install_name']) + config['EXEEXT']
84
- command_line = [ruby, $0, ARGV].flatten.join(' ')
85
- exec(command_line)
86
- end
87
-
88
- def daemonize(pid_file = nil)
89
- return yield if $DEBUG
90
- pid = Process.fork{
91
- Process.setsid
92
- Dir.chdir(RAILS_ROOT)
93
- trap("SIGINT"){ exit! 0 }
94
- trap("SIGTERM"){ exit! 0 }
95
- trap("SIGHUP"){ restart_test_server }
96
- File.open("/dev/null"){|f|
97
- STDERR.reopen f
98
- STDIN.reopen f
99
- STDOUT.reopen f
100
- }
101
- yield
102
- }
103
- puts "spec_server launched. (PID: %d)" % pid
104
- File.open(pid_file,"w"){|f| f.puts pid } if pid_file
105
- exit! 0
106
- end
107
-
108
- options = Hash.new
109
- opts = OptionParser.new
110
- opts.on("-d", "--daemon"){|v| options[:daemon] = true }
111
- opts.on("-p", "--pid PIDFILE"){|v| options[:pid] = v }
112
- opts.parse!(ARGV)
113
-
114
- puts "Ready"
115
- exec_server = lambda {
116
- trap("USR2") { restart_test_server } if Signal.list.has_key?("USR2")
117
- DRb.start_service("druby://127.0.0.1:8989", Spec::Runner::RailsSpecServer.new)
118
- DRb.thread.join
119
- }
120
-
121
- if options[:daemon]
122
- daemonize(options[:pid], &exec_server)
123
- else
124
- exec_server.call
125
- end
@@ -1,7 +0,0 @@
1
- # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
-
3
- # one:
4
- # column: value
5
- #
6
- # two:
7
- # column: value
@@ -1,79 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../test_helper")
2
-
3
- class Admin::Appointments2IntegrationTest < ActionController::IntegrationTest
4
- def test_create_with_2_new_appointments
5
- User.destroy_all
6
- @user1 = User.create! :username => random_word
7
- @user2 = User.create! :username => random_word
8
- Appointment.destroy_all
9
- post(
10
- "/admin/appointments2/create",
11
- :appointment => {
12
- 'a' => {
13
- 'subject' => 'Lunch with Dick', 'time(1-3i)' => '2010-01-04',
14
- 'time(4i)' => '12', 'time(5i)' => '00', 'user_id' => @user1.id
15
- },
16
- 'b' => {
17
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
18
- 'time(5i)' => ''
19
- },
20
- 'c' => {
21
- 'subject' => 'Dinner with Jane', 'time(1-3i)' => '2010-01-06',
22
- 'time(4i)' => '20', 'time(5i)' => '00', 'user_id' => @user2.id
23
- },
24
- 'd' => {
25
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
26
- 'time(5i)' => ''
27
- },
28
- 'e' => {
29
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
30
- 'time(5i)' => ''
31
- },
32
- 'f' => {
33
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
34
- 'time(5i)' => ''
35
- },
36
- 'g' => {
37
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
38
- 'time(5i)' => ''
39
- },
40
- 'h' => {
41
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
42
- 'time(5i)' => ''
43
- },
44
- 'i' => {
45
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
46
- 'time(5i)' => ''
47
- },
48
- 'j' => {
49
- 'subject' => '', 'time(1-3i)' => '', 'time(4i)' => '',
50
- 'time(5i)' => ''
51
- }
52
- }
53
- )
54
- # should save 2 new appointments with the correct times
55
- assert_equal(2, Appointment.count)
56
- assert(
57
- Appointment.all.any? { |appt|
58
- appt.subject == 'Lunch with Dick' and
59
- appt.time == Time.utc(2010, 1, 4, 12, 0) and appt.user == @user1
60
- }
61
- )
62
- assert(
63
- Appointment.all.any? { |appt|
64
- appt.subject == 'Dinner with Jane' and
65
- appt.time == Time.utc(2010, 1, 6, 20, 0) and appt.user == @user2
66
- }
67
- )
68
- end
69
-
70
- def test_new
71
- get "/admin/appointments2/new"
72
- # should use _time_input.html.erb to show a custom time widget
73
- assert_select('select[name=?]', 'appointment[a][time(1-3i)]') do
74
- assert_select(
75
- "option[value=?]", "2010-01-04", :text => 'Mon Jan 04 2010'
76
- )
77
- end
78
- end
79
- end
@@ -1,367 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../test_helper")
2
-
3
- class Admin::AppointmentsIntegrationTest < ActionController::IntegrationTest
4
- def test_create_with_2_new_appointments
5
- User.destroy_all
6
- @user1 = User.create! :username => random_word
7
- @user2 = User.create! :username => random_word
8
- Appointment.destroy_all
9
- post(
10
- "/admin/appointments/create",
11
- :appointment => {
12
- 'a' => {
13
- 'subject' => 'Lunch with Dick', 'time(1i)' => '2010',
14
- 'time(2i)' => '1', 'time(3i)' => '4', 'time(4i)' => '12',
15
- 'time(5i)' => '00', 'user_id' => @user1.id
16
- },
17
- 'b' => {
18
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
19
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
20
- },
21
- 'c' => {
22
- 'subject' => 'Dinner with Jane', 'time(1i)' => '2010',
23
- 'time(2i)' => '1', 'time(3i)' => '6', 'time(4i)' => '20',
24
- 'time(5i)' => '00', 'user_id' => @user2.id
25
- },
26
- 'd' => {
27
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
28
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
29
- },
30
- 'e' => {
31
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
32
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
33
- },
34
- 'f' => {
35
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
36
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
37
- },
38
- 'g' => {
39
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
40
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
41
- },
42
- 'h' => {
43
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
44
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
45
- },
46
- 'i' => {
47
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
48
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
49
- },
50
- 'j' => {
51
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
52
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
53
- }
54
- }
55
- )
56
- assert_response :redirect
57
- # should create those two new appointments
58
- assert_equal(2, Appointment.count)
59
- assert(
60
- Appointment.all.any? { |appt|
61
- appt.subject == 'Lunch with Dick' and
62
- appt.time == Time.utc(2010, 1, 4, 12, 0) and appt.user == @user1
63
- }
64
- )
65
- assert(
66
- Appointment.all.any? { |appt|
67
- appt.subject == 'Dinner with Jane' and
68
- appt.time == Time.utc(2010, 1, 6, 20, 0) and appt.user == @user2
69
- }
70
- )
71
- end
72
-
73
- def test_create_while_missing_a_user_id
74
- post(
75
- "/admin/appointments/create",
76
- :appointment => {
77
- 'a' => {
78
- 'subject' => 'Lunch with Dick', 'time(1i)' => '2010',
79
- 'time(2i)' => '1', 'time(3i)' => '4', 'time(4i)' => '12',
80
- 'time(5i)' => '00', 'user_id' => ''
81
- },
82
- 'b' => {
83
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
84
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
85
- },
86
- 'c' => {
87
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
88
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
89
- },
90
- 'd' => {
91
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
92
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
93
- },
94
- 'e' => {
95
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
96
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
97
- },
98
- 'f' => {
99
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
100
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
101
- },
102
- 'g' => {
103
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
104
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
105
- },
106
- 'h' => {
107
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
108
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
109
- },
110
- 'i' => {
111
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
112
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
113
- },
114
- 'j' => {
115
- 'subject' => '', 'time(1i)' => '', 'time(2i)' => '',
116
- 'time(3i)' => '', 'time(4i)' => '', 'time(5i)' => ''
117
- }
118
- }
119
- )
120
- # should show an error for user_id
121
- assert_response :success
122
- assert_match(/User can't be blank/, response.body)
123
- end
124
-
125
- def test_index
126
- user = User.first
127
- user ||= User.create!(:username => random_word)
128
- if Appointment.count == 0
129
- Appointment.create!(
130
- :subject => 'Lunch', :time => Time.utc(2010,2,18,13,0,0),
131
- :user => user
132
- )
133
- end
134
- get "/admin/appointments"
135
- # should show a search range widget
136
- assert_select('form#search_form') do
137
- %w(gt lt).each do |comparator|
138
- 1.upto(5) do |num|
139
- name = "search[time][#{comparator}(#{num}i)]"
140
- assert_select('select[name=?]', name) do
141
- assert_select "option[value='']"
142
- end
143
- end
144
- end
145
- end
146
- end
147
-
148
- def test_index_when_searching_for_an_appt_after_a_specific_time
149
- @user = User.first
150
- @user ||= User.create! :username => random_word
151
- @yesterday = 1.day.ago.to_date.to_time.utc
152
- @yesterdays_appt = Appointment.find_by_time @yesterday
153
- @yesterdays_appt ||= Appointment.create!(
154
- :subject => random_word, :user => @user, :time => @yesterday
155
- )
156
- @today = Time.now.to_date.to_time.utc
157
- @todays_appt = Appointment.find_by_time @today
158
- @todays_appt ||= Appointment.create!(
159
- :subject => random_word, :user => @user, :time => @today
160
- )
161
- @tomorrow = 1.day.from_now.to_date.to_time.utc
162
- @tomorrows_appt = Appointment.find_by_time @tomorrow
163
- @tomorrows_appt ||= Appointment.create!(
164
- :subject => random_word, :user => @user, :time => @tomorrow
165
- )
166
- get(
167
- "/admin/appointments",
168
- :search => {:time => {
169
- 'gt(1i)' => @today.year, 'gt(2i)' => @today.month,
170
- 'gt(3i)' => @today.day, 'gt(4i)' => @today.hour, 'gt(5i)' => '00',
171
- 'lt(1i)' => '', 'lt(2i)' => '', 'lt(3i)' => '', 'lt(4i)' => '',
172
- 'lt(5i)' => ''
173
- }}
174
- )
175
- assert_response :success
176
-
177
- # should prefill the search form fields
178
- assert_select('form#search_form') do
179
- assert_select('select[name=?]', 'search[time][gt(1i)]') do
180
- assert_select('option[value=?][selected=selected]', @today.year)
181
- end
182
- assert_select('select[name=?]', 'search[time][gt(2i)]') do
183
- assert_select('option[value=?][selected=selected]', @today.month)
184
- end
185
- assert_select('select[name=?]', 'search[time][gt(3i)]') do
186
- assert_select('option[value=?][selected=selected]', @today.day)
187
- end
188
- assert_select('select[name=?]', 'search[time][gt(4i)]') do
189
- assert_select(
190
- 'option[value=?][selected=selected]', sprintf('%02d', @today.hour)
191
- )
192
- end
193
- assert_select('select[name=?]', 'search[time][gt(5i)]') do
194
- assert_select('option[value=?][selected=selected]', '00')
195
- end
196
- end
197
-
198
- # should not show an appointment before that time
199
- assert_no_match(/#{@yesterdays_appt.subject}/, response.body)
200
-
201
- # should not show an appointment equal to that time
202
- assert_no_match(/#{@todays_appt.subject}/, response.body)
203
-
204
- # should show an appointment after that time
205
- assert_select('td', :text => @tomorrows_appt.subject)
206
- end
207
-
208
- def test_index_when_searching_for_an_appointment_before_a_specific_time
209
- Appointment.destroy_all if Appointment.count > 20
210
- @user = User.first
211
- @user ||= User.create! :username => random_word
212
- @yesterday = 1.day.ago.to_date.to_time.utc
213
- @yesterdays_appt = Appointment.find_by_time @yesterday
214
- @yesterdays_appt ||= Appointment.create!(
215
- :subject => random_word, :user => @user, :time => @yesterday
216
- )
217
- @today = 0.minutes.ago.to_date.to_time.utc
218
- @todays_appt = Appointment.find_by_time @today
219
- @todays_appt ||= Appointment.create!(
220
- :subject => random_word, :user => @user, :time => @today
221
- )
222
- @tomorrow = 1.day.from_now.to_date.to_time.utc
223
- @tomorrows_appt = Appointment.find_by_time @tomorrow
224
- @tomorrows_appt ||= Appointment.create!(
225
- :subject => random_word, :user => @user, :time => @tomorrow
226
- )
227
- get(
228
- "/admin/appointments",
229
- :search => {:time => {
230
- 'gt(1i)' => '', 'gt(2i)' => '', 'gt(3i)' => '', 'gt(4i)' => '',
231
- 'gt(5i)' => '', 'lt(1i)' => @today.year, 'lt(2i)' => @today.month,
232
- 'lt(3i)' => @today.day, 'lt(4i)' => @today.hour, 'lt(5i)' => '00'
233
- }}
234
- )
235
- assert_response :success
236
-
237
- # should prefill the search form fields
238
- assert_select('form#search_form') do
239
- assert_select('select[name=?]', 'search[time][lt(1i)]') do
240
- assert_select('option[value=?][selected=selected]', @today.year)
241
- end
242
- assert_select('select[name=?]', 'search[time][lt(2i)]') do
243
- assert_select('option[value=?][selected=selected]', @today.month)
244
- end
245
- assert_select('select[name=?]', 'search[time][lt(3i)]') do
246
- assert_select('option[value=?][selected=selected]', @today.day)
247
- end
248
- assert_select('select[name=?]', 'search[time][lt(4i)]') do
249
- assert_select(
250
- 'option[value=?][selected=selected]', sprintf('%02d', @today.hour)
251
- )
252
- end
253
- assert_select('select[name=?]', 'search[time][lt(5i)]') do
254
- assert_select('option[value=?][selected=selected]', '00')
255
- end
256
- end
257
-
258
- # should show an appointment before that time
259
- assert_select('td', :text => @yesterdays_appt.subject)
260
-
261
- # should not show an appointment equal to that time
262
- assert_no_match(/#{@todays_appt.subject}/, response.body)
263
-
264
- # should not show an appointment after that time
265
- assert_no_match(/#{@tomorrows_appt.subject}/, response.body)
266
- end
267
-
268
- def test_index_when_searching_for_an_appointment_within_a_time_range
269
- Appointment.destroy_all if Appointment.count > 20
270
- @user = User.first
271
- @user ||= User.create! :username => random_word
272
- @yesterday = 1.day.ago.to_date.to_time.utc
273
- @yesterdays_appt = Appointment.find_by_time @yesterday
274
- @yesterdays_appt ||= Appointment.create!(
275
- :subject => random_word, :user => @user, :time => @yesterday
276
- )
277
- @today = 0.minutes.ago.to_date.to_time.utc
278
- @todays_appt = Appointment.find_by_time @today
279
- @todays_appt ||= Appointment.create!(
280
- :subject => random_word, :user => @user, :time => @today
281
- )
282
- @tomorrow = 1.day.from_now.to_date.to_time.utc
283
- @tomorrows_appt = Appointment.find_by_time @tomorrow
284
- @tomorrows_appt ||= Appointment.create!(
285
- :subject => random_word, :user => @user, :time => @tomorrow
286
- )
287
- get(
288
- "/admin/appointments",
289
- :search => {:time => {
290
- 'gt(1i)' => @yesterday.year, 'gt(2i)' => @yesterday.month,
291
- 'gt(3i)' => @yesterday.day, 'gt(4i)' => @yesterday.hour,
292
- 'gt(5i)' => '', 'lt(1i)' => @tomorrow.year,
293
- 'lt(2i)' => @tomorrow.month, 'lt(3i)' => @tomorrow.day,
294
- 'lt(4i)' => @tomorrow.hour, 'lt(5i)' => '00'
295
- }}
296
- )
297
- assert_response :success
298
-
299
- # should prefill the search form fields
300
- assert_select('form#search_form') do
301
- assert_select('select[name=?]', 'search[time][gt(1i)]') do
302
- assert_select('option[value=?][selected=selected]', @yesterday.year)
303
- end
304
- assert_select('select[name=?]', 'search[time][gt(2i)]') do
305
- assert_select('option[value=?][selected=selected]', @yesterday.month)
306
- end
307
- assert_select('select[name=?]', 'search[time][gt(3i)]') do
308
- assert_select('option[value=?][selected=selected]', @yesterday.day)
309
- end
310
- assert_select('select[name=?]', 'search[time][gt(4i)]') do
311
- assert_select(
312
- 'option[value=?][selected=selected]',
313
- sprintf('%02d', @yesterday.hour)
314
- )
315
- end
316
- assert_select('select[name=?]', 'search[time][gt(5i)]') do
317
- assert_select('option[value=?][selected=selected]', '00')
318
- end
319
- assert_select('select[name=?]', 'search[time][lt(1i)]') do
320
- assert_select('option[value=?][selected=selected]', @tomorrow.year)
321
- end
322
- assert_select('select[name=?]', 'search[time][lt(2i)]') do
323
- assert_select('option[value=?][selected=selected]', @tomorrow.month)
324
- end
325
- assert_select('select[name=?]', 'search[time][lt(3i)]') do
326
- assert_select('option[value=?][selected=selected]', @tomorrow.day)
327
- end
328
- assert_select('select[name=?]', 'search[time][lt(4i)]') do
329
- assert_select(
330
- 'option[value=?][selected=selected]',
331
- sprintf('%02d', @tomorrow.hour)
332
- )
333
- end
334
- assert_select('select[name=?]', 'search[time][lt(5i)]') do
335
- assert_select('option[value=?][selected=selected]', '00')
336
- end
337
- end
338
-
339
- # should not show an appointment before that range
340
- assert_no_match(/#{@yesterdays_appt.subject}/, response.body)
341
-
342
- # should show an appointment in that range
343
- assert_select('td', :text => @todays_appt.subject)
344
-
345
- # should not show an appointment after that range
346
- assert_no_match(/#{@tomorrows_appt.subject}/, response.body)
347
- end
348
-
349
- def test_new
350
- User.destroy_all
351
- @user = User.create! :username => random_word
352
- get "/admin/appointments/new"
353
-
354
- # should show prefixes in the subject field
355
- assert_select('td', :text => /Prefix a/) do
356
- assert_select('input[name=?]', 'appointment[a][subject]')
357
- end
358
-
359
- # should sensibly prefix the datetime fields
360
- assert_select('select[name=?]', 'appointment[a][time(1i)]')
361
-
362
- # should include a user selector
363
- assert_select('select[name=?]', 'appointment[a][user_id]') do
364
- assert_select 'option[value=?]', @user.id, :text => /#{@user.username}/
365
- end
366
- end
367
- end