admin_assistant 2.0.1 → 2.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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,210 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../test_helper")
2
-
3
- class Admin::ProductsIntegrationTest < ActionController::IntegrationTest
4
- def test_destroy
5
- @product = Product.find_or_create_by_name 'Chocolate bar'
6
- post "/admin/products/destroy/#{@product.id}"
7
-
8
- # should call the custom destroy block
9
- @product.reload
10
- assert_not_nil(@product.deleted_at)
11
- end
12
-
13
- def test_index_with_at_least_one_Product
14
- @product = (
15
- Product.find(:first) || Product.create!(:name => 'product name')
16
- )
17
- get "/admin/products"
18
-
19
- # should have a search form that allows you to specify equals or other options
20
- assert_select('form[id=search_form][method=get]') do
21
- assert_select("select[name=?]", "search[price(comparator)]") do
22
- assert_select("option[value='>']", :text => 'greater than')
23
- assert_select("option[value='>=']", :text => 'greater than or equal to')
24
- assert_select("option[value='='][selected=selected]", :text => 'equal to')
25
- assert_select("option[value='<=']", :text => 'less than or equal to')
26
- assert_select("option[value='<']", :text => 'less than')
27
- end
28
- assert_select('input[name=?]', 'search[price]')
29
- end
30
-
31
- # should not have a comparator for the name search field
32
- assert_select('form[id=search_form][method=get]') do
33
- assert_select("select[name=?]", "search[name(comparator)]", false)
34
- end
35
-
36
- # should not have a Show link
37
- assert_no_match(%r|<a[^>]*>Show</a>|, response.body)
38
- end
39
-
40
- def test_index_search_by_price
41
- Product.destroy_all
42
- Product.create!(:name => 'Chocolate bar', :price => 200)
43
- Product.create!(:name => 'Diamond ring', :price => 200_000)
44
- get "/admin/products", :search => {"price(comparator)" => '>', :price => 1000}
45
-
46
- # should only show products more expensive than $10
47
- assert_no_match(%r|<td[^>]*>Chocolate bar</td>|, response.body)
48
- assert_select('td', :text => 'Diamond ring')
49
-
50
- # should show the price comparison in the search form
51
- assert_select('form[id=search_form][method=get]') do
52
- assert_select("select[name=?]", "search[price(comparator)]") do
53
- assert_select(
54
- "option[value='>'][selected=selected]", :text => 'greater than'
55
- )
56
- assert_select("option[value='>=']", :text => 'greater than or equal to')
57
- assert_select("option[value='=']", :text => 'equal to')
58
- assert_select("option[value='<=']", :text => 'less than or equal to')
59
- assert_select("option[value='<']", :text => 'less than')
60
- end
61
- assert_select('input[name=?]', 'search[price]')
62
- end
63
- end
64
-
65
- def test_index_sort_by_product_category
66
- ProductCategory.destroy_all
67
- Product.destroy_all
68
- diamond_cat = ProductCategory.create!(
69
- :category_name => 'diamond', :position => 1
70
- )
71
- @diamond = Product.create!(
72
- :name => 'Diamond', :price => 200_000, :product_category => diamond_cat
73
- )
74
- choc_cat = ProductCategory.create!(
75
- :category_name => 'chocolate', :position => 2
76
- )
77
- @chocolate = Product.create!(
78
- :name => 'Chocolate bar', :price => 200, :product_category => choc_cat
79
- )
80
- assert(diamond_cat.id < choc_cat.id)
81
- get "/admin/products", :sort_order => "asc", :sort => "product_category"
82
-
83
- # should be a success
84
- assert_response :success
85
-
86
- # should order by product_category_id
87
- assert_match(
88
- %r|product_#{@diamond.id}.*product_#{@chocolate.id}|m, response.body
89
- )
90
- end
91
-
92
- def test_new
93
- get "/admin/products/new"
94
- assert_response :success
95
-
96
- # should not render the default price input
97
- assert_select("input[name=?]", 'product[price]', false)
98
-
99
- # should render the custom price input from _price_input.html.erb
100
- assert_select("input[name=?]", 'product[price][dollars]')
101
-
102
- # should show clear links for sale_starts_at and sale_ends_at
103
- assert_select('a', :text => "Not on sale")
104
- assert_select('a', :text => "Sale doesn't end")
105
- end
106
-
107
- def test_edit
108
- @product = Product.find_or_create_by_name 'a bird'
109
- @product.update_attributes(
110
- :name => 'a bird', :price => 100_00,
111
- :file_column_image => File.open("./test/data/ruby_throated.jpg"),
112
- :percent_off => 25
113
- )
114
- get "/admin/products/edit/#{@product.id}"
115
- assert_response :success
116
-
117
- # should have a multipart form
118
- assert_select('form[enctype=multipart/form-data]')
119
-
120
- # should have a file input for image
121
- assert_select(
122
- 'input[name=?][type=file]', 'product[file_column_image]'
123
- )
124
-
125
- # should show the current image
126
- assert_select(
127
- "img[src^=?][height=100][width=100]",
128
- "/product/file_column_image/#{@product.id}/ruby_throated.jpg"
129
- )
130
-
131
- # should have a remove-image option
132
- assert_select(
133
- "input[type=checkbox][name=?]", 'product[file_column_image(destroy)]'
134
- )
135
-
136
- # should the percent_off value pre-filled
137
- assert_select(
138
- 'input[name=?][value=25]', 'product[percent_off]'
139
- )
140
- end
141
-
142
- def test_update_while_updating_a_current_image
143
- @product = Product.find_or_create_by_name 'a bird'
144
- @product.update_attributes(
145
- :name => 'a bird', :price => 100_00,
146
- :file_column_image => File.open("./test/data/ruby_throated.jpg")
147
- )
148
- file = File.new './test/data/tweenbot.jpg'
149
- post(
150
- "/admin/products/update/#{@product.id}",
151
- :product => {
152
- :file_column_image => fixture_file_upload(
153
- "../../test/data/tweenbot.jpg"
154
- )
155
- },
156
- :html => {:multipart => true}
157
- )
158
-
159
- # should update the image
160
- product_prime = Product.find_by_id @product.id
161
- assert_match(/tweenbot/, product_prime.file_column_image)
162
-
163
- # should save the image locally
164
- assert(
165
- File.exist?(
166
- "./public/product/file_column_image/#{@product.id}/tweenbot.jpg"
167
- )
168
- )
169
- end
170
-
171
- def test_update_while_removing_the_current_image
172
- @product = Product.find_or_create_by_name 'a bird'
173
- @product.update_attributes(
174
- :name => 'a bird', :price => 100_00,
175
- :file_column_image => File.open("./test/data/ruby_throated.jpg")
176
- )
177
- post(
178
- "/admin/products/update/#{@product.id}",
179
- :product => {
180
- 'file_column_image(destroy)' => '1', :file_column_image => ''
181
- }
182
- )
183
-
184
- # should remove the existing image
185
- product_prime = Product.find_by_id @product.id
186
- assert_nil product_prime.file_column_image
187
- end
188
-
189
- def test_update_while_trying_to_update_and_remove_at_the_same_time
190
- @product = Product.find_or_create_by_name 'a bird'
191
- @product.update_attributes(
192
- :name => 'a bird', :price => 100_00,
193
- :file_column_image => File.open("./test/data/ruby_throated.jpg")
194
- )
195
- post(
196
- "/admin/products/update/#{@product.id}",
197
- :product => {
198
- :file_column_image => fixture_file_upload(
199
- "../../test/data/tweenbot.jpg"
200
- ),
201
- 'file_column_image(destroy)' => '1'
202
- },
203
- :html => {:multipart => true}
204
- )
205
-
206
- # should assume you meant to update
207
- product_prime = Product.find_by_id @product.id
208
- assert_match(/tweenbot/, product_prime.file_column_image)
209
- end
210
- end
@@ -1,266 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + "/../../test_helper")
2
-
3
- class Admin::UsersIntegrationTest < ActionController::IntegrationTest
4
- def setup
5
- @user = User.find_or_create_by_username 'betty'
6
- @user.update_attribute :password, 'crocker'
7
- end
8
-
9
- def test_create
10
- post(
11
- "/admin/users/create", :user => { :username => 'bill', :password => '' }
12
- )
13
-
14
- # should assign a new random password
15
- user = User.find_by_username 'bill'
16
- assert_not_nil(user)
17
- assert_not_equal(user.password, '')
18
- end
19
-
20
- def test_create_with_the_same_username
21
- @user_count = User.count
22
- post(
23
- "/admin/users/create", :user => {:username => 'betty', :password => ''}
24
- )
25
-
26
- # should not save a new user
27
- assert_equal(User.count, @user_count)
28
-
29
- # should not call after_save
30
- assert_response :success
31
- end
32
-
33
- def test_destroy
34
- post "/admin/users/destroy/#{@user.id}"
35
-
36
- # should destroy the user
37
- assert_nil(User.find_by_id(@user.id))
38
- end
39
-
40
- def test_edit
41
- @user.update_attributes(
42
- :has_avatar => true, :avatar_version => 9,
43
- :force_blog_posts_to_textile => true
44
- )
45
- get "/admin/users/edit/#{@user.id}"
46
-
47
- # should show the default text input for password
48
- assert_match(%r|<input[^>]*name="user\[password\]"|, response.body)
49
-
50
- # should show a reset password checkbox
51
- assert_select("input[type=checkbox][name=reset_password]")
52
-
53
- # should have a multipart form
54
- assert_select('form[enctype=multipart/form-data]')
55
-
56
- # should have a file input for tmp_avatar
57
- assert_select('input[name=?][type=file]', 'user[tmp_avatar]')
58
-
59
- # should show the current tmp_avatar with a custom src
60
- assert_select(
61
- "img[src^=?]", "http://my-image-server.com/users/#{@user.id}.jpg?v=9"
62
- )
63
-
64
- # should have a remove-image option
65
- assert_select("input[type=checkbox][name=?]", 'user[tmp_avatar(destroy)]')
66
-
67
- # should show a drop-down for force_blog_posts_to_textile
68
- assert_select('select[name=?]', 'user[force_blog_posts_to_textile]') do
69
- assert_select "option:not([selected])[value='']"
70
- assert_select "option:not([selected])[value=0]", :text => 'false'
71
- assert_select "option[selected=selected][value=1]", :text => 'true'
72
- end
73
- end
74
-
75
- def test_index
76
- get "/admin/users"
77
-
78
- # should show a Delete link and a link to the profile page
79
- assert_select('td') do
80
- assert_select(
81
- "a.destroy[href=?][data-method=?]",
82
- "/admin/users/destroy/#{@user.id}", 'delete',
83
- :text => 'Delete'
84
- )
85
- assert_select(
86
- "a[href=?]",
87
- "/admin/blog_posts/new?blog_post%5Buser_id%5D=#{@user.id}",
88
- :text => "New blog post"
89
- )
90
- end
91
- end
92
-
93
- def test_index_with_a_user_with_an_avatar
94
- @user.update_attributes :has_avatar => true, :avatar_version => 9
95
- get "/admin/users"
96
-
97
- # should show the avatar image in the avatar column
98
- assert_select(
99
- 'img[src=?]', "http://my-image-server.com/users/#{@user.id}.jpg?v=9"
100
- )
101
- end
102
-
103
- def test_index_search
104
- User.destroy_all
105
- @john_doe = User.create! :username => 'johndoe'
106
- @jane_doe = User.create! :username => 'janedoe', :password => "ihatejohn"
107
- get "/admin/users", :search => "john"
108
- assert_response :success
109
-
110
- # should match username
111
- assert_select('td', :text => 'johndoe')
112
-
113
- # should not match password
114
- assert_no_match(%r|<td[^>]*>janedoe</td>|, response.body)
115
- end
116
-
117
- def test_index_search_across_first_name_and_last_name
118
- User.destroy_all
119
- @john_doe = User.create!(
120
- :username => 'johndoe', :first_name => 'john', :last_name => 'doe'
121
- )
122
- get "/admin/users", :search => "john doe"
123
-
124
- # should match
125
- assert_select('td', :text => 'johndoe')
126
- end
127
-
128
- def test_new
129
- get "/admin/users/new"
130
-
131
- # should not show an input for password
132
- assert_match(/autogenerated/, response.body)
133
- assert_no_match(%r|<input[^>]*name="user\[password\]"|, response.body)
134
-
135
- # should not show a reset password checkbox
136
- assert_select("input[type=checkbox][name=reset_password]", false)
137
-
138
- # should use date dropdowns with nil defaults for birthday
139
- nums_and_dt_fields = {1 => :year, 2 => :month, 3 => :day}
140
- nums_and_dt_fields.each do |num, dt_field|
141
- name = "user[birthday(#{num}i)]"
142
- assert_select('select[name=?]', name) do
143
- assert_select "option[value='']"
144
- assert_select(
145
- "option:not([selected])[value=?]", Time.now.send(dt_field).to_s
146
- )
147
- end
148
- end
149
-
150
- # should not try to set an hour or minute for birthday
151
- nums_and_dt_fields = {4 => :hour, 5 => :min}
152
- nums_and_dt_fields.each do |num, dt_field|
153
- name = "blog_post[published_at(#{num}i)]"
154
- assert_select('select[name=?]', name, false)
155
- end
156
-
157
- # should respect start_year and end_year parameters
158
- assert_select("select[name='user[birthday(1i)]']") do
159
- (Time.now.year-100).upto(Time.now.year) do |year|
160
- assert_select "option[value='#{year}']"
161
- end
162
- end
163
-
164
- # should show a drop-down for US states
165
- assert_select('select[name=?]', 'user[state]') do
166
- assert_select "option[value='']"
167
- assert_select "option:not([selected])[value=AK]", :text => 'Alaska'
168
- assert_select "option:not([selected])[value=NY]", :text => 'New York'
169
- # blank option, 50 states, DC, Puerto Rico == 53 options
170
- assert_select "option", :count => 53
171
- end
172
-
173
- # should have a multipart form
174
- assert_select('form[enctype=multipart/form-data]')
175
-
176
- # should have a file input for tmp_avatar
177
- assert_match(
178
- %r|<input[^>]*name="user\[tmp_avatar\]"[^>]*type="file"|, response.body
179
- )
180
-
181
- # should show a drop-down for force_blog_posts_to_textile
182
- assert_select('select[name=?]', 'user[force_blog_posts_to_textile]') do
183
- assert_select "option[value='']"
184
- assert_select "option:not([selected])[value=0]", :text => 'false'
185
- assert_select "option:not([selected])[value=1]", :text => 'true'
186
- end
187
-
188
- # should show a select for admin_level
189
- assert_select("select[name=?]", "user[admin_level]") do
190
- assert_select("option[value='']", false)
191
- assert_select "option[value=normal][selected=selected]"
192
- assert_select "option[value=admin]"
193
- assert_select "option[value=superuser]"
194
- end
195
- end
196
-
197
- def test_update
198
- post(
199
- "/admin/users/update/#{@user.id}",
200
- :user => {:username => 'bettie', :force_blog_posts_to_textile => ''}
201
- )
202
- @user.reload
203
-
204
- # should not assign a new random password
205
- assert_equal(@user.password, 'crocker')
206
-
207
- # should know the difference between nil and false for force_blog_posts_to_textile
208
- assert_nil(@user.force_blog_posts_to_textile)
209
- end
210
-
211
- def test_update_while_resetting_password
212
- post(
213
- "/admin/users/update/#{@user.id}",
214
- :user => {:username => 'bettie'}, :reset_password => '1'
215
- )
216
-
217
- # should assign a new random password
218
- @user.reload
219
- assert_not_equal(@user.password, 'crocker')
220
- end
221
-
222
- def test_update_while_updating_the_current_tmp_avatar
223
- @user.update_attributes :has_avatar => true, :avatar_version => 9
224
- post(
225
- "/admin/users/update/#{@user.id}",
226
- :user => {
227
- :tmp_avatar => fixture_file_upload('../../test/data/tweenbot.jpg')
228
- },
229
- :html => {:multipart => true}
230
- )
231
-
232
- # should increment the avatar_version through before_save
233
- @user.reload
234
- assert_equal(@user.avatar_version, 10)
235
- end
236
-
237
- def test_update_while_removing_the_current_tmp_avatar
238
- @user.update_attributes :has_avatar => true, :avatar_version => 9
239
- post(
240
- "/admin/users/update/#{@user.id}",
241
- :user => {:tmp_avatar => '', 'tmp_avatar(destroy)' => '1'},
242
- :html => {:multipart => true}
243
- )
244
-
245
- # should set has_avatar to false
246
- @user.reload
247
- assert(!@user.has_avatar?)
248
- end
249
-
250
- def test_while_trying_to_update_and_remove_tmp_avatar_at_the_same_time
251
- @user.update_attributes :has_avatar => true, :avatar_version => 9
252
- post(
253
- "/admin/users/update/#{@user.id}",
254
- :user => {
255
- :tmp_avatar => fixture_file_upload('../../test/data/tweenbot.jpg'),
256
- 'tmp_avatar(destroy)' => '1'
257
- },
258
- :html => {:multipart => true}
259
- )
260
-
261
- # should assume you meant to update
262
- @user.reload
263
- assert_equal(@user.avatar_version, 10)
264
- assert(@user.has_avatar?)
265
- end
266
- end
@@ -1,9 +0,0 @@
1
- $: << 'test'
2
- require 'test_helper'
3
-
4
- class BlogPostsIntegrationTest < ActionController::IntegrationTest
5
- def test_create_should_not_be_defined_by_admin_assistant
6
- post "/blog_posts/create"
7
- assert_response :not_found
8
- end
9
- end
@@ -1,114 +0,0 @@
1
- ENV["RAILS_ENV"] = "test"
2
- here = File.dirname(__FILE__)
3
- require File.expand_path(here + "/../config/environment")
4
- require 'test_help'
5
-
6
- module TestHelper
7
- def assert_a_tag_with_get_args(
8
- content, href_base, href_get_args, response_body
9
- )
10
- regex = %r|<a href="#{ href_base }\?([^"]*)"[^>]*>#{ content }</a>|
11
- assert(
12
- response_body =~ regex,
13
- "#{response_body.inspect} expected to match #{regex.inspect}"
14
- )
15
- assert_get_args_equal( href_get_args, $1.gsub( /&amp;/, '&' ) )
16
- end
17
-
18
- def assert_no_a_tag_with_get_args(
19
- content, href_base, href_get_args, response_body
20
- )
21
- regex = %r|<a href="#{ href_base }\?([^"]*)"[^>]*>#{ content }</a>|
22
- if response_body =~ regex
23
- get_args_string = $1.gsub( /&amp;/, '&' )
24
- response_h = HashWithIndifferentAccess.new
25
- CGI::parse( get_args_string ).each do |key, values|
26
- response_h[key] = values.first
27
- end
28
- if href_get_args.size == response_h.size
29
- raise if href_get_args.all? { |key, value|
30
- response_h[key] == value
31
- }
32
- end
33
- end
34
- end
35
-
36
- def assert_get_args_equal( expected_hash, get_args_string )
37
- response_h = HashWithIndifferentAccess.new
38
- CGI::parse( get_args_string ).each do |key, values|
39
- response_h[key] = values.first
40
- end
41
- assert_equal(
42
- expected_hash.size, response_h.size,
43
- "<#{ expected_hash.inspect }> expected but was\n<#{ response_h.inspect }>."
44
- )
45
- expected_hash.each do |key, value|
46
- assert_equal( value, response_h[key] )
47
- end
48
- end
49
-
50
- def random_word( length = 25 )
51
- letters = 'abcdefghijklmnopqrstuvwxyz_'.split //
52
- ( 1..length ).to_a.map { letters[rand(letters.size)] }.join( '' )
53
- end
54
- end
55
-
56
- class CacheStoreStub
57
- def initialize
58
- flush
59
- end
60
-
61
- def expires_in(key)
62
- @expirations[key.to_s]
63
- end
64
-
65
- def flush
66
- @cache = {}
67
- @expirations = {}
68
- @raise_on_write = false
69
- end
70
-
71
- def raise_on_write
72
- @raise_on_write = true
73
- end
74
-
75
- def read(key, options = nil)
76
- @cache[key.to_s]
77
- end
78
-
79
- def write(key, value, options = nil)
80
- raise if @raise_on_write
81
- @cache[key.to_s] = value
82
- @expirations[key.to_s] = options[:expires_in]
83
- end
84
- end
85
-
86
- $cache = CacheStoreStub.new
87
-
88
- module Rails
89
- mattr_accessor :cache
90
- self.cache = $cache
91
- end
92
-
93
- if %w(2.1.0 2.1.2).include?(RAILS_GEM_VERSION)
94
- class Test::Unit::TestCase
95
- self.use_transactional_fixtures = true
96
-
97
- self.use_instantiated_fixtures = false
98
-
99
- include TestHelper
100
- end
101
- else
102
- class ActiveSupport::TestCase
103
- self.use_transactional_fixtures = true
104
-
105
- self.use_instantiated_fixtures = false
106
-
107
- include TestHelper
108
- end
109
- end
110
-
111
- Webrat.configure do |config|
112
- config.mode = :rails
113
- end
114
-
@@ -1,69 +0,0 @@
1
- *svn*
2
- * allow for directories in file_column dirs as well
3
- * use subdirs for versions instead of fiddling with filename
4
- * url_for_image_column_helper for dynamic resizing of images from views
5
- * new "crop" feature [Sean Treadway]
6
- * url_for_file_column helper: do not require model objects to be stored in
7
- instance variables
8
- * allow more fined-grained control over :store_dir via callback
9
- methods [Gerret Apelt]
10
- * allow assignment of regular file objects
11
- * validation of file format and file size [Kyle Maxwell]
12
- * validation of image dimensions [Lee O'Mara]
13
- * file permissions can be set via :permissions option
14
- * fixed bug that prevents deleting of file via assigning nil if
15
- column is declared as NON NULL on some databases
16
- * don't expand absolute paths. This is necessary for file_column to work
17
- when your rails app is deployed into a sub-directory via a symbolic link
18
- * url_for_*_column will no longer return absolute URLs! Instead, although the
19
- generated URL starts with a slash, it will be relative to your application's
20
- root URL. This is so, because rails' image_tag helper will automatically
21
- convert it to an absolute URL. If you need an absolute URL (e.g., to pass
22
- it to link_to) use url_for_file_column's :absolute => true option.
23
- * added support for file_column enabled unit tests [Manuel Holtgrewe]
24
- * support for custom transformation of images [Frederik Fix]
25
- * allow setting of image attributes (e.g., quality) [Frederik Fix]
26
- * :magick columns can optionally ignore non-images (i.e., do not try to
27
- resize them)
28
-
29
- 0.3.1
30
- * make object with file_columns serializable
31
- * use normal require for RMagick, so that it works with gem
32
- and custom install as well
33
-
34
- 0.3
35
- * fixed bug where empty file uploads were not recognized with some browsers
36
- * fixed bug on windows when "file" utility is not present
37
- * added option to disable automatic file extension correction
38
- * Only allow one attribute per call to file_column, so that options only
39
- apply to one argument
40
- * try to detect when people forget to set the form encoding to
41
- 'multipart/form-data'
42
- * converted to rails plugin
43
- * easy integration with RMagick
44
-
45
- 0.2
46
- * complete rewrite using state pattern
47
- * fixed sanitize filename [Michael Raidel]
48
- * fixed bug when no file was uploaded [Michael Raidel]
49
- * try to fix filename extensions [Michael Raidel]
50
- * Feed absolute paths through File.expand_path to make them as simple as possible
51
- * Make file_column_field helper work with auto-ids (e.g., "event[]")
52
-
53
- 0.1.3
54
- * test cases with more than 1 file_column
55
- * fixed bug when file_column was called with several arguments
56
- * treat empty ("") file_columns as nil
57
- * support for binary files on windows
58
-
59
- 0.1.2
60
- * better rails integration, so that you do not have to include the modules yourself. You
61
- just have to "require 'rails_file_column'" in your "config/environment.rb"
62
- * Rakefile for testing and packaging
63
-
64
- 0.1.1 (2005-08-11)
65
- * fixed nasty bug in url_for_file_column that made it unusable on Apache
66
- * prepared for public release
67
-
68
- 0.1 (2005-08-10)
69
- * initial release