spree 0.0.7 → 0.0.8

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 (211) hide show
  1. data/History.txt +5 -0
  2. data/Manifest.txt +158 -21
  3. data/config/hoe.rb +2 -1
  4. data/lib/spree/version.rb +1 -1
  5. data/starter-app/app/views/layouts/application.rhtml +6 -4
  6. data/starter-app/db/sample/line_items.yml +6 -4
  7. data/starter-app/db/sample/{variations.yml → variants.yml} +16 -0
  8. data/starter-app/log/README +1 -0
  9. data/starter-app/public/images/spree.jpg +0 -0
  10. data/starter-app/public/stylesheets/application.css +2 -2
  11. data/starter-app/script/spec +4 -0
  12. data/starter-app/script/spec_server +102 -0
  13. data/starter-app/spec/models/cart_item_spec.rb +50 -0
  14. data/starter-app/spec/models/cart_spec.rb +51 -0
  15. data/starter-app/spec/models/line_item_spec.rb +33 -0
  16. data/starter-app/spec/models/product_spec.rb +29 -0
  17. data/starter-app/spec/rcov.opts +2 -0
  18. data/starter-app/spec/spec.opts +6 -0
  19. data/starter-app/spec/spec_helper.rb +39 -0
  20. data/starter-app/stories/all.rb +4 -0
  21. data/starter-app/stories/helper.rb +3 -0
  22. data/starter-app/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
  23. data/starter-app/vendor/plugins/rspec_on_rails/README +3 -0
  24. data/starter-app/vendor/plugins/rspec_on_rails/Rakefile +9 -0
  25. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
  26. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +35 -0
  27. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/all_stories.rb +4 -0
  28. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
  29. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/rcov.opts +2 -0
  30. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
  31. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +102 -0
  32. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
  33. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +39 -0
  34. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/stories_helper.rb +3 -0
  35. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
  36. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +49 -0
  37. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +25 -0
  38. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  39. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
  40. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
  41. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
  42. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
  43. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +167 -0
  44. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +313 -0
  45. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
  46. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  47. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
  48. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
  49. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/routing_spec.rb +61 -0
  50. data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
  51. data/starter-app/vendor/plugins/rspec_on_rails/init.rb +9 -0
  52. data/starter-app/vendor/plugins/rspec_on_rails/lib/autotest/discover.rb +1 -0
  53. data/starter-app/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
  54. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +51 -0
  55. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example.rb +47 -0
  56. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/assigns_hash_proxy.rb +42 -0
  57. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/controller_example_group.rb +255 -0
  58. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/functional_example_group.rb +66 -0
  59. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +82 -0
  60. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/ivar_proxy.rb +62 -0
  61. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/model_example_group.rb +14 -0
  62. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb +68 -0
  63. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/render_observer.rb +90 -0
  64. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/view_example_group.rb +171 -0
  65. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +12 -0
  66. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +14 -0
  67. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +21 -0
  68. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +11 -0
  69. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +27 -0
  70. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +30 -0
  71. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
  72. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/example/configuration.rb +66 -0
  73. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/matchers/have.rb +21 -0
  74. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
  75. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +130 -0
  76. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
  77. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +113 -0
  78. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +70 -0
  79. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/story_adapter.rb +71 -0
  80. data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +23 -0
  81. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +36 -0
  82. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +8 -0
  83. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/assigns_hash_proxy_spec.rb +55 -0
  84. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/configuration_spec.rb +83 -0
  85. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/controller_isolation_spec.rb +43 -0
  86. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/controller_spec_spec.rb +187 -0
  87. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/example_group_factory_spec.rb +112 -0
  88. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/helper_spec_spec.rb +118 -0
  89. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb +64 -0
  90. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/model_spec_spec.rb +18 -0
  91. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/shared_behaviour_spec.rb +16 -0
  92. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  93. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/view_spec_spec.rb +263 -0
  94. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +54 -0
  95. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +48 -0
  96. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +14 -0
  97. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +783 -0
  98. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +37 -0
  99. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +13 -0
  100. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/have_text_spec.rb +62 -0
  101. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +203 -0
  102. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +169 -0
  103. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +65 -0
  104. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/sample_spec.rb +7 -0
  105. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +89 -0
  106. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/spec_spec.rb +11 -0
  107. data/starter-app/vendor/plugins/rspec_on_rails/spec/rails_suite.rb +7 -0
  108. data/starter-app/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +46 -0
  109. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/action_view_base_spec_controller.rb +2 -0
  110. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +56 -0
  111. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
  112. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +26 -0
  113. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
  114. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
  115. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
  116. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
  117. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
  118. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml +0 -0
  119. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  120. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  121. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  122. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  123. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
  124. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
  125. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
  126. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
  127. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
  128. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  129. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
  130. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
  131. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
  132. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
  133. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
  134. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  135. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
  136. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  137. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
  138. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  139. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  140. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial.rhtml +2 -0
  141. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  142. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  143. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
  144. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
  145. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
  146. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
  147. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
  148. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/foo/show.rhtml +1 -0
  149. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/implicit_helper.rhtml +2 -0
  150. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
  151. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial.rhtml +5 -0
  152. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
  153. data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
  154. data/starter-app/vendor/plugins/rspec_on_rails/stories/all.rb +10 -0
  155. data/starter-app/vendor/plugins/rspec_on_rails/stories/helper.rb +5 -0
  156. data/starter-app/vendor/plugins/rspec_on_rails/stories/steps/people.rb +8 -0
  157. data/starter-app/vendor/plugins/rspec_on_rails/stories/transactions_should_rollback +15 -0
  158. data/starter-app/vendor/plugins/rspec_on_rails/stories/transactions_should_rollback.rb +25 -0
  159. data/starter-app/vendor/plugins/rspec_on_rails/tasks/rspec.rake +137 -0
  160. data/starter-app/vendor/plugins/spree/LICENSE +1 -1
  161. data/starter-app/vendor/plugins/spree/app/controllers/admin/categories_controller.rb +0 -24
  162. data/starter-app/vendor/plugins/spree/app/controllers/admin/products_controller.rb +16 -16
  163. data/starter-app/vendor/plugins/spree/app/controllers/cart_controller.rb +2 -8
  164. data/starter-app/vendor/plugins/spree/app/helpers/admin/products_helper.rb +1 -1
  165. data/starter-app/vendor/plugins/spree/app/helpers/spree/base_helper.rb +2 -2
  166. data/starter-app/vendor/plugins/spree/app/models/cart.rb +7 -20
  167. data/starter-app/vendor/plugins/spree/app/models/cart_item.rb +3 -6
  168. data/starter-app/vendor/plugins/spree/app/models/category.rb +6 -22
  169. data/starter-app/vendor/plugins/spree/app/models/line_item.rb +3 -5
  170. data/starter-app/vendor/plugins/spree/app/models/option_value.rb +1 -1
  171. data/starter-app/vendor/plugins/spree/app/models/product.rb +18 -2
  172. data/starter-app/vendor/plugins/spree/app/models/variant.rb +5 -0
  173. data/starter-app/vendor/plugins/spree/app/views/admin/categories/_form.rhtml +1 -5
  174. data/starter-app/vendor/plugins/spree/app/views/admin/overview/index.rhtml +3 -0
  175. data/starter-app/vendor/plugins/spree/app/views/admin/products/_form.rhtml +2 -2
  176. data/starter-app/vendor/plugins/spree/app/views/admin/products/{_new_variation.rhtml → _new_variant.rhtml} +1 -1
  177. data/starter-app/vendor/plugins/spree/app/views/admin/products/_variants.rhtml +43 -0
  178. data/starter-app/vendor/plugins/spree/app/views/cart/index.rhtml +4 -4
  179. data/starter-app/vendor/plugins/spree/app/views/layouts/admin.rhtml +1 -1
  180. data/starter-app/vendor/plugins/spree/app/views/order_mailer/cancel.rhtml +1 -1
  181. data/starter-app/vendor/plugins/spree/app/views/order_mailer/confirm.rhtml +1 -1
  182. data/starter-app/vendor/plugins/spree/app/views/shared/_order_details.rhtml +1 -1
  183. data/starter-app/vendor/plugins/spree/app/views/store/show.rhtml +30 -29
  184. data/starter-app/vendor/plugins/spree/assets/images/spree/spree.jpg +0 -0
  185. data/starter-app/vendor/plugins/spree/assets/stylesheets/spree-admin.css +1 -1
  186. data/starter-app/vendor/plugins/spree/assets/stylesheets/store/_controller.css +1 -1
  187. data/starter-app/vendor/plugins/spree/db/migrate/002_create_cart_items.rb +1 -2
  188. data/starter-app/vendor/plugins/spree/db/migrate/006_create_line_items.rb +5 -7
  189. data/starter-app/vendor/plugins/spree/db/migrate/011_create_variants.rb +11 -0
  190. data/starter-app/vendor/plugins/spree/db/migrate/018_create_option_values_variants.rb +12 -0
  191. data/starter-app/vendor/plugins/spree/test/unit/product_test.rb +0 -33
  192. metadata +170 -23
  193. data/starter-app/vendor/plugins/spree/app/controllers/admin/variations_controller.rb +0 -73
  194. data/starter-app/vendor/plugins/spree/app/helpers/admin/variations_helper.rb +0 -2
  195. data/starter-app/vendor/plugins/spree/app/models/variation.rb +0 -8
  196. data/starter-app/vendor/plugins/spree/app/views/admin/option_types/test.rhtml +0 -8
  197. data/starter-app/vendor/plugins/spree/app/views/admin/products/_variations.rhtml +0 -41
  198. data/starter-app/vendor/plugins/spree/app/views/admin/variations/_form.rhtml +0 -33
  199. data/starter-app/vendor/plugins/spree/app/views/admin/variations/_option_values.rhtml +0 -5
  200. data/starter-app/vendor/plugins/spree/app/views/admin/variations/list.rhtml +0 -23
  201. data/starter-app/vendor/plugins/spree/app/views/admin/variations/new.rhtml +0 -14
  202. data/starter-app/vendor/plugins/spree/assets/images/spree/spree_logo142x65.gif +0 -0
  203. data/starter-app/vendor/plugins/spree/assets/images/spree/spree_logo245x112.gif +0 -0
  204. data/starter-app/vendor/plugins/spree/db/migrate/011_create_variations.rb +0 -11
  205. data/starter-app/vendor/plugins/spree/db/migrate/018_create_option_values_variations.rb +0 -12
  206. data/starter-app/vendor/plugins/spree/test/functional/admin/variations_controller_test.rb +0 -18
  207. data/starter-app/vendor/plugins/spree/test/integration/variations_test.rb +0 -24
  208. data/starter-app/vendor/plugins/spree/test/unit/cart_item_test.rb +0 -55
  209. data/starter-app/vendor/plugins/spree/test/unit/cart_test.rb +0 -35
  210. data/starter-app/vendor/plugins/spree/test/unit/line_item_test.rb +0 -61
  211. data/starter-app/vendor/plugins/spree/test/unit/variation_test.rb +0 -9
