admin_assistant 1.0.1 → 1.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (288) hide show
  1. data/Rakefile +1 -0
  2. data/VERSION +1 -1
  3. data/admin_assistant.gemspec +1 -285
  4. metadata +3 -287
  5. data/test_rails_app/README +0 -256
  6. data/test_rails_app/Rakefile +0 -13
  7. data/test_rails_app/app/controllers/admin/appointments2_controller.rb +0 -15
  8. data/test_rails_app/app/controllers/admin/appointments_controller.rb +0 -11
  9. data/test_rails_app/app/controllers/admin/blog_posts2_controller.rb +0 -138
  10. data/test_rails_app/app/controllers/admin/blog_posts3_controller.rb +0 -76
  11. data/test_rails_app/app/controllers/admin/blog_posts4_controller.rb +0 -21
  12. data/test_rails_app/app/controllers/admin/blog_posts5_controller.rb +0 -27
  13. data/test_rails_app/app/controllers/admin/blog_posts6_controller.rb +0 -10
  14. data/test_rails_app/app/controllers/admin/blog_posts_controller.rb +0 -8
  15. data/test_rails_app/app/controllers/admin/blog_posts_custom_new_and_edit_controller.rb +0 -15
  16. data/test_rails_app/app/controllers/admin/blog_posts_read_only_controller.rb +0 -19
  17. data/test_rails_app/app/controllers/admin/bookmarks_controller.rb +0 -11
  18. data/test_rails_app/app/controllers/admin/comments2_controller.rb +0 -14
  19. data/test_rails_app/app/controllers/admin/comments_controller.rb +0 -12
  20. data/test_rails_app/app/controllers/admin/file_column_images2_controller.rb +0 -10
  21. data/test_rails_app/app/controllers/admin/file_column_images_controller.rb +0 -6
  22. data/test_rails_app/app/controllers/admin/images2_controller.rb +0 -11
  23. data/test_rails_app/app/controllers/admin/images_controller.rb +0 -6
  24. data/test_rails_app/app/controllers/admin/misconfigured1_controller.rb +0 -7
  25. data/test_rails_app/app/controllers/admin/not_migrated_yets_controller.rb +0 -9
  26. data/test_rails_app/app/controllers/admin/product_categories2_controller.rb +0 -7
  27. data/test_rails_app/app/controllers/admin/product_categories_controller.rb +0 -5
  28. data/test_rails_app/app/controllers/admin/products2_controller.rb +0 -15
  29. data/test_rails_app/app/controllers/admin/products_controller.rb +0 -31
  30. data/test_rails_app/app/controllers/admin/television_airings_controller.rb +0 -5
  31. data/test_rails_app/app/controllers/admin/television_time_slots_controller.rb +0 -5
  32. data/test_rails_app/app/controllers/admin/users2_controller.rb +0 -10
  33. data/test_rails_app/app/controllers/admin/users_controller.rb +0 -63
  34. data/test_rails_app/app/controllers/application.rb +0 -16
  35. data/test_rails_app/app/controllers/application_controller.rb +0 -16
  36. data/test_rails_app/app/controllers/blog_posts_controller.rb +0 -5
  37. data/test_rails_app/app/helpers/admin/appointments2_helper.rb +0 -2
  38. data/test_rails_app/app/helpers/admin/appointments_helper.rb +0 -2
  39. data/test_rails_app/app/helpers/admin/blog_posts2_helper.rb +0 -27
  40. data/test_rails_app/app/helpers/admin/blog_posts3_helper.rb +0 -2
  41. data/test_rails_app/app/helpers/admin/blog_posts4_helper.rb +0 -2
  42. data/test_rails_app/app/helpers/admin/blog_posts6_helper.rb +0 -16
  43. data/test_rails_app/app/helpers/admin/blog_posts_custom_new_and_edit_helper.rb +0 -29
  44. data/test_rails_app/app/helpers/admin/blog_posts_helper.rb +0 -2
  45. data/test_rails_app/app/helpers/admin/blog_posts_read_only_helper.rb +0 -2
  46. data/test_rails_app/app/helpers/admin/bookmarks_helper.rb +0 -2
  47. data/test_rails_app/app/helpers/admin/comments2_helper.rb +0 -2
  48. data/test_rails_app/app/helpers/admin/comments_helper.rb +0 -2
  49. data/test_rails_app/app/helpers/admin/file_column_images2_helper.rb +0 -2
  50. data/test_rails_app/app/helpers/admin/file_column_images_helper.rb +0 -2
  51. data/test_rails_app/app/helpers/admin/images2_helper.rb +0 -8
  52. data/test_rails_app/app/helpers/admin/images_helper.rb +0 -2
  53. data/test_rails_app/app/helpers/admin/misconfigured1_helper.rb +0 -2
  54. data/test_rails_app/app/helpers/admin/not_migrated_yets_helper.rb +0 -2
  55. data/test_rails_app/app/helpers/admin/product_categories2_helper.rb +0 -2
  56. data/test_rails_app/app/helpers/admin/product_categories_helper.rb +0 -2
  57. data/test_rails_app/app/helpers/admin/products2_helper.rb +0 -3
  58. data/test_rails_app/app/helpers/admin/products_helper.rb +0 -6
  59. data/test_rails_app/app/helpers/admin/television_airings_helper.rb +0 -2
  60. data/test_rails_app/app/helpers/admin/television_time_slots_helper.rb +0 -2
  61. data/test_rails_app/app/helpers/admin/users2_helper.rb +0 -2
  62. data/test_rails_app/app/helpers/admin/users_helper.rb +0 -25
  63. data/test_rails_app/app/helpers/application_helper.rb +0 -3
  64. data/test_rails_app/app/helpers/blog_posts_helper.rb +0 -2
  65. data/test_rails_app/app/models/appointment.rb +0 -5
  66. data/test_rails_app/app/models/blog_post.rb +0 -14
  67. data/test_rails_app/app/models/blog_post_tag.rb +0 -6
  68. data/test_rails_app/app/models/bookmark.rb +0 -6
  69. data/test_rails_app/app/models/comment.rb +0 -4
  70. data/test_rails_app/app/models/file_column_image.rb +0 -3
  71. data/test_rails_app/app/models/image.rb +0 -3
  72. data/test_rails_app/app/models/not_migrated_yet.rb +0 -2
  73. data/test_rails_app/app/models/product.rb +0 -7
  74. data/test_rails_app/app/models/product_category.rb +0 -9
  75. data/test_rails_app/app/models/tag.rb +0 -4
  76. data/test_rails_app/app/models/television_airing.rb +0 -3
  77. data/test_rails_app/app/models/television_time_slot.rb +0 -11
  78. data/test_rails_app/app/models/user.rb +0 -14
  79. data/test_rails_app/app/views/admin/appointments/_subject_input.html.erb +0 -2
  80. data/test_rails_app/app/views/admin/appointments2/_time_input.html.erb +0 -31
  81. data/test_rails_app/app/views/admin/blog_posts2/_after_form.html.erb +0 -5
  82. data/test_rails_app/app/views/admin/blog_posts2/_after_index.html.erb +0 -1
  83. data/test_rails_app/app/views/admin/blog_posts2/_after_tags_input.html.erb +0 -16
  84. data/test_rails_app/app/views/admin/blog_posts2/_before_index.html.erb +0 -2
  85. data/test_rails_app/app/views/admin/blog_posts5/_after_index_header.html.erb +0 -8
  86. data/test_rails_app/app/views/admin/blog_posts_read_only/_body_for_show.html.erb +0 -1
  87. data/test_rails_app/app/views/admin/products/_name_input.html.erb +0 -2
  88. data/test_rails_app/app/views/admin/products/_percent_off_input.html.erb +0 -2
  89. data/test_rails_app/app/views/admin/products/_price_input.html.erb +0 -10
  90. data/test_rails_app/app/views/blog_posts/show.html.erb +0 -13
  91. data/test_rails_app/app/views/layouts/admin.html.erb +0 -31
  92. data/test_rails_app/config/boot.rb +0 -109
  93. data/test_rails_app/config/database.yml +0 -28
  94. data/test_rails_app/config/environment.rb +0 -78
  95. data/test_rails_app/config/environments/development.rb +0 -17
  96. data/test_rails_app/config/environments/production.rb +0 -24
  97. data/test_rails_app/config/environments/test.rb +0 -24
  98. data/test_rails_app/config/initializers/inflections.rb +0 -10
  99. data/test_rails_app/config/initializers/mime_types.rb +0 -5
  100. data/test_rails_app/config/initializers/new_rails_defaults.rb +0 -17
  101. data/test_rails_app/config/locales/en.yml +0 -5
  102. data/test_rails_app/config/routes.rb +0 -43
  103. data/test_rails_app/db/migrate/20090213215514_create_blog_posts.rb +0 -12
  104. data/test_rails_app/db/migrate/20090217225542_add_body_to_blog_posts.rb +0 -9
  105. data/test_rails_app/db/migrate/20090221220917_create_tags.rb +0 -13
  106. data/test_rails_app/db/migrate/20090221220947_create_blog_post_tags.rb +0 -14
  107. data/test_rails_app/db/migrate/20090222162204_add_textile_to_blog_posts.rb +0 -9
  108. data/test_rails_app/db/migrate/20090222163231_add_published_at_to_blog_posts.rb +0 -9
  109. data/test_rails_app/db/migrate/20090301191722_create_images.rb +0 -16
  110. data/test_rails_app/db/migrate/20090305165345_create_accounts.rb +0 -14
  111. data/test_rails_app/db/migrate/20090307225027_rename_accounts_to_users.rb +0 -9
  112. data/test_rails_app/db/migrate/20090307225750_add_user_id_to_blog_posts.rb +0 -9
  113. data/test_rails_app/db/migrate/20090309185114_change_blog_posts_textile.rb +0 -9
  114. data/test_rails_app/db/migrate/20090309193635_create_products.rb +0 -14
  115. data/test_rails_app/db/migrate/20090309203056_create_comments.rb +0 -15
  116. data/test_rails_app/db/migrate/20090323005947_create_file_column_images.rb +0 -12
  117. data/test_rails_app/db/migrate/20090326160049_add_birthday_to_users.rb +0 -9
  118. data/test_rails_app/db/migrate/20090326223606_add_state_to_users.rb +0 -9
  119. data/test_rails_app/db/migrate/20090503134004_add_file_column_image_to_products.rb +0 -9
  120. data/test_rails_app/db/migrate/20090617173651_create_bookmarks.rb +0 -15
  121. data/test_rails_app/db/migrate/20090624165355_add_tags_string_to_blog_post.rb +0 -9
  122. data/test_rails_app/db/migrate/20090625144313_add_avatar_fields_to_user.rb +0 -11
  123. data/test_rails_app/db/migrate/20090629202956_add_merged_into_to_blog_posts.rb +0 -9
  124. data/test_rails_app/db/migrate/20090701171857_add_force_textile_to_users.rb +0 -9
  125. data/test_rails_app/db/migrate/20090704163647_add_deleted_at_to_products.rb +0 -9
  126. data/test_rails_app/db/migrate/20090704173800_add_sale_fields_to_products.rb +0 -13
  127. data/test_rails_app/db/migrate/20090714024501_create_product_categories.rb +0 -15
  128. data/test_rails_app/db/migrate/20090819162835_add_admin_level_to_users.rb +0 -9
  129. data/test_rails_app/db/migrate/20091115134559_add_first_and_last_names_to_users.rb +0 -11
  130. data/test_rails_app/db/migrate/20091221011256_add_position_to_product_categories.rb +0 -9
  131. data/test_rails_app/db/migrate/20091222160814_create_appointments.rb +0 -14
  132. data/test_rails_app/db/migrate/20091227224547_add_user_id_to_appointments.rb +0 -9
  133. data/test_rails_app/db/migrate/20100214213359_create_television_time_slots.rb +0 -13
  134. data/test_rails_app/db/migrate/20100214213451_create_television_airings.rb +0 -15
  135. data/test_rails_app/doc/README_FOR_APP +0 -5
  136. data/test_rails_app/lib/tasks/rspec.rake +0 -163
  137. data/test_rails_app/public/404.html +0 -30
  138. data/test_rails_app/public/422.html +0 -30
  139. data/test_rails_app/public/500.html +0 -33
  140. data/test_rails_app/public/dispatch.cgi +0 -10
  141. data/test_rails_app/public/dispatch.fcgi +0 -24
  142. data/test_rails_app/public/dispatch.rb +0 -10
  143. data/test_rails_app/public/favicon.ico +0 -0
  144. data/test_rails_app/public/images/rails.png +0 -0
  145. data/test_rails_app/public/index.html +0 -274
  146. data/test_rails_app/public/javascripts/application.js +0 -2
  147. data/test_rails_app/public/javascripts/controls.js +0 -963
  148. data/test_rails_app/public/javascripts/dragdrop.js +0 -973
  149. data/test_rails_app/public/javascripts/effects.js +0 -1128
  150. data/test_rails_app/public/javascripts/prototype.js +0 -4320
  151. data/test_rails_app/public/robots.txt +0 -5
  152. data/test_rails_app/public/stylesheets/admin.css +0 -3
  153. data/test_rails_app/public/stylesheets/scaffold.css +0 -54
  154. data/test_rails_app/script/about +0 -4
  155. data/test_rails_app/script/autospec +0 -5
  156. data/test_rails_app/script/console +0 -3
  157. data/test_rails_app/script/dbconsole +0 -3
  158. data/test_rails_app/script/destroy +0 -3
  159. data/test_rails_app/script/generate +0 -3
  160. data/test_rails_app/script/performance/benchmarker +0 -3
  161. data/test_rails_app/script/performance/profiler +0 -3
  162. data/test_rails_app/script/performance/request +0 -3
  163. data/test_rails_app/script/plugin +0 -3
  164. data/test_rails_app/script/populate_tables.rb +0 -49
  165. data/test_rails_app/script/process/inspector +0 -3
  166. data/test_rails_app/script/process/reaper +0 -3
  167. data/test_rails_app/script/process/spawner +0 -3
  168. data/test_rails_app/script/runner +0 -3
  169. data/test_rails_app/script/server +0 -3
  170. data/test_rails_app/script/spec +0 -5
  171. data/test_rails_app/script/spec_server +0 -125
  172. data/test_rails_app/spec/controllers/admin/appointments2_controller_spec.rb +0 -88
  173. data/test_rails_app/spec/controllers/admin/appointments_controller_spec.rb +0 -419
  174. data/test_rails_app/spec/controllers/admin/blog_posts2_controller_spec.rb +0 -1021
  175. data/test_rails_app/spec/controllers/admin/blog_posts3_controller_spec.rb +0 -532
  176. data/test_rails_app/spec/controllers/admin/blog_posts4_controller_spec.rb +0 -231
  177. data/test_rails_app/spec/controllers/admin/blog_posts5_controller_spec.rb +0 -77
  178. data/test_rails_app/spec/controllers/admin/blog_posts6_controller_spec.rb +0 -49
  179. data/test_rails_app/spec/controllers/admin/blog_posts_controller_spec.rb +0 -987
  180. data/test_rails_app/spec/controllers/admin/blog_posts_custom_new_and_edit_controller_spec.rb +0 -99
  181. data/test_rails_app/spec/controllers/admin/blog_posts_read_only_controller_spec.rb +0 -94
  182. data/test_rails_app/spec/controllers/admin/bookmarks_controller_spec.rb +0 -505
  183. data/test_rails_app/spec/controllers/admin/comments2_controller_spec.rb +0 -70
  184. data/test_rails_app/spec/controllers/admin/comments_controller_spec.rb +0 -82
  185. data/test_rails_app/spec/controllers/admin/file_column_images2_controller_spec.rb +0 -25
  186. data/test_rails_app/spec/controllers/admin/file_column_images_controller_spec.rb +0 -82
  187. data/test_rails_app/spec/controllers/admin/images2_controller_spec.rb +0 -44
  188. data/test_rails_app/spec/controllers/admin/images_controller_spec.rb +0 -97
  189. data/test_rails_app/spec/controllers/admin/misconfigured1_controller_spec.rb +0 -21
  190. data/test_rails_app/spec/controllers/admin/not_migrated_yets_controller_spec.rb +0 -10
  191. data/test_rails_app/spec/controllers/admin/product_categories2_controller_spec.rb +0 -215
  192. data/test_rails_app/spec/controllers/admin/product_categories_controller_spec.rb +0 -19
  193. data/test_rails_app/spec/controllers/admin/products2_controller_spec.rb +0 -203
  194. data/test_rails_app/spec/controllers/admin/products_controller_spec.rb +0 -255
  195. data/test_rails_app/spec/controllers/admin/television_airings_controller_spec.rb +0 -32
  196. data/test_rails_app/spec/controllers/admin/television_time_slots_controller_spec.rb +0 -10
  197. data/test_rails_app/spec/controllers/admin/users2_controller_spec.rb +0 -65
  198. data/test_rails_app/spec/controllers/admin/users_controller_spec.rb +0 -344
  199. data/test_rails_app/spec/controllers/blog_posts_controller_spec.rb +0 -13
  200. data/test_rails_app/spec/data/ruby_throated.jpg +0 -0
  201. data/test_rails_app/spec/data/tweenbot.jpg +0 -0
  202. data/test_rails_app/spec/fixtures/appointments.yml +0 -9
  203. data/test_rails_app/spec/fixtures/blog_post_tags.yml +0 -9
  204. data/test_rails_app/spec/fixtures/blog_posts.yml +0 -7
  205. data/test_rails_app/spec/fixtures/bookmarks.yml +0 -11
  206. data/test_rails_app/spec/fixtures/comments.yml +0 -11
  207. data/test_rails_app/spec/fixtures/file_column_images.yml +0 -7
  208. data/test_rails_app/spec/fixtures/images.yml +0 -7
  209. data/test_rails_app/spec/fixtures/not_migrated_yets.yml +0 -7
  210. data/test_rails_app/spec/fixtures/product_categories.yml +0 -7
  211. data/test_rails_app/spec/fixtures/products.yml +0 -9
  212. data/test_rails_app/spec/fixtures/tags.yml +0 -7
  213. data/test_rails_app/spec/fixtures/television_airings.yml +0 -11
  214. data/test_rails_app/spec/fixtures/television_time_slots.yml +0 -7
  215. data/test_rails_app/spec/fixtures/users.yml +0 -9
  216. data/test_rails_app/spec/helpers/admin/appointments2_helper_spec.rb +0 -11
  217. data/test_rails_app/spec/helpers/admin/appointments_helper_spec.rb +0 -11
  218. data/test_rails_app/spec/helpers/admin/blog_posts2_helper_spec.rb +0 -11
  219. data/test_rails_app/spec/helpers/admin/blog_posts3_helper_spec.rb +0 -11
  220. data/test_rails_app/spec/helpers/admin/blog_posts4_helper_spec.rb +0 -11
  221. data/test_rails_app/spec/helpers/admin/blog_posts_custom_new_and_edit_helper_spec.rb +0 -11
  222. data/test_rails_app/spec/helpers/admin/blog_posts_helper_spec.rb +0 -11
  223. data/test_rails_app/spec/helpers/admin/blog_posts_read_only_helper_spec.rb +0 -11
  224. data/test_rails_app/spec/helpers/admin/bookmarks_helper_spec.rb +0 -11
  225. data/test_rails_app/spec/helpers/admin/comments2_helper_spec.rb +0 -11
  226. data/test_rails_app/spec/helpers/admin/comments_helper_spec.rb +0 -11
  227. data/test_rails_app/spec/helpers/admin/file_column_images2_helper_spec.rb +0 -11
  228. data/test_rails_app/spec/helpers/admin/file_column_images_helper_spec.rb +0 -11
  229. data/test_rails_app/spec/helpers/admin/images2_helper_spec.rb +0 -11
  230. data/test_rails_app/spec/helpers/admin/images_helper_spec.rb +0 -11
  231. data/test_rails_app/spec/helpers/admin/misconfigured1_helper_spec.rb +0 -11
  232. data/test_rails_app/spec/helpers/admin/not_migrated_yets_helper_spec.rb +0 -11
  233. data/test_rails_app/spec/helpers/admin/product_categories2_helper_spec.rb +0 -11
  234. data/test_rails_app/spec/helpers/admin/product_categories_helper_spec.rb +0 -11
  235. data/test_rails_app/spec/helpers/admin/products2_helper_spec.rb +0 -11
  236. data/test_rails_app/spec/helpers/admin/products_helper_spec.rb +0 -11
  237. data/test_rails_app/spec/helpers/admin/television_airings_helper_spec.rb +0 -11
  238. data/test_rails_app/spec/helpers/admin/television_time_slots_helper_spec.rb +0 -11
  239. data/test_rails_app/spec/helpers/admin/users2_helper_spec.rb +0 -11
  240. data/test_rails_app/spec/helpers/admin/users_helper_spec.rb +0 -11
  241. data/test_rails_app/spec/helpers/blog_posts_helper_spec.rb +0 -11
  242. data/test_rails_app/spec/models/appointment_spec.rb +0 -16
  243. data/test_rails_app/spec/models/blog_post_spec.rb +0 -13
  244. data/test_rails_app/spec/models/blog_post_tag_spec.rb +0 -14
  245. data/test_rails_app/spec/models/bookmark_spec.rb +0 -15
  246. data/test_rails_app/spec/models/comment_spec.rb +0 -15
  247. data/test_rails_app/spec/models/file_column_image_spec.rb +0 -12
  248. data/test_rails_app/spec/models/image_spec.rb +0 -12
  249. data/test_rails_app/spec/models/not_migrated_yet_spec.rb +0 -15
  250. data/test_rails_app/spec/models/product_category_spec.rb +0 -15
  251. data/test_rails_app/spec/models/product_spec.rb +0 -14
  252. data/test_rails_app/spec/models/tag_spec.rb +0 -13
  253. data/test_rails_app/spec/models/television_airing_spec.rb +0 -15
  254. data/test_rails_app/spec/models/television_time_slot_spec.rb +0 -13
  255. data/test_rails_app/spec/models/user_spec.rb +0 -14
  256. data/test_rails_app/spec/rcov.opts +0 -2
  257. data/test_rails_app/spec/spec.opts +0 -4
  258. data/test_rails_app/spec/spec_helper.rb +0 -88
  259. data/test_rails_app/spec/spec_or_test_helper.rb +0 -49
  260. data/test_rails_app/test/fixtures/file_column_images.yml +0 -7
  261. data/test_rails_app/test/integration/admin_blog_posts2_integration_test.rb +0 -16
  262. data/test_rails_app/test/integration/admin_blog_posts5_integration_test.rb +0 -19
  263. data/test_rails_app/test/integration/admin_blog_posts_integration_test.rb +0 -25
  264. data/test_rails_app/test/test_helper.rb +0 -28
  265. data/test_rails_app/vendor/plugins/file_column/CHANGELOG +0 -69
  266. data/test_rails_app/vendor/plugins/file_column/README +0 -54
  267. data/test_rails_app/vendor/plugins/file_column/Rakefile +0 -36
  268. data/test_rails_app/vendor/plugins/file_column/TODO +0 -6
  269. data/test_rails_app/vendor/plugins/file_column/init.rb +0 -13
  270. data/test_rails_app/vendor/plugins/file_column/lib/file_column.rb +0 -723
  271. data/test_rails_app/vendor/plugins/file_column/lib/file_column_helper.rb +0 -150
  272. data/test_rails_app/vendor/plugins/file_column/lib/file_compat.rb +0 -28
  273. data/test_rails_app/vendor/plugins/file_column/lib/magick_file_column.rb +0 -260
  274. data/test_rails_app/vendor/plugins/file_column/lib/rails_file_column.rb +0 -19
  275. data/test_rails_app/vendor/plugins/file_column/lib/test_case.rb +0 -124
  276. data/test_rails_app/vendor/plugins/file_column/lib/validations.rb +0 -112
  277. data/test_rails_app/vendor/plugins/file_column/test/abstract_unit.rb +0 -63
  278. data/test_rails_app/vendor/plugins/file_column/test/connection.rb +0 -17
  279. data/test_rails_app/vendor/plugins/file_column/test/file_column_helper_test.rb +0 -97
  280. data/test_rails_app/vendor/plugins/file_column/test/file_column_test.rb +0 -650
  281. data/test_rails_app/vendor/plugins/file_column/test/fixtures/entry.rb +0 -32
  282. data/test_rails_app/vendor/plugins/file_column/test/fixtures/invalid-image.jpg +0 -1
  283. data/test_rails_app/vendor/plugins/file_column/test/fixtures/kerb.jpg +0 -0
  284. data/test_rails_app/vendor/plugins/file_column/test/fixtures/mysql.sql +0 -25
  285. data/test_rails_app/vendor/plugins/file_column/test/fixtures/schema.rb +0 -10
  286. data/test_rails_app/vendor/plugins/file_column/test/fixtures/skanthak.png +0 -0
  287. data/test_rails_app/vendor/plugins/file_column/test/magick_test.rb +0 -380
  288. data/test_rails_app/vendor/plugins/file_column/test/magick_view_only_test.rb +0 -21
