spree 0.11.2 → 0.11.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of spree might be problematic. Click here for more details.

Files changed (249) hide show
  1. data/Rakefile +9 -8
  2. data/app/controllers/admin/base_controller.rb +31 -0
  3. data/app/controllers/admin/general_settings_controller.rb +9 -0
  4. data/app/controllers/admin/orders_controller.rb +8 -3
  5. data/app/controllers/admin/payments_controller.rb +8 -3
  6. data/app/controllers/admin/shipments_controller.rb +7 -2
  7. data/app/models/address.rb +42 -25
  8. data/app/models/app_configuration.rb +3 -0
  9. data/app/models/billing_integration.rb +1 -1
  10. data/app/models/line_item.rb +1 -1
  11. data/app/models/payment.rb +1 -1
  12. data/app/models/product_group.rb +8 -4
  13. data/app/models/spree/alert.rb +13 -0
  14. data/config/boot.rb +1 -1
  15. data/config/environment.rb +3 -3
  16. data/config/environments/test.rb +1 -1
  17. data/config/locales/en_spree.yml +3 -0
  18. data/config/routes.rb +2 -1
  19. data/lib/generators/extension/templates/Rakefile +1 -1
  20. data/lib/plugins/option_tags_with_disable/Rakefile +1 -1
  21. data/lib/spree.rb +2 -2
  22. data/lib/spree/checkout/action_options.rb +2 -2
  23. data/lib/spree/extension_loader.rb +1 -1
  24. data/lib/spree/initializer.rb +3 -2
  25. data/lib/validation_group.rb +2 -2
  26. data/vendor/extensions/api/Rakefile +1 -1
  27. data/vendor/extensions/overview_dashboard/Rakefile +1 -1
  28. data/vendor/extensions/payment_gateway/Rakefile +1 -1
  29. data/vendor/extensions/payment_gateway/app/models/gateway/authorize_net.rb +8 -2
  30. data/vendor/extensions/payment_gateway/app/models/gateway/authorize_net_cim.rb +6 -0
  31. data/vendor/extensions/theme_default/Rakefile +1 -1
  32. data/vendor/extensions/theme_default/app/views/admin/adjustments/_form.html.erb +0 -3
  33. data/vendor/extensions/theme_default/app/views/admin/adjustments/new.html.erb +3 -0
  34. data/vendor/extensions/theme_default/app/views/admin/general_settings/edit.html.erb +8 -0
  35. data/vendor/extensions/theme_default/app/views/admin/general_settings/show.html.erb +5 -0
  36. data/vendor/extensions/theme_default/app/views/admin/shared/_alert.html.erb +11 -0
  37. data/vendor/extensions/theme_default/app/views/layouts/admin.html.erb +1 -1
  38. data/vendor/extensions/theme_default/public/stylesheets/admin/admin.css +30 -1
  39. data/vendor/plugins/acts_as_tree/Rakefile +1 -1
  40. data/vendor/plugins/attribute_fu/Rakefile +1 -1
  41. data/vendor/plugins/auto_complete/Rakefile +1 -1
  42. data/vendor/plugins/awesome_nested_set/Rakefile +1 -1
  43. data/vendor/plugins/awesome_nested_set/lib/awesome_nested_set.rb +3 -3
  44. data/vendor/plugins/delegate_belongs_to/Rakefile +1 -1
  45. data/vendor/plugins/enumerable_constants/Rakefile +1 -1
  46. data/vendor/plugins/find_by_param/Rakefile +1 -1
  47. data/vendor/plugins/in_place_editing/Rakefile +1 -1
  48. data/vendor/plugins/jrails_auto_complete/Rakefile +1 -1
  49. data/vendor/plugins/mail_queue/Rakefile +1 -1
  50. data/vendor/plugins/open_id_authentication/Rakefile +1 -1
  51. data/vendor/plugins/resource_controller/lib/resource_controller/action_options.rb +1 -1
  52. data/vendor/plugins/resource_controller/lib/resource_controller/failable_action_options.rb +1 -1
  53. data/vendor/plugins/resource_controller/test/app/controllers/accounts_controller.rb +6 -0
  54. data/vendor/plugins/resource_controller/test/app/controllers/application.rb +7 -0
  55. data/vendor/plugins/resource_controller/test/app/controllers/cms/options_controller.rb +3 -0
  56. data/vendor/plugins/resource_controller/test/app/controllers/cms/personnel_controller.rb +2 -0
  57. data/vendor/plugins/resource_controller/test/app/controllers/cms/photos_controller.rb +6 -0
  58. data/vendor/plugins/resource_controller/test/app/controllers/cms/products_controller.rb +3 -0
  59. data/vendor/plugins/resource_controller/test/app/controllers/comments_controller.rb +3 -0
  60. data/vendor/plugins/resource_controller/test/app/controllers/images_controller.rb +4 -0
  61. data/vendor/plugins/resource_controller/test/app/controllers/options_controller.rb +8 -0
  62. data/vendor/plugins/resource_controller/test/app/controllers/people_controller.rb +9 -0
  63. data/vendor/plugins/resource_controller/test/app/controllers/photos_controller.rb +11 -0
  64. data/vendor/plugins/resource_controller/test/app/controllers/posts_controller.rb +10 -0
  65. data/vendor/plugins/resource_controller/test/app/controllers/projects_controller.rb +3 -0
  66. data/vendor/plugins/resource_controller/test/app/controllers/somethings_controller.rb +3 -0
  67. data/vendor/plugins/resource_controller/test/app/controllers/tags_controller.rb +13 -0
  68. data/vendor/plugins/resource_controller/test/app/controllers/users_controller.rb +12 -0
  69. data/vendor/plugins/resource_controller/test/app/helpers/accounts_helper.rb +2 -0
  70. data/vendor/plugins/resource_controller/test/app/helpers/application_helper.rb +3 -0
  71. data/vendor/plugins/resource_controller/test/app/helpers/cms/products_helper.rb +2 -0
  72. data/vendor/plugins/resource_controller/test/app/helpers/comments_helper.rb +2 -0
  73. data/vendor/plugins/resource_controller/test/app/helpers/images_helper.rb +2 -0
  74. data/vendor/plugins/resource_controller/test/app/helpers/options_helper.rb +2 -0
  75. data/vendor/plugins/resource_controller/test/app/helpers/people_helper.rb +2 -0
  76. data/vendor/plugins/resource_controller/test/app/helpers/photos_helper.rb +2 -0
  77. data/vendor/plugins/resource_controller/test/app/helpers/posts_helper.rb +2 -0
  78. data/vendor/plugins/resource_controller/test/app/helpers/projects_helper.rb +2 -0
  79. data/vendor/plugins/resource_controller/test/app/helpers/somethings_helper.rb +2 -0
  80. data/vendor/plugins/resource_controller/test/app/helpers/tags_helper.rb +2 -0
  81. data/vendor/plugins/resource_controller/test/app/helpers/users_helper.rb +2 -0
  82. data/vendor/plugins/resource_controller/test/app/models/account.rb +4 -0
  83. data/vendor/plugins/resource_controller/test/app/models/comment.rb +3 -0
  84. data/vendor/plugins/resource_controller/test/app/models/image.rb +3 -0
  85. data/vendor/plugins/resource_controller/test/app/models/option.rb +3 -0
  86. data/vendor/plugins/resource_controller/test/app/models/personnel.rb +3 -0
  87. data/vendor/plugins/resource_controller/test/app/models/photo.rb +5 -0
  88. data/vendor/plugins/resource_controller/test/app/models/post.rb +3 -0
  89. data/vendor/plugins/resource_controller/test/app/models/product.rb +3 -0
  90. data/vendor/plugins/resource_controller/test/app/models/project.rb +2 -0
  91. data/vendor/plugins/resource_controller/test/app/models/something.rb +2 -0
  92. data/vendor/plugins/resource_controller/test/app/models/tag.rb +3 -0
  93. data/vendor/plugins/resource_controller/test/app/models/user.rb +3 -0
  94. data/vendor/plugins/resource_controller/test/app/views/accounts/_form.html.erb +4 -0
  95. data/vendor/plugins/resource_controller/test/app/views/accounts/edit.html.erb +14 -0
  96. data/vendor/plugins/resource_controller/test/app/views/accounts/new.html.erb +12 -0
  97. data/vendor/plugins/resource_controller/test/app/views/accounts/show.html.erb +5 -0
  98. data/vendor/plugins/resource_controller/test/app/views/cms/options/edit.rhtml +17 -0
  99. data/vendor/plugins/resource_controller/test/app/views/cms/options/index.rhtml +20 -0
  100. data/vendor/plugins/resource_controller/test/app/views/cms/options/new.rhtml +16 -0
  101. data/vendor/plugins/resource_controller/test/app/views/cms/options/show.rhtml +8 -0
  102. data/vendor/plugins/resource_controller/test/app/views/cms/photos/edit.rhtml +17 -0
  103. data/vendor/plugins/resource_controller/test/app/views/cms/photos/index.rhtml +20 -0
  104. data/vendor/plugins/resource_controller/test/app/views/cms/photos/new.rhtml +16 -0
  105. data/vendor/plugins/resource_controller/test/app/views/cms/photos/show.rhtml +8 -0
  106. data/vendor/plugins/resource_controller/test/app/views/cms/products/edit.rhtml +17 -0
  107. data/vendor/plugins/resource_controller/test/app/views/cms/products/index.rhtml +20 -0
  108. data/vendor/plugins/resource_controller/test/app/views/cms/products/new.rhtml +16 -0
  109. data/vendor/plugins/resource_controller/test/app/views/cms/products/show.rhtml +8 -0
  110. data/vendor/plugins/resource_controller/test/app/views/comments/edit.rhtml +27 -0
  111. data/vendor/plugins/resource_controller/test/app/views/comments/index.rhtml +24 -0
  112. data/vendor/plugins/resource_controller/test/app/views/comments/new.rhtml +26 -0
  113. data/vendor/plugins/resource_controller/test/app/views/comments/show.rhtml +18 -0
  114. data/vendor/plugins/resource_controller/test/app/views/images/_form.html.erb +4 -0
  115. data/vendor/plugins/resource_controller/test/app/views/images/edit.html.erb +14 -0
  116. data/vendor/plugins/resource_controller/test/app/views/images/new.html.erb +12 -0
  117. data/vendor/plugins/resource_controller/test/app/views/layouts/application.rhtml +17 -0
  118. data/vendor/plugins/resource_controller/test/app/views/layouts/comments.rhtml +17 -0
  119. data/vendor/plugins/resource_controller/test/app/views/layouts/options.rhtml +17 -0
  120. data/vendor/plugins/resource_controller/test/app/views/layouts/people.rhtml +17 -0
  121. data/vendor/plugins/resource_controller/test/app/views/layouts/photos.rhtml +17 -0
  122. data/vendor/plugins/resource_controller/test/app/views/layouts/projects.rhtml +17 -0
  123. data/vendor/plugins/resource_controller/test/app/views/layouts/somethings.rhtml +17 -0
  124. data/vendor/plugins/resource_controller/test/app/views/layouts/tags.rhtml +17 -0
  125. data/vendor/plugins/resource_controller/test/app/views/options/_form.html.erb +8 -0
  126. data/vendor/plugins/resource_controller/test/app/views/options/edit.html.erb +16 -0
  127. data/vendor/plugins/resource_controller/test/app/views/options/index.html.erb +21 -0
  128. data/vendor/plugins/resource_controller/test/app/views/options/new.html.erb +12 -0
  129. data/vendor/plugins/resource_controller/test/app/views/options/show.html.erb +10 -0
  130. data/vendor/plugins/resource_controller/test/app/views/people/edit.rhtml +17 -0
  131. data/vendor/plugins/resource_controller/test/app/views/people/index.rhtml +20 -0
  132. data/vendor/plugins/resource_controller/test/app/views/people/new.rhtml +16 -0
  133. data/vendor/plugins/resource_controller/test/app/views/people/show.rhtml +8 -0
  134. data/vendor/plugins/resource_controller/test/app/views/photos/edit.rhtml +17 -0
  135. data/vendor/plugins/resource_controller/test/app/views/photos/index.rhtml +20 -0
  136. data/vendor/plugins/resource_controller/test/app/views/photos/new.rhtml +16 -0
  137. data/vendor/plugins/resource_controller/test/app/views/photos/show.rhtml +8 -0
  138. data/vendor/plugins/resource_controller/test/app/views/posts/edit.rhtml +22 -0
  139. data/vendor/plugins/resource_controller/test/app/views/posts/index.rhtml +22 -0
  140. data/vendor/plugins/resource_controller/test/app/views/posts/new.rhtml +21 -0
  141. data/vendor/plugins/resource_controller/test/app/views/posts/show.rhtml +13 -0
  142. data/vendor/plugins/resource_controller/test/app/views/projects/edit.rhtml +17 -0
  143. data/vendor/plugins/resource_controller/test/app/views/projects/index.rhtml +20 -0
  144. data/vendor/plugins/resource_controller/test/app/views/projects/new.rhtml +16 -0
  145. data/vendor/plugins/resource_controller/test/app/views/projects/show.rhtml +8 -0
  146. data/vendor/plugins/resource_controller/test/app/views/somethings/edit.rhtml +17 -0
  147. data/vendor/plugins/resource_controller/test/app/views/somethings/index.rhtml +20 -0
  148. data/vendor/plugins/resource_controller/test/app/views/somethings/new.rhtml +16 -0
  149. data/vendor/plugins/resource_controller/test/app/views/somethings/show.rhtml +8 -0
  150. data/vendor/plugins/resource_controller/test/app/views/tags/edit.rhtml +17 -0
  151. data/vendor/plugins/resource_controller/test/app/views/tags/index.rhtml +20 -0
  152. data/vendor/plugins/resource_controller/test/app/views/tags/index.rjs +0 -0
  153. data/vendor/plugins/resource_controller/test/app/views/tags/new.rhtml +16 -0
  154. data/vendor/plugins/resource_controller/test/app/views/tags/show.rhtml +8 -0
  155. data/vendor/plugins/resource_controller/test/app/views/users/edit.rhtml +17 -0
  156. data/vendor/plugins/resource_controller/test/app/views/users/index.rhtml +20 -0
  157. data/vendor/plugins/resource_controller/test/app/views/users/new.rhtml +16 -0
  158. data/vendor/plugins/resource_controller/test/app/views/users/show.rhtml +8 -0
  159. data/vendor/plugins/resource_controller/test/config/boot.rb +109 -0
  160. data/vendor/plugins/resource_controller/test/config/database.yml +9 -0
  161. data/vendor/plugins/resource_controller/test/config/environment.rb +47 -0
  162. data/vendor/plugins/resource_controller/test/config/environments/development.rb +21 -0
  163. data/vendor/plugins/resource_controller/test/config/environments/test.rb +19 -0
  164. data/vendor/plugins/resource_controller/test/config/initializers/inflections.rb +14 -0
  165. data/vendor/plugins/resource_controller/test/config/routes.rb +61 -0
  166. data/vendor/plugins/resource_controller/test/db/migrate/001_create_posts.rb +12 -0
  167. data/vendor/plugins/resource_controller/test/db/migrate/002_create_products.rb +11 -0
  168. data/vendor/plugins/resource_controller/test/db/migrate/003_create_comments.rb +13 -0
  169. data/vendor/plugins/resource_controller/test/db/migrate/004_create_options.rb +13 -0
  170. data/vendor/plugins/resource_controller/test/db/migrate/005_create_photos.rb +11 -0
  171. data/vendor/plugins/resource_controller/test/db/migrate/006_create_tags.rb +17 -0
  172. data/vendor/plugins/resource_controller/test/db/migrate/007_create_somethings.rb +11 -0
  173. data/vendor/plugins/resource_controller/test/db/migrate/008_create_accounts.rb +11 -0
  174. data/vendor/plugins/resource_controller/test/db/migrate/009_add_account_id_to_photos.rb +9 -0
  175. data/vendor/plugins/resource_controller/test/db/migrate/010_create_projects.rb +11 -0
  176. data/vendor/plugins/resource_controller/test/db/migrate/011_create_images.rb +12 -0
  177. data/vendor/plugins/resource_controller/test/db/migrate/012_create_users.rb +11 -0
  178. data/vendor/plugins/resource_controller/test/db/migrate/013_create_personnel.rb +11 -0
  179. data/vendor/plugins/resource_controller/test/db/migrate/014_add_personnel_id_to_photos.rb +9 -0
  180. data/vendor/plugins/resource_controller/test/db/schema.rb +78 -0
  181. data/vendor/plugins/resource_controller/test/script/console +3 -0
  182. data/vendor/plugins/resource_controller/test/script/destroy +3 -0
  183. data/vendor/plugins/resource_controller/test/script/generate +3 -0
  184. data/vendor/plugins/resource_controller/test/script/server +3 -0
  185. data/vendor/plugins/resource_controller/test/test/fixtures/accounts.yml +7 -0
  186. data/vendor/plugins/resource_controller/test/test/fixtures/comments.yml +11 -0
  187. data/vendor/plugins/resource_controller/test/test/fixtures/images.yml +6 -0
  188. data/vendor/plugins/resource_controller/test/test/fixtures/options.yml +9 -0
  189. data/vendor/plugins/resource_controller/test/test/fixtures/personnel.yml +5 -0
  190. data/vendor/plugins/resource_controller/test/test/fixtures/photos.yml +9 -0
  191. data/vendor/plugins/resource_controller/test/test/fixtures/photos_tags.yml +3 -0
  192. data/vendor/plugins/resource_controller/test/test/fixtures/posts.yml +9 -0
  193. data/vendor/plugins/resource_controller/test/test/fixtures/products.yml +7 -0
  194. data/vendor/plugins/resource_controller/test/test/fixtures/projects.yml +7 -0
  195. data/vendor/plugins/resource_controller/test/test/fixtures/somethings.yml +7 -0
  196. data/vendor/plugins/resource_controller/test/test/fixtures/tags.yml +7 -0
  197. data/vendor/plugins/resource_controller/test/test/fixtures/users.yml +5 -0
  198. data/vendor/plugins/resource_controller/test/test/functional/cms/options_controller_test.rb +23 -0
  199. data/vendor/plugins/resource_controller/test/test/functional/cms/photos_controller_test.rb +43 -0
  200. data/vendor/plugins/resource_controller/test/test/functional/cms/products_controller_test.rb +23 -0
  201. data/vendor/plugins/resource_controller/test/test/functional/comments_controller_test.rb +26 -0
  202. data/vendor/plugins/resource_controller/test/test/functional/images_controller_test.rb +37 -0
  203. data/vendor/plugins/resource_controller/test/test/functional/people_controller_test.rb +34 -0
  204. data/vendor/plugins/resource_controller/test/test/functional/photos_controller_test.rb +130 -0
  205. data/vendor/plugins/resource_controller/test/test/functional/posts_controller_test.rb +34 -0
  206. data/vendor/plugins/resource_controller/test/test/functional/projects_controller_test.rb +18 -0
  207. data/vendor/plugins/resource_controller/test/test/functional/somethings_controller_test.rb +28 -0
  208. data/vendor/plugins/resource_controller/test/test/functional/tags_controller_test.rb +64 -0
  209. data/vendor/plugins/resource_controller/test/test/functional/users_controller_test.rb +24 -0
  210. data/vendor/plugins/resource_controller/test/test/test_helper.rb +12 -0
  211. data/vendor/plugins/resource_controller/test/test/unit/accessors_test.rb +110 -0
  212. data/vendor/plugins/resource_controller/test/test/unit/account_test.rb +7 -0
  213. data/vendor/plugins/resource_controller/test/test/unit/action_options_test.rb +109 -0
  214. data/vendor/plugins/resource_controller/test/test/unit/base_test.rb +11 -0
  215. data/vendor/plugins/resource_controller/test/test/unit/comment_test.rb +10 -0
  216. data/vendor/plugins/resource_controller/test/test/unit/failable_action_options_test.rb +77 -0
  217. data/vendor/plugins/resource_controller/test/test/unit/helpers/current_objects_test.rb +133 -0
  218. data/vendor/plugins/resource_controller/test/test/unit/helpers/internal_test.rb +106 -0
  219. data/vendor/plugins/resource_controller/test/test/unit/helpers/nested_test.rb +86 -0
  220. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_current_objects_test.rb +68 -0
  221. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_nested_test.rb +77 -0
  222. data/vendor/plugins/resource_controller/test/test/unit/helpers/singleton_urls_test.rb +67 -0
  223. data/vendor/plugins/resource_controller/test/test/unit/helpers/urls_test.rb +75 -0
  224. data/vendor/plugins/resource_controller/test/test/unit/helpers_test.rb +25 -0
  225. data/vendor/plugins/resource_controller/test/test/unit/image_test.rb +7 -0
  226. data/vendor/plugins/resource_controller/test/test/unit/option_test.rb +10 -0
  227. data/vendor/plugins/resource_controller/test/test/unit/photo_test.rb +10 -0
  228. data/vendor/plugins/resource_controller/test/test/unit/post_test.rb +10 -0
  229. data/vendor/plugins/resource_controller/test/test/unit/project_test.rb +10 -0
  230. data/vendor/plugins/resource_controller/test/test/unit/response_collector_test.rb +49 -0
  231. data/vendor/plugins/resource_controller/test/test/unit/something_test.rb +10 -0
  232. data/vendor/plugins/resource_controller/test/test/unit/tag_test.rb +10 -0
  233. data/vendor/plugins/resource_controller/test/test/unit/urligence_test.rb +203 -0
  234. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/Rakefile +32 -0
  235. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/bin/convert_to_should_syntax +40 -0
  236. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/init.rb +3 -0
  237. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda.rb +43 -0
  238. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/active_record_helpers.rb +580 -0
  239. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/color.rb +77 -0
  240. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/controller_tests.rb +467 -0
  241. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/html.rb +201 -0
  242. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/controller_tests/formats/xml.rb +170 -0
  243. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/gem/proc_extensions.rb +14 -0
  244. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/gem/shoulda.rb +239 -0
  245. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/general.rb +118 -0
  246. data/vendor/plugins/resource_controller/test/vendor/plugins/shoulda/lib/shoulda/private_helpers.rb +22 -0
  247. data/vendor/plugins/ssl_requirement/lib/ssl_requirement.rb +2 -2
  248. data/vendor/plugins/unobtrusive_date_picker/Rakefile +1 -1
  249. metadata +270 -145