@@ -0,0 +1,65 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ class MockableModel < ActiveRecord::Base
4
+ has_one :associated_model
5
+ end
6
+
7
+ class SubMockableModel < MockableModel
8
+ end
9
+
10
+ class AssociatedModel < ActiveRecord::Base
11
+ belongs_to :mockable_model
12
+ end
13
+
14
+ describe "mock_model", :type => :view do
15
+ before(:each) do
16
+ @model = mock_model(SubMockableModel)
17
+ end
18
+ it "should say it is_a? if it is" do
19
+ @model.is_a?(SubMockableModel).should be(true)
20
+ end
21
+ it "should say it is_a? if it's ancestor is" do
22
+ @model.is_a?(MockableModel).should be(true)
23
+ end
24
+ it "should say it is kind_of? if it is" do
25
+ @model.kind_of?(SubMockableModel).should be(true)
26
+ end
27
+ it "should say it is kind_of? if it's ancestor is" do
28
+ @model.kind_of?(MockableModel).should be(true)
29
+ end
30
+ it "should say it is instance_of? if it is" do
31
+ @model.instance_of?(SubMockableModel).should be(true)
32
+ end
33
+ it "should not say it instance_of? if it isn't, even if it's ancestor is" do
34
+ @model.instance_of?(MockableModel).should be(false)
35
+ end
36
+ end
37
+
38
+ describe "mock_model with null_object", :type => :view do
39
+ before(:each) do
40
+ @model = mock_model(MockableModel, :null_object => true, :mocked_method => "mocked")
41
+ end
42
+
43
+ it "should be able to mock methods" do
44
+ @model.mocked_method.should == "mocked"
45
+ end
46
+ it "should return itself to unmocked methods" do
47
+ @model.unmocked_method.should equal(@model)
48
+ end
49
+ end
50
+
51
+ describe "mock_model as association", :type => :view do
52
+ before(:each) do
53
+ @real = AssociatedModel.create!
54
+ @mock_model = mock_model(MockableModel)
55
+ @real.mockable_model = @mock_model
56
+ end
57
+
58
+ it "should pass associated_model == mock" do
59
+ @mock_model.should == @real.mockable_model
60
+ end
61
+
62
+ it "should pass mock == associated_model" do
63
+ @real.mockable_model.should == @mock_model
64
+ end
65
+ end
@@ -0,0 +1,7 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "A sample spec" do
4
+ it "should pass" do
5
+ true.should === true
6
+ end
7
+ end
@@ -0,0 +1,89 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "script/spec_server file", :shared => true do
4
+ attr_accessor :tmbundle_install_directory
5
+
6
+ after do
7
+ system "kill -9 #{@pid}"
8
+ end
9
+
10
+ it "runs a spec" do
11
+ dir = File.dirname(__FILE__)
12
+ output = ""
13
+ Timeout.timeout(10) do
14
+ loop do
15
+ output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb --drb 2>&1`
16
+ break unless output.include?("No server is running")
17
+ end
18
+ end
19
+
20
+ unless $?.exitstatus == 0
21
+ flunk "command 'script/spec spec/sample_spec' failed\n#{output}"
22
+ end
23
+ end
24
+
25
+ def start_spec_server
26
+ create_spec_server_pid_file
27
+ start_spec_server_process
28
+ end
29
+
30
+ def create_spec_server_pid_file
31
+ current_dir = File.dirname(__FILE__)
32
+ pid_dir = "#{Dir.tmpdir}/#{Time.now.to_i}"
33
+ @spec_server_pid_file = "#{pid_dir}/spec_server.pid"
34
+ FileUtils.mkdir_p pid_dir
35
+ system "touch #{@spec_server_pid_file}"
36
+ @rspec_path = File.expand_path("#{current_dir}/../../../rspec/lib")
37
+ end
38
+
39
+ def start_spec_server_process
40
+ dir = File.dirname(__FILE__)
41
+ spec_server_cmd = %Q|export HOME=#{Dir.tmpdir}; |
42
+ spec_server_cmd << %Q|ruby -e 'system("echo " + Process.pid.to_s + " > #{@spec_server_pid_file}"); |
43
+ spec_server_cmd << %Q|$LOAD_PATH.unshift("#{@rspec_path}"); require "spec"; |
44
+ spec_server_cmd << %Q|load "#{RAILS_ROOT}/script/spec_server"' &|
45
+ system spec_server_cmd
46
+
47
+ file_content = ""
48
+ Timeout.timeout(5) do
49
+ loop do
50
+ file_content = File.read(@spec_server_pid_file)
51
+ break unless file_content.blank?
52
+ end
53
+ end
54
+ @pid = Integer(File.read(@spec_server_pid_file))
55
+ end
56
+ end
57
+
58
+ describe "script/spec_server file without TextMate bundle" do
59
+ it_should_behave_like "script/spec_server file"
60
+ before do
61
+ start_spec_server
62
+ end
63
+ end
64
+
65
+ describe "script/spec_server file with TextMate bundle" do
66
+ it_should_behave_like "script/spec_server file"
67
+ before do
68
+ dir = File.dirname(__FILE__)
69
+ @tmbundle_install_directory = File.expand_path("#{Dir.tmpdir}/Library/Application Support/TextMate/Bundles")
70
+ @bundle_name = "RSpec.tmbundle"
71
+ FileUtils.mkdir_p(tmbundle_install_directory)
72
+ bundle_dir = File.expand_path("#{dir}/../../../../../../#{@bundle_name}")
73
+ File.directory?(bundle_dir).should be_true
74
+ unless system(%Q|ln -s #{bundle_dir} "#{tmbundle_install_directory}"|)
75
+ raise "Creating link to Textmate Bundle"
76
+ end
77
+ start_spec_server
78
+ end
79
+
80
+ after do
81
+ bundle_file_to_remove = "#{tmbundle_install_directory}/#{@bundle_name}"
82
+ if bundle_file_to_remove == "/"
83
+ raise "bundle file path resolved to '/' - could not call rm"
84
+ end
85
+ unless system(%Q|rm "#{bundle_file_to_remove}"|)
86
+ raise "Removing Textmate bundle link failed"
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,11 @@
1
+ require File.dirname(__FILE__) + '/../spec_helper'
2
+
3
+ describe "script/spec file" do
4
+ it "should run a spec" do
5
+ dir = File.dirname(__FILE__)
6
+ output = `#{RAILS_ROOT}/script/spec #{dir}/sample_spec.rb`
7
+ unless $?.exitstatus == 0
8
+ flunk "command 'script/spec spec/sample_spec' failed\n#{output}"
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,7 @@
1
+ dir = File.dirname(__FILE__)
2
+ Dir["#{dir}/**/*_example.rb"].each do |file|
3
+ require file
4
+ end
5
+ Dir["#{dir}/**/*_spec.rb"].each do |file|
6
+ require file
7
+ end
@@ -0,0 +1,46 @@
1
+ dir = File.dirname(__FILE__)
2
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/../rspec/lib"))
3
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/../spec_resources/controllers"))
4
+ $LOAD_PATH.unshift(File.expand_path("#{dir}/../spec_resources/helpers"))
5
+ require File.expand_path("#{dir}/../../../../spec/spec_helper")
6
+ require File.expand_path("#{dir}/../spec_resources/controllers/render_spec_controller")
7
+ require File.expand_path("#{dir}/../spec_resources/controllers/rjs_spec_controller")
8
+ require File.expand_path("#{dir}/../spec_resources/controllers/redirect_spec_controller")
9
+ require File.expand_path("#{dir}/../spec_resources/controllers/action_view_base_spec_controller")
10
+ require File.expand_path("#{dir}/../spec_resources/helpers/explicit_helper")
11
+ require File.expand_path("#{dir}/../spec_resources/helpers/more_explicit_helper")
12
+ require File.expand_path("#{dir}/../spec_resources/helpers/view_spec_helper")
13
+ require File.expand_path("#{dir}/../spec_resources/helpers/plugin_application_helper")
14
+
15
+ ActionController::Routing.controller_paths << "#{dir}/../spec_resources/controllers"
16
+
17
+ module Spec
18
+ module Rails
19
+ module Example
20
+ class ViewExampleGroupController
21
+ set_view_path File.join(File.dirname(__FILE__), "..", "spec_resources", "views")
22
+ end
23
+ end
24
+ end
25
+ end
26
+
27
+ def fail()
28
+ raise_error(Spec::Expectations::ExpectationNotMetError)
29
+ end
30
+
31
+ def fail_with(message)
32
+ raise_error(Spec::Expectations::ExpectationNotMetError,message)
33
+ end
34
+
35
+ class Proc
36
+ def should_pass
37
+ lambda { self.call }.should_not raise_error
38
+ end
39
+ end
40
+
41
+ ActionController::Routing::Routes.draw do |map|
42
+ map.resources :rspec_on_rails_specs
43
+ map.connect 'custom_route', :controller => 'custom_route_spec', :action => 'custom_route'
44
+ map.connect ":controller/:action/:id"
45
+ end
46
+
@@ -0,0 +1,2 @@
1
+ class ActionViewBaseSpecController < ActionController::Base
2
+ end
@@ -0,0 +1,56 @@
1
+ class ControllerSpecController < ActionController::Base
2
+ if ['edge','2.0.0'].include?(ENV['RSPEC_RAILS_VERSION'])
3
+ set_view_path [File.join(File.dirname(__FILE__), "..", "views")]
4
+ else
5
+ set_view_path File.join(File.dirname(__FILE__), "..", "views")
6
+ end
7
+
8
+ def some_action
9
+ render :template => "template/that/does/not/actually/exist"
10
+ end
11
+
12
+ def action_with_template
13
+ session[:session_key] = "session value"
14
+ flash[:flash_key] = "flash value"
15
+ render :template => "controller_spec/action_with_template"
16
+ end
17
+
18
+ def action_with_partial
19
+ render :partial => "controller_spec/partial"
20
+ end
21
+
22
+ def action_with_partial_with_object
23
+ render :partial => "controller_spec/partial", :object => params[:thing]
24
+ end
25
+
26
+ def action_with_partial_with_locals
27
+ render :partial => "controller_spec/partial", :locals => {:thing => params[:thing]}
28
+ end
29
+
30
+ def action_with_errors_in_template
31
+ render :template => "controller_spec/action_with_errors_in_template"
32
+ end
33
+
34
+ def action_setting_the_assigns_hash
35
+ assigns['direct_assigns_key'] = :direct_assigns_key_value
36
+ @indirect_assigns_key = :indirect_assigns_key_value
37
+ end
38
+
39
+ def action_setting_flash_after_session_reset
40
+ reset_session
41
+ flash[:after_reset] = "available"
42
+ end
43
+
44
+ def action_setting_flash_before_session_reset
45
+ flash[:before_reset] = 'available'
46
+ reset_session
47
+ end
48
+
49
+ def action_with_render_update
50
+ render :update do |page|
51
+ page.replace :bottom, 'replace_me',
52
+ :partial => 'non_existent_partial'
53
+ end
54
+ end
55
+ end
56
+
@@ -0,0 +1,59 @@
1
+ class RedirectSpecController < ApplicationController
2
+
3
+ def action_with_no_redirect
4
+ render :text => "this is just here to keep this from causing a MissingTemplate error"
5
+ end
6
+
7
+ def action_with_redirect_to_somewhere
8
+ redirect_to :action => 'somewhere'
9
+ end
10
+
11
+ def action_with_redirect_to_other_somewhere
12
+ redirect_to :controller => 'render_spec', :action => 'text_action'
13
+ end
14
+
15
+ def action_with_redirect_to_somewhere_and_return
16
+ redirect_to :action => 'somewhere' and return
17
+ render :text => "this is after the return"
18
+ end
19
+
20
+ def somewhere
21
+ render :text => "this is just here to keep this from causing a MissingTemplate error"
22
+ end
23
+
24
+ def action_with_redirect_to_rspec_site
25
+ redirect_to "http://rspec.rubyforge.org"
26
+ end
27
+
28
+ def action_with_redirect_back
29
+ redirect_to :back
30
+ end
31
+
32
+ def action_with_redirect_in_respond_to
33
+ respond_to do |wants|
34
+ wants.html { redirect_to :action => 'somewhere' }
35
+ end
36
+ end
37
+
38
+ def action_with_redirect_which_creates_query_string
39
+ redirect_to :action => "somewhere", :id => 1111, :param1 => "value1", :param2 => "value2"
40
+ end
41
+
42
+ # note: sometimes this is the URL which rails will generate from the hash in
43
+ # action_with_redirect_which_creates_query_string
44
+ def action_with_redirect_with_query_string_order1
45
+ redirect_to "http://test.host/redirect_spec/somewhere/1111?param1=value1&param2=value2"
46
+ end
47
+
48
+ # note: sometimes this is the URL which rails will generate from the hash in
49
+ # action_with_redirect_which_creates_query_string
50
+ def action_with_redirect_with_query_string_order2
51
+ redirect_to "http://test.host/redirect_spec/somewhere/1111?param2=value2&param1=value1"
52
+ end
53
+
54
+ def action_with_redirect_to_unroutable_url_inside_app
55
+ redirect_to :controller => "nonexistant", :action => "none"
56
+ end
57
+
58
+ end
59
+
@@ -0,0 +1,26 @@
1
+ class RenderSpecController < ApplicationController
2
+ set_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def some_action
5
+ respond_to do |format|
6
+ format.html
7
+ format.js
8
+ end
9
+ end
10
+
11
+ def action_which_renders_template_from_other_controller
12
+ render :template => 'controller_spec/action_with_template'
13
+ end
14
+
15
+ def text_action
16
+ render :text => "this is the text for this action"
17
+ end
18
+
19
+ def action_with_partial
20
+ render :partial => "a_partial"
21
+ end
22
+
23
+ def action_that_renders_nothing
24
+ render :nothing => true
25
+ end
26
+ end
@@ -0,0 +1,58 @@
1
+ class RjsSpecController < ApplicationController
2
+ set_view_path File.join(File.dirname(__FILE__), "..", "views")
3
+
4
+ def replace_html
5
+ end
6
+
7
+ def insert_html
8
+ end
9
+
10
+ def replace
11
+ end
12
+
13
+ def hide_div
14
+ end
15
+
16
+ def hide_page_element
17
+ end
18
+
19
+ def replace_html_with_partial
20
+ end
21
+
22
+ def render_replace_html
23
+ render :update do |page|
24
+ page.replace_html 'mydiv', 'replacement text'
25
+ page.replace_html 'myotherdiv', 'other replacement text'
26
+ end
27
+ end
28
+
29
+ def render_replace_html_with_partial
30
+ render :update do |page|
31
+ page.replace_html 'mydiv', :partial => 'rjs_spec/replacement_partial'
32
+ end
33
+ end
34
+
35
+ def render_insert_html
36
+ render :update do |page|
37
+ page.insert_html 'mydiv', 'replacement text'
38
+ end
39
+ end
40
+
41
+ def render_replace
42
+ render :update do |page|
43
+ page.replace 'mydiv', 'replacement text'
44
+ end
45
+ end
46
+
47
+ def render_hide_div
48
+ render :update do |page|
49
+ page.hide 'mydiv'
50
+ end
51
+ end
52
+
53
+ def render_hide_page_element
54
+ render :update do |page|
55
+ page['mydiv'].hide
56
+ end
57
+ end
58
+ end
@@ -0,0 +1,10 @@
1
+ module ExplicitHelper
2
+ def method_in_explicit_helper
3
+ "<div>This is text from a method in the ExplicitHelper</div>"
4
+ end
5
+
6
+ # this is an example of a method spec'able with eval_erb in helper specs
7
+ def prepend(arg, &block)
8
+ concat(arg, block.binding) + block.call
9
+ end
10
+ end