@@ -1,650 +0,0 @@
1
- require File.dirname(__FILE__) + '/abstract_unit'
2
-
3
- require File.dirname(__FILE__) + '/fixtures/entry'
4
-
5
- class Movie < ActiveRecord::Base
6
- end
7
-
8
-
9
- class FileColumnTest < Test::Unit::TestCase
10
-
11
- def setup
12
- # we define the file_columns here so that we can change
13
- # settings easily in a single test
14
-
15
- Entry.file_column :image
16
- Entry.file_column :file
17
- Movie.file_column :movie
18
-
19
- clear_validations
20
- end
21
-
22
- def teardown
23
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
24
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/movie/"
25
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/my_store_dir/"
26
- end
27
-
28
- def test_column_write_method
29
- assert Entry.new.respond_to?("image=")
30
- end
31
-
32
- def test_column_read_method
33
- assert Entry.new.respond_to?("image")
34
- end
35
-
36
- def test_sanitize_filename
37
- assert_equal "test.jpg", FileColumn::sanitize_filename("test.jpg")
38
- assert FileColumn::sanitize_filename("../../very_tricky/foo.bar") !~ /[\\\/]/, "slashes not removed"
39
- assert_equal "__foo", FileColumn::sanitize_filename('`*foo')
40
- assert_equal "foo.txt", FileColumn::sanitize_filename('c:\temp\foo.txt')
41
- assert_equal "_.", FileColumn::sanitize_filename(".")
42
- end
43
-
44
- def test_default_options
45
- e = Entry.new
46
- assert_match %r{/public/entry/image}, e.image_options[:store_dir]
47
- assert_match %r{/public/entry/image/tmp}, e.image_options[:tmp_base_dir]
48
- end
49
-
50
- def test_assign_without_save_with_tempfile
51
- do_test_assign_without_save(:tempfile)
52
- end
53
-
54
- def test_assign_without_save_with_stringio
55
- do_test_assign_without_save(:stringio)
56
- end
57
-
58
- def do_test_assign_without_save(upload_type)
59
- e = Entry.new
60
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png", upload_type)
61
- assert e.image.is_a?(String), "#{e.image.inspect} is not a String"
62
- assert File.exists?(e.image)
63
- assert FileUtils.identical?(e.image, file_path("skanthak.png"))
64
- end
65
-
66
- def test_filename_preserved
67
- e = Entry.new
68
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename.jpg")
69
- assert_equal "local_filename.jpg", File.basename(e.image)
70
- end
71
-
72
- def test_filename_stored_in_attribute
73
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
74
- assert_equal "kerb.jpg", e["image"]
75
- end
76
-
77
- def test_extension_added
78
- e = Entry.new
79
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename")
80
- assert_equal "local_filename.jpg", File.basename(e.image)
81
- assert_equal "local_filename.jpg", e["image"]
82
- end
83
-
84
- def test_no_extension_without_content_type
85
- e = Entry.new
86
- e.image = uploaded_file(file_path("kerb.jpg"), "something/unknown", "local_filename")
87
- assert_equal "local_filename", File.basename(e.image)
88
- assert_equal "local_filename", e["image"]
89
- end
90
-
91
- def test_extension_unknown_type
92
- e = Entry.new
93
- e.image = uploaded_file(file_path("kerb.jpg"), "not/known", "local_filename")
94
- assert_equal "local_filename", File.basename(e.image)
95
- assert_equal "local_filename", e["image"]
96
- end
97
-
98
- def test_extension_unknown_type_with_extension
99
- e = Entry.new
100
- e.image = uploaded_file(file_path("kerb.jpg"), "not/known", "local_filename.abc")
101
- assert_equal "local_filename.abc", File.basename(e.image)
102
- assert_equal "local_filename.abc", e["image"]
103
- end
104
-
105
- def test_extension_corrected
106
- e = Entry.new
107
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "local_filename.jpeg")
108
- assert_equal "local_filename.jpg", File.basename(e.image)
109
- assert_equal "local_filename.jpg", e["image"]
110
- end
111
-
112
- def test_double_extension
113
- e = Entry.new
114
- e.image = uploaded_file(file_path("kerb.jpg"), "application/x-tgz", "local_filename.tar.gz")
115
- assert_equal "local_filename.tar.gz", File.basename(e.image)
116
- assert_equal "local_filename.tar.gz", e["image"]
117
- end
118
-
119
- FILE_UTILITY = "/usr/bin/file"
120
-
121
- def test_get_content_type_with_file
122
- Entry.file_column :image, :file_exec => FILE_UTILITY
123
-
124
- # run this test only if the machine we are running on
125
- # has the file utility installed
126
- if File.executable?(FILE_UTILITY)
127
- e = Entry.new
128
- file = FileColumn::TempUploadedFile.new(e, "image")
129
- file.instance_variable_set :@dir, File.dirname(file_path("kerb.jpg"))
130
- file.instance_variable_set :@filename, File.basename(file_path("kerb.jpg"))
131
-
132
- assert_equal "image/jpeg", file.get_content_type
133
- else
134
- puts "Warning: Skipping test_get_content_type_with_file test as '#{options[:file_exec]}' does not exist"
135
- end
136
- end
137
-
138
- def test_fix_extension_with_file
139
- Entry.file_column :image, :file_exec => FILE_UTILITY
140
-
141
- # run this test only if the machine we are running on
142
- # has the file utility installed
143
- if File.executable?(FILE_UTILITY)
144
- e = Entry.new(:image => uploaded_file(file_path("skanthak.png"), "", "skanthak.jpg"))
145
-
146
- assert_equal "skanthak.png", File.basename(e.image)
147
- else
148
- puts "Warning: Skipping test_fix_extension_with_file test as '#{options[:file_exec]}' does not exist"
149
- end
150
- end
151
-
152
- def test_do_not_fix_file_extensions
153
- Entry.file_column :image, :fix_file_extensions => false
154
-
155
- e = Entry.new(:image => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb"))
156
-
157
- assert_equal "kerb", File.basename(e.image)
158
- end
159
-
160
- def test_correct_extension
161
- e = Entry.new
162
- file = FileColumn::TempUploadedFile.new(e, "image")
163
-
164
- assert_equal "filename.jpg", file.correct_extension("filename.jpeg","jpg")
165
- assert_equal "filename.tar.gz", file.correct_extension("filename.jpg","tar.gz")
166
- assert_equal "filename.jpg", file.correct_extension("filename.tar.gz","jpg")
167
- assert_equal "Protokoll_01.09.2005.doc", file.correct_extension("Protokoll_01.09.2005","doc")
168
- assert_equal "strange.filenames.exist.jpg", file.correct_extension("strange.filenames.exist","jpg")
169
- assert_equal "another.strange.one.jpg", file.correct_extension("another.strange.one.png","jpg")
170
- end
171
-
172
- def test_assign_with_save
173
- e = Entry.new
174
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
175
- tmp_file_path = e.image
176
- assert e.save
177
- assert File.exists?(e.image)
178
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
179
- assert_equal "#{e.id}/kerb.jpg", e.image_relative_path
180
- assert !File.exists?(tmp_file_path), "temporary file '#{tmp_file_path}' not removed"
181
- assert !File.exists?(File.dirname(tmp_file_path)), "temporary directory '#{File.dirname(tmp_file_path)}' not removed"
182
-
183
- local_path = e.image
184
- e = Entry.find(e.id)
185
- assert_equal local_path, e.image
186
- end
187
-
188
- def test_dir_methods
189
- e = Entry.new
190
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
191
- e.save
192
-
193
- assert_equal_paths File.join(RAILS_ROOT, "public", "entry", "image", e.id.to_s), e.image_dir
194
- assert_equal File.join(e.id.to_s), e.image_relative_dir
195
- end
196
-
197
- def test_store_dir_callback
198
- Entry.file_column :image, {:store_dir => :my_store_dir}
199
- e = Entry.new
200
-
201
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
202
- assert e.save
203
-
204
- assert_equal_paths File.join(RAILS_ROOT, "public", "my_store_dir", e.id), e.image_dir
205
- end
206
-
207
- def test_tmp_dir_with_store_dir_callback
208
- Entry.file_column :image, {:store_dir => :my_store_dir}
209
- e = Entry.new
210
- e.image = upload(f("kerb.jpg"))
211
-
212
- assert_equal File.expand_path(File.join(RAILS_ROOT, "public", "my_store_dir", "tmp")), File.expand_path(File.join(e.image_dir,".."))
213
- end
214
-
215
- def test_invalid_store_dir_callback
216
- Entry.file_column :image, {:store_dir => :my_store_dir_doesnt_exit}
217
- e = Entry.new
218
- assert_raise(ArgumentError) {
219
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
220
- e.save
221
- }
222
- end
223
-
224
- def test_subdir_parameter
225
- e = Entry.new
226
- assert_nil e.image("thumb")
227
- assert_nil e.image_relative_path("thumb")
228
- assert_nil e.image(nil)
229
-
230
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
231
-
232
- assert_equal "kerb.jpg", File.basename(e.image("thumb"))
233
- assert_equal "kerb.jpg", File.basename(e.image_relative_path("thumb"))
234
-
235
- assert_equal File.join(e.image_dir,"thumb","kerb.jpg"), e.image("thumb")
236
- assert_match %r{/thumb/kerb\.jpg$}, e.image_relative_path("thumb")
237
-
238
- assert_equal e.image, e.image(nil)
239
- assert_equal e.image_relative_path, e.image_relative_path(nil)
240
- end
241
-
242
- def test_cleanup_after_destroy
243
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
244
- assert e.save
245
- local_path = e.image
246
- assert File.exists?(local_path)
247
- assert e.destroy
248
- assert !File.exists?(local_path), "'#{local_path}' still exists although entry was destroyed"
249
- assert !File.exists?(File.dirname(local_path))
250
- end
251
-
252
- def test_keep_tmp_image
253
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
254
- e.validation_should_fail = true
255
- assert !e.save, "e should not save due to validation errors"
256
- assert File.exists?(local_path = e.image)
257
- image_temp = e.image_temp
258
- e = Entry.new("image_temp" => image_temp)
259
- assert_equal local_path, e.image
260
- assert e.save
261
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
262
- end
263
-
264
- def test_keep_tmp_image_with_existing_image
265
- e = Entry.new("image" =>uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
266
- assert e.save
267
- assert File.exists?(local_path = e.image)
268
- e = Entry.find(e.id)
269
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
270
- e.validation_should_fail = true
271
- assert !e.save
272
- temp_path = e.image_temp
273
- e = Entry.find(e.id)
274
- e.image_temp = temp_path
275
- assert e.save
276
-
277
- assert FileUtils.identical?(e.image, file_path("skanthak.png"))
278
- assert !File.exists?(local_path), "old image has not been deleted"
279
- end
280
-
281
- def test_replace_tmp_image_temp_first
282
- do_test_replace_tmp_image([:image_temp, :image])
283
- end
284
-
285
- def test_replace_tmp_image_temp_last
286
- do_test_replace_tmp_image([:image, :image_temp])
287
- end
288
-
289
- def do_test_replace_tmp_image(order)
290
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
291
- e.validation_should_fail = true
292
- assert !e.save
293
- image_temp = e.image_temp
294
- temp_path = e.image
295
- new_img = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
296
- e = Entry.new
297
- for method in order
298
- case method
299
- when :image_temp then e.image_temp = image_temp
300
- when :image then e.image = new_img
301
- end
302
- end
303
- assert e.save
304
- assert FileUtils.identical?(e.image, file_path("skanthak.png")), "'#{e.image}' is not the expected 'skanthak.png'"
305
- assert !File.exists?(temp_path), "temporary file '#{temp_path}' is not cleaned up"
306
- assert !File.exists?(File.dirname(temp_path)), "temporary directory not cleaned up"
307
- assert e.image_just_uploaded?
308
- end
309
-
310
- def test_replace_image_on_saved_object
311
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
312
- assert e.save
313
- old_file = e.image
314
- e = Entry.find(e.id)
315
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
316
- assert e.save
317
- assert FileUtils.identical?(file_path("skanthak.png"), e.image)
318
- assert old_file != e.image
319
- assert !File.exists?(old_file), "'#{old_file}' has not been cleaned up"
320
- end
321
-
322
- def test_edit_without_touching_image
323
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
324
- assert e.save
325
- e = Entry.find(e.id)
326
- assert e.save
327
- assert FileUtils.identical?(file_path("kerb.jpg"), e.image)
328
- end
329
-
330
- def test_save_without_image
331
- e = Entry.new
332
- assert e.save
333
- e.reload
334
- assert_nil e.image
335
- end
336
-
337
- def test_delete_saved_image
338
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
339
- assert e.save
340
- local_path = e.image
341
- e.image = nil
342
- assert_nil e.image
343
- assert File.exists?(local_path), "file '#{local_path}' should not be deleted until transaction is saved"
344
- assert e.save
345
- assert_nil e.image
346
- assert !File.exists?(local_path)
347
- e.reload
348
- assert e["image"].blank?
349
- e = Entry.find(e.id)
350
- assert_nil e.image
351
- end
352
-
353
- def test_delete_tmp_image
354
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
355
- local_path = e.image
356
- e.image = nil
357
- assert_nil e.image
358
- assert e["image"].blank?
359
- assert !File.exists?(local_path)
360
- end
361
-
362
- def test_delete_nonexistant_image
363
- e = Entry.new
364
- e.image = nil
365
- assert e.save
366
- assert_nil e.image
367
- end
368
-
369
- def test_delete_image_on_non_null_column
370
- e = Entry.new("file" => upload(f("skanthak.png")))
371
- assert e.save
372
-
373
- local_path = e.file
374
- assert File.exists?(local_path)
375
- e.file = nil
376
- assert e.save
377
- assert !File.exists?(local_path)
378
- end
379
-
380
- def test_ie_filename
381
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg'))
382
- assert e.image_relative_path =~ /^tmp\/[\d\.]+\/kerb\.jpg$/, "relative path '#{e.image_relative_path}' was not as expected"
383
- assert File.exists?(e.image)
384
- end
385
-
386
- def test_just_uploaded?
387
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg'))
388
- assert e.image_just_uploaded?
389
- assert e.save
390
- assert e.image_just_uploaded?
391
-
392
- e = Entry.new("image" => uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'kerb.jpg'))
393
- temp_path = e.image_temp
394
- e = Entry.new("image_temp" => temp_path)
395
- assert !e.image_just_uploaded?
396
- assert e.save
397
- assert !e.image_just_uploaded?
398
- end
399
-
400
- def test_empty_tmp
401
- e = Entry.new
402
- e.image_temp = ""
403
- assert_nil e.image
404
- end
405
-
406
- def test_empty_tmp_with_image
407
- e = Entry.new
408
- e.image_temp = ""
409
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", 'c:\images\kerb.jpg')
410
- local_path = e.image
411
- assert File.exists?(local_path)
412
- e.image_temp = ""
413
- assert local_path, e.image
414
- end
415
-
416
- def test_empty_filename
417
- e = Entry.new
418
- assert_equal "", e["file"]
419
- assert_nil e.file
420
- assert_nil e["image"]
421
- assert_nil e.image
422
- end
423
-
424
- def test_with_two_file_columns
425
- e = Entry.new
426
- e.image = uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg")
427
- e.file = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
428
- assert e.save
429
- assert_match %{/entry/image/}, e.image
430
- assert_match %{/entry/file/}, e.file
431
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
432
- assert FileUtils.identical?(e.file, file_path("skanthak.png"))
433
- end
434
-
435
- def test_with_two_models
436
- e = Entry.new(:image => uploaded_file(file_path("kerb.jpg"), "image/jpeg", "kerb.jpg"))
437
- m = Movie.new(:movie => uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png"))
438
- assert e.save
439
- assert m.save
440
- assert_match %{/entry/image/}, e.image
441
- assert_match %{/movie/movie/}, m.movie
442
- assert FileUtils.identical?(e.image, file_path("kerb.jpg"))
443
- assert FileUtils.identical?(m.movie, file_path("skanthak.png"))
444
- end
445
-
446
- def test_no_file_uploaded
447
- e = Entry.new
448
- assert_nothing_raised { e.image =
449
- uploaded_file(nil, "application/octet-stream", "", :stringio) }
450
- assert_equal nil, e.image
451
- end
452
-
453
- # when safari submits a form where no file has been
454
- # selected, it does not transmit a content-type and
455
- # the result is an empty string ""
456
- def test_no_file_uploaded_with_safari
457
- e = Entry.new
458
- assert_nothing_raised { e.image = "" }
459
- assert_equal nil, e.image
460
- end
461
-
462
- def test_detect_wrong_encoding
463
- e = Entry.new
464
- assert_raise(TypeError) { e.image ="img42.jpg" }
465
- end
466
-
467
- def test_serializable_before_save
468
- e = Entry.new
469
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
470
- assert_nothing_raised {
471
- flash = Marshal.dump(e)
472
- e = Marshal.load(flash)
473
- }
474
- assert File.exists?(e.image)
475
- end
476
-
477
- def test_should_call_after_upload_on_new_upload
478
- Entry.file_column :image, :after_upload => [:after_assign]
479
- e = Entry.new
480
- e.image = upload(f("skanthak.png"))
481
- assert e.after_assign_called?
482
- end
483
-
484
- def test_should_call_user_after_save_on_save
485
- e = Entry.new(:image => upload(f("skanthak.png")))
486
- assert e.save
487
-
488
- assert_kind_of FileColumn::PermanentUploadedFile, e.send(:image_state)
489
- assert e.after_save_called?
490
- end
491
-
492
-
493
- def test_assign_standard_files
494
- e = Entry.new
495
- e.image = File.new(file_path('skanthak.png'))
496
-
497
- assert_equal 'skanthak.png', File.basename(e.image)
498
- assert FileUtils.identical?(file_path('skanthak.png'), e.image)
499
-
500
- assert e.save
501
- end
502
-
503
-
504
- def test_validates_filesize
505
- Entry.validates_filesize_of :image, :in => 50.kilobytes..100.kilobytes
506
-
507
- e = Entry.new(:image => upload(f("kerb.jpg")))
508
- assert e.save
509
-
510
- e.image = upload(f("skanthak.png"))
511
- assert !e.save
512
- assert e.errors.invalid?("image")
513
- end
514
-
515
- def test_validates_file_format_simple
516
- e = Entry.new(:image => upload(f("skanthak.png")))
517
- assert e.save
518
-
519
- Entry.validates_file_format_of :image, :in => ["jpg"]
520
-
521
- e.image = upload(f("kerb.jpg"))
522
- assert e.save
523
-
524
- e.image = upload(f("mysql.sql"))
525
- assert !e.save
526
- assert e.errors.invalid?("image")
527
-
528
- end
529
-
530
- def test_validates_image_size
531
- Entry.validates_image_size :image, :min => "640x480"
532
-
533
- e = Entry.new(:image => upload(f("kerb.jpg")))
534
- assert e.save
535
-
536
- e = Entry.new(:image => upload(f("skanthak.png")))
537
- assert !e.save
538
- assert e.errors.invalid?("image")
539
- end
540
-
541
- def do_permission_test(uploaded_file, permissions=0641)
542
- Entry.file_column :image, :permissions => permissions
543
-
544
- e = Entry.new(:image => uploaded_file)
545
- assert e.save
546
-
547
- assert_equal permissions, (File.stat(e.image).mode & 0777)
548
- end
549
-
550
- def test_permissions_with_small_file
551
- do_permission_test upload(f("skanthak.png"), :guess, :stringio)
552
- end
553
-
554
- def test_permission_with_big_file
555
- do_permission_test upload(f("kerb.jpg"))
556
- end
557
-
558
- def test_permission_that_overrides_umask
559
- do_permission_test upload(f("skanthak.png"), :guess, :stringio), 0666
560
- do_permission_test upload(f("kerb.jpg")), 0666
561
- end
562
-
563
- def test_access_with_empty_id
564
- # an empty id might happen after a clone or through some other
565
- # strange event. Since we would create a path that contains nothing
566
- # where the id would have been, we should fail fast with an exception
567
- # in this case
568
-
569
- e = Entry.new(:image => upload(f("skanthak.png")))
570
- assert e.save
571
- id = e.id
572
-
573
- e = Entry.find(id)
574
-
575
- e["id"] = ""
576
- assert_raise(RuntimeError) { e.image }
577
-
578
- e = Entry.find(id)
579
- e["id"] = nil
580
- assert_raise(RuntimeError) { e.image }
581
- end
582
- end
583
-
584
- # Tests for moving temp dir to permanent dir
585
- class FileColumnMoveTest < Test::Unit::TestCase
586
-
587
- def setup
588
- # we define the file_columns here so that we can change
589
- # settings easily in a single test
590
-
591
- Entry.file_column :image
592
-
593
- end
594
-
595
- def teardown
596
- FileUtils.rm_rf File.dirname(__FILE__)+"/public/entry/"
597
- end
598
-
599
- def test_should_move_additional_files_from_tmp
600
- e = Entry.new
601
- e.image = uploaded_file(file_path("skanthak.png"), "image/png", "skanthak.png")
602
- FileUtils.cp file_path("kerb.jpg"), File.dirname(e.image)
603
- assert e.save
604
- dir = File.dirname(e.image)
605
- assert File.exists?(File.join(dir, "skanthak.png"))
606
- assert File.exists?(File.join(dir, "kerb.jpg"))
607
- end
608
-
609
- def test_should_move_direcotries_on_save
610
- e = Entry.new(:image => upload(f("skanthak.png")))
611
-
612
- FileUtils.mkdir( e.image_dir+"/foo" )
613
- FileUtils.cp file_path("kerb.jpg"), e.image_dir+"/foo/kerb.jpg"
614
-
615
- assert e.save
616
-
617
- assert File.exists?(e.image)
618
- assert File.exists?(File.dirname(e.image)+"/foo/kerb.jpg")
619
- end
620
-
621
- def test_should_overwrite_dirs_with_files_on_reupload
622
- e = Entry.new(:image => upload(f("skanthak.png")))
623
-
624
- FileUtils.mkdir( e.image_dir+"/kerb.jpg")
625
- FileUtils.cp file_path("kerb.jpg"), e.image_dir+"/kerb.jpg/"
626
- assert e.save
627
-
628
- e.image = upload(f("kerb.jpg"))
629
- assert e.save
630
-
631
- assert File.file?(e.image_dir+"/kerb.jpg")
632
- end
633
-
634
- def test_should_overwrite_files_with_dirs_on_reupload
635
- e = Entry.new(:image => upload(f("skanthak.png")))
636
-
637
- assert e.save
638
- assert File.file?(e.image_dir+"/skanthak.png")
639
-
640
- e.image = upload(f("kerb.jpg"))
641
- FileUtils.mkdir(e.image_dir+"/skanthak.png")
642
-
643
- assert e.save
644
- assert File.file?(e.image_dir+"/kerb.jpg")
645
- assert !File.file?(e.image_dir+"/skanthak.png")
646
- assert File.directory?(e.image_dir+"/skanthak.png")
647
- end
648
-
649
- end
650
-
@@ -1,32 +0,0 @@
1
- class Entry < ActiveRecord::Base
2
- attr_accessor :validation_should_fail
3
-
4
- def validate
5
- errors.add("image","some stupid error") if @validation_should_fail
6
- end
7
-
8
- def after_assign
9
- @after_assign_called = true
10
- end
11
-
12
- def after_assign_called?
13
- @after_assign_called
14
- end
15
-
16
- def after_save
17
- @after_save_called = true
18
- end
19
-
20
- def after_save_called?
21
- @after_save_called
22
- end
23
-
24
- def my_store_dir
25
- # not really dynamic but at least it could be...
26
- "my_store_dir"
27
- end
28
-
29
- def load_image_with_rmagick(path)
30
- Magick::Image::read(path).first
31
- end
32
- end
@@ -1 +0,0 @@
1
- this is certainly not a JPEG image