@@ -0,0 +1,133 @@
1
+ require File.dirname(__FILE__)+'/../../test_helper'
2
+
3
+ class Helpers::CurrentObjectsTest < Test::Unit::TestCase
4
+ def setup
5
+ @controller = PostsController.new
6
+
7
+ @params = stub :[] => "1"
8
+ @controller.stubs(:params).returns(@params)
9
+
10
+ @request = stub :path => ""
11
+ @controller.stubs(:request).returns(@request)
12
+
13
+ @object = Post.new
14
+ Post.stubs(:find).with("1").returns(@object)
15
+
16
+ @collection = mock()
17
+ Post.stubs(:find).with(:all).returns(@collection)
18
+ end
19
+
20
+ context "model helper" do
21
+ should "return constant" do
22
+ assert_equal Post, @controller.send(:model)
23
+ end
24
+ end
25
+
26
+ context "collection helper" do
27
+ should "find all" do
28
+ assert_equal @collection, @controller.send(:collection)
29
+ end
30
+ end
31
+
32
+ context "param helper" do
33
+ should "return the correct param" do
34
+ assert_equal "1", @controller.send(:param)
35
+ end
36
+ end
37
+
38
+ context "object helper" do
39
+ should "find the correct object" do
40
+ assert_equal @object, @controller.send(:object)
41
+ end
42
+ end
43
+
44
+ context "load object helper" do
45
+ setup do
46
+ @controller.send(:load_object)
47
+ end
48
+
49
+ should "load object as instance variable" do
50
+ assert_equal @object, @controller.instance_variable_get("@post")
51
+ end
52
+
53
+ context "with an alternate object_name" do
54
+ setup do
55
+ @controller.stubs(:object_name).returns('asdf')
56
+ @controller.send(:load_object)
57
+ end
58
+
59
+ should "use the variable name" do
60
+ assert_equal @object, @controller.instance_variable_get("@asdf")
61
+ end
62
+ end
63
+ end
64
+
65
+ context "load_collection helper" do
66
+ context "with resource_name" do
67
+ setup do
68
+ @controller.send(:load_collection)
69
+ end
70
+
71
+ should "load collection in to instance variable with plural model_name" do
72
+ assert_equal @collection, @controller.instance_variable_get("@posts")
73
+ end
74
+ end
75
+ end
76
+
77
+ context "object params helper" do
78
+ context "without alternate variable name" do
79
+ setup do
80
+ @params.expects(:[]).with("post").returns(2)
81
+ end
82
+
83
+ should "get params for object" do
84
+ assert_equal 2, @controller.send(:object_params)
85
+ end
86
+ end
87
+
88
+ context "with alternate object_name" do
89
+ setup do
90
+ @params.expects(:[]).with("something").returns(3)
91
+ @controller.expects(:object_name).returns("something")
92
+ end
93
+
94
+ should "use variable name" do
95
+ assert_equal 3, @controller.send(:object_params)
96
+ end
97
+ end
98
+ end
99
+
100
+ context "build object helper" do
101
+ context "with no parents" do
102
+ setup do
103
+ Post.expects(:new).with("1").returns("a new post")
104
+ end
105
+
106
+ should "build new object" do
107
+ assert_equal "a new post", @controller.send(:build_object)
108
+ end
109
+ end
110
+
111
+ context "with parent" do
112
+ setup do
113
+ @comments_controller = CommentsController.new
114
+ @comment_params = stub()
115
+ @comment_params.stubs(:[]).with(:post_id).returns 2
116
+ @comment_params.stubs(:[]).with('comment').returns ""
117
+ @comments_controller.stubs(:params).returns(@comment_params)
118
+
119
+ @request = stub :path => ""
120
+ @comments_controller.stubs(:request).returns(@request)
121
+
122
+ Post.expects(:find).with(2).returns(Post.new)
123
+ @comments = stub()
124
+ @comments.expects(:build).with("").returns("a new comment")
125
+ Post.any_instance.stubs(:comments).returns(@comments)
126
+ end
127
+
128
+ should "build new object" do
129
+ assert_equal "a new comment", @comments_controller.send(:build_object)
130
+ end
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,106 @@
1
+ require File.dirname(__FILE__)+'/../../test_helper'
2
+
3
+ class Helpers::InternalTest < Test::Unit::TestCase
4
+ def setup
5
+ @controller = PostsController.new
6
+
7
+ @params = stub :[] => "1"
8
+ @controller.stubs(:params).returns(@params)
9
+
10
+ @object = Post.new
11
+ Post.stubs(:find).with("1").returns(@object)
12
+
13
+ @collection = mock()
14
+ Post.stubs(:find).with(:all).returns(@collection)
15
+ end
16
+
17
+ context "response_for" do
18
+ setup do
19
+ @options = ResourceController::ActionOptions.new
20
+ @options.response {|wants| wants.html}
21
+ @controller.expects(:respond_to).yields(mock(:html => ""))
22
+ @controller.stubs(:options_for).with(:create).returns( @options )
23
+ end
24
+
25
+ should "yield a wants object to the response block" do
26
+ @controller.send :response_for, :create
27
+ end
28
+ end
29
+
30
+ context "after" do
31
+ setup do
32
+ @options = ResourceController::FailableActionOptions.new
33
+ @options.success.after { }
34
+ @controller.stubs(:options_for).with(:create).returns( @options )
35
+ @nil_options = ResourceController::FailableActionOptions.new
36
+ @controller.stubs(:options_for).with(:non_existent).returns(@nil_options)
37
+ end
38
+
39
+ should "grab the correct block for after create" do
40
+ @controller.send :after, :create
41
+ end
42
+
43
+ should "not choke if there is no block" do
44
+ assert_nothing_raised do
45
+ @controller.send :after, :non_existent
46
+ end
47
+ end
48
+ end
49
+
50
+ context "before" do
51
+ setup do
52
+ PostsController.stubs(:non_existent).returns ResourceController::ActionOptions.new
53
+ end
54
+
55
+ should "not choke if there is no block" do
56
+ assert_nothing_raised do
57
+ @controller.send :before, :non_existent
58
+ end
59
+ end
60
+ end
61
+
62
+ context "get options for action" do
63
+ setup do
64
+ @create = ResourceController::FailableActionOptions.new
65
+ PostsController.stubs(:create).returns @create
66
+ end
67
+
68
+ should "get correct object for failure action" do
69
+ assert_equal @create.fails, @controller.send(:options_for, :create_fails)
70
+ end
71
+
72
+ should "get correct object for successful action" do
73
+ assert_equal @create.success, @controller.send(:options_for, :create)
74
+ end
75
+
76
+ should "get correct object for non-failable action" do
77
+ @index = ResourceController::ActionOptions.new
78
+ PostsController.stubs(:index).returns @index
79
+ assert_equal @index, @controller.send(:options_for, :index)
80
+ end
81
+
82
+ should "understand new_action to mean new" do
83
+ @new_action = ResourceController::ActionOptions.new
84
+ PostsController.stubs(:new_action).returns @new_action
85
+ assert_equal @new_action, @controller.send(:options_for, :new_action)
86
+ end
87
+ end
88
+
89
+ context "flash now helper" do
90
+ setup do
91
+ klass = Class.new do
92
+ include ResourceController::Helpers::Internal
93
+ end
94
+
95
+ @c = klass.new
96
+ @c.stubs(:options_for).returns(stub(:flash_now => 'something'))
97
+ flash_now = mock()
98
+ flash_now.expects(:[]=).with(:notice, 'something')
99
+ @c.stubs(:flash).returns(stub(:now => flash_now))
100
+ end
101
+
102
+ should "set the flash_now" do
103
+ @c.send :set_flash_now, :new
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,86 @@
1
+ require File.dirname(__FILE__)+'/../../test_helper'
2
+
3
+ class PostsControllerMock
4
+ include ResourceController::Helpers
5
+ extend ResourceController::Accessors
6
+ class_reader_writer :belongs_to
7
+ end
8
+
9
+ class CommentsControllerMock
10
+ include ResourceController::Helpers
11
+ extend ResourceController::Accessors
12
+ class_reader_writer :belongs_to
13
+ belongs_to :post
14
+ end
15
+
16
+ class Helpers::NestedTest < Test::Unit::TestCase
17
+ def setup
18
+ @controller = PostsControllerMock.new
19
+
20
+ @params = stub :[] => "1"
21
+ @controller.stubs(:params).returns(@params)
22
+
23
+ @request = stub :path => ""
24
+ @controller.stubs(:request).returns(@request)
25
+
26
+ @object = Post.new
27
+ Post.stubs(:find).with("1").returns(@object)
28
+
29
+ @collection = mock()
30
+ Post.stubs(:find).with(:all).returns(@collection)
31
+ end
32
+
33
+ context "parent type helper" do
34
+ setup do
35
+ @comments_controller = CommentsControllerMock.new
36
+ @comment_params = stub()
37
+ @comment_params.stubs(:[]).with(:post_id).returns 2
38
+
39
+ @comments_controller.stubs(:params).returns(@comment_params)
40
+ end
41
+
42
+ should "get the params for the current parent" do
43
+ assert_equal :post, @comments_controller.send(:parent_type)
44
+ end
45
+
46
+ context "with multiple possible parents" do
47
+ setup do
48
+ CommentsControllerMock.class_eval do
49
+ belongs_to :post, :product
50
+ end
51
+
52
+ @comment_params = stub()
53
+ @comment_params.stubs(:[]).with(:product_id).returns 5
54
+ @comment_params.stubs(:[]).with(:post_id).returns nil
55
+ @comments_controller.stubs(:params).returns(@comment_params)
56
+ end
57
+
58
+ should "get the params for whatever models are available" do
59
+ assert_equal :product, @comments_controller.send(:parent_type)
60
+ end
61
+ end
62
+
63
+ context "with no possible parent" do
64
+ should "return nil" do
65
+ assert_nil @controller.send(:parent_type)
66
+ end
67
+ end
68
+ end
69
+
70
+ context "parent object helper" do
71
+ setup do
72
+ @comments_controller = CommentsControllerMock.new
73
+ @comment_params = stub()
74
+ @comment_params.stubs(:[]).with(:post_id).returns 2
75
+ @request = stub :path => ""
76
+ @comments_controller.stubs(:request).returns(@request)
77
+ @comments_controller.stubs(:params).returns(@comment_params)
78
+ @post = Post.new
79
+ Post.stubs(:find).with(2).returns @post
80
+ end
81
+
82
+ should "return post with id 2" do
83
+ assert_equal @post, @comments_controller.send(:parent_object)
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,68 @@
1
+ require File.dirname(__FILE__)+'/../../test_helper'
2
+
3
+ class Helpers::SingletonCurrentObjectsTest < Test::Unit::TestCase
4
+ context "singleton" do
5
+ setup do
6
+ @image_controller = ImagesController.new
7
+ @image_params = stub()
8
+ @image_params.stubs(:[]).with(:user_id).returns 2
9
+ @image_params.stubs(:[]).with('image').returns ""
10
+ @image_controller.stubs(:params).returns(@image_params)
11
+
12
+ @request = stub :path => ""
13
+ @image_controller.stubs(:request).returns(@request)
14
+ @user = stub()
15
+ User.expects(:find).with(2).returns(@user)
16
+ @image = stub()
17
+ end
18
+
19
+ context "build object helper with parent" do
20
+ should "build new object" do
21
+ @user.expects(:build_image).with("").returns("a new image")
22
+ assert_equal "a new image", @image_controller.send(:build_object)
23
+ end
24
+ end
25
+
26
+ context "object helper with parent" do
27
+ should "fetch the correct object" do
28
+ @user.expects(:image).returns(@image)
29
+ assert_equal @image, @image_controller.send(:object)
30
+ end
31
+ end
32
+ end
33
+
34
+ context "with singleton parent" do
35
+ setup do
36
+ @options_controller = OptionsController.new
37
+ @options_params = stub :[] => "1"
38
+ @options_params.stubs(:[]).with('option').returns ""
39
+ @options_params.stubs(:[]).with(:id).returns 1
40
+ @options_controller.stubs(:params).returns(@options_params)
41
+
42
+ @option = Option.new
43
+
44
+ @account = Account.new
45
+ @options_controller.stubs(:parent_object).returns(@account)
46
+
47
+ @request = stub :path => "account/options/1"
48
+ @options_controller.stubs(:request).returns(@request)
49
+
50
+ @options = stub()
51
+ Account.any_instance.stubs(:options).returns(@options)
52
+ end
53
+
54
+ context "build object helper" do
55
+ should "build new object" do
56
+ @options.expects(:build).with("").returns("a new option")
57
+ assert_equal "a new option", @options_controller.send(:build_object)
58
+ end
59
+ end
60
+
61
+ context "object helper" do
62
+ should "fetch the correct object" do
63
+ @options.expects(:find).with(1).returns(@option)
64
+ assert_equal @option, @options_controller.send(:object)
65
+ end
66
+ end
67
+ end
68
+ end
@@ -0,0 +1,77 @@
1
+ require File.dirname(__FILE__)+'/../../test_helper'
2
+
3
+ class UsersControllerMock
4
+ include ResourceController::Helpers
5
+ extend ResourceController::Accessors
6
+ class_reader_writer :belongs_to
7
+ end
8
+
9
+ class ImagesControllerMock
10
+ include ResourceController::Helpers
11
+ extend ResourceController::Accessors
12
+ include ResourceController::Helpers::SingletonCustomizations
13
+ class_reader_writer :belongs_to
14
+ belongs_to :user
15
+ end
16
+
17
+ class Helpers::SingletonNestedTest < Test::Unit::TestCase
18
+ def setup
19
+ @controller = UsersControllerMock.new
20
+ @params = stub :[] => "1"
21
+ @controller.stubs(:params).returns(@params)
22
+ @request = stub :path => ""
23
+ @controller.stubs(:request).returns(@request)
24
+ end
25
+
26
+ context "singleton parent_type helper" do
27
+ setup do
28
+ @image_controller = ImagesControllerMock.new
29
+ @image_params = stub()
30
+ @image_params.stubs(:[]).with(:user_id).returns 2
31
+ @image_controller.stubs(:params).returns(@image_params)
32
+ end
33
+
34
+ should "get the params for the current parent" do
35
+ assert_equal :user, @image_controller.send(:parent_type)
36
+ end
37
+
38
+ context "with multiple possible parents" do
39
+ setup do
40
+ ImagesControllerMock.class_eval do
41
+ belongs_to :user, :group
42
+ end
43
+ @image_params = stub()
44
+ @image_params.stubs(:[]).with(:group_id).returns 5
45
+ @image_params.stubs(:[]).with(:user_id).returns nil
46
+ @image_controller.stubs(:params).returns(@image_params)
47
+ end
48
+
49
+ should "get the params for whatever models are available" do
50
+ assert_equal :group, @image_controller.send(:parent_type)
51
+ end
52
+ end
53
+
54
+ context "with no possible parent" do
55
+ should "return nil" do
56
+ assert_nil @controller.send(:parent_type)
57
+ end
58
+ end
59
+ end
60
+
61
+ context "singleton parent_object helper" do
62
+ setup do
63
+ @image_controller = ImagesControllerMock.new
64
+ @request = stub :path => ""
65
+ @image_controller.stubs(:request).returns(@request)
66
+ @image_params = stub()
67
+ @image_params.stubs(:[]).with(:user_id).returns 2
68
+ @image_controller.stubs(:params).returns(@image_params)
69
+ @user = User.new
70
+ User.stubs(:find).with(2).returns @user
71
+ end
72
+
73
+ should "return image with id 2" do
74
+ assert_equal @user, @image_controller.send(:parent_object)
75
+ end
76
+ end
77
+ end