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.
- data/History.txt +5 -0
- data/Manifest.txt +158 -21
- data/config/hoe.rb +2 -1
- data/lib/spree/version.rb +1 -1
- data/starter-app/app/views/layouts/application.rhtml +6 -4
- data/starter-app/db/sample/line_items.yml +6 -4
- data/starter-app/db/sample/{variations.yml → variants.yml} +16 -0
- data/starter-app/log/README +1 -0
- data/starter-app/public/images/spree.jpg +0 -0
- data/starter-app/public/stylesheets/application.css +2 -2
- data/starter-app/script/spec +4 -0
- data/starter-app/script/spec_server +102 -0
- data/starter-app/spec/models/cart_item_spec.rb +50 -0
- data/starter-app/spec/models/cart_spec.rb +51 -0
- data/starter-app/spec/models/line_item_spec.rb +33 -0
- data/starter-app/spec/models/product_spec.rb +29 -0
- data/starter-app/spec/rcov.opts +2 -0
- data/starter-app/spec/spec.opts +6 -0
- data/starter-app/spec/spec_helper.rb +39 -0
- data/starter-app/stories/all.rb +4 -0
- data/starter-app/stories/helper.rb +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
- data/starter-app/vendor/plugins/rspec_on_rails/README +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/Rakefile +9 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +35 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/all_stories.rb +4 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/rcov.opts +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +102 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +39 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec/templates/stories_helper.rb +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +49 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +25 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +167 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +313 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/routing_spec.rb +61 -0
- data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
- data/starter-app/vendor/plugins/rspec_on_rails/init.rb +9 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/autotest/discover.rb +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +51 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example.rb +47 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/assigns_hash_proxy.rb +42 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/controller_example_group.rb +255 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/functional_example_group.rb +66 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/helper_example_group.rb +82 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/ivar_proxy.rb +62 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/model_example_group.rb +14 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/rails_example_group.rb +68 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/render_observer.rb +90 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/example/view_example_group.rb +171 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +12 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +14 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +21 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +11 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +27 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +30 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/example/configuration.rb +66 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/spec/matchers/have.rb +21 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +130 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +113 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +70 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/story_adapter.rb +71 -0
- data/starter-app/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +23 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +36 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +8 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/assigns_hash_proxy_spec.rb +55 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/configuration_spec.rb +83 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/controller_isolation_spec.rb +43 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/controller_spec_spec.rb +187 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/example_group_factory_spec.rb +112 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/helper_spec_spec.rb +118 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/ivar_proxy_spec.rb +64 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/model_spec_spec.rb +18 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/shared_behaviour_spec.rb +16 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/example/view_spec_spec.rb +263 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +54 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +48 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +14 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +783 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +37 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +13 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/have_text_spec.rb +62 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +203 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +169 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +65 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/sample_spec.rb +7 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +89 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails/spec_spec.rb +11 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/rails_suite.rb +7 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +46 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/action_view_base_spec_controller.rb +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +56 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +26 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial.rhtml +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/foo/show.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/implicit_helper.rhtml +2 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial.rhtml +5 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
- data/starter-app/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
- data/starter-app/vendor/plugins/rspec_on_rails/stories/all.rb +10 -0
- data/starter-app/vendor/plugins/rspec_on_rails/stories/helper.rb +5 -0
- data/starter-app/vendor/plugins/rspec_on_rails/stories/steps/people.rb +8 -0
- data/starter-app/vendor/plugins/rspec_on_rails/stories/transactions_should_rollback +15 -0
- data/starter-app/vendor/plugins/rspec_on_rails/stories/transactions_should_rollback.rb +25 -0
- data/starter-app/vendor/plugins/rspec_on_rails/tasks/rspec.rake +137 -0
- data/starter-app/vendor/plugins/spree/LICENSE +1 -1
- data/starter-app/vendor/plugins/spree/app/controllers/admin/categories_controller.rb +0 -24
- data/starter-app/vendor/plugins/spree/app/controllers/admin/products_controller.rb +16 -16
- data/starter-app/vendor/plugins/spree/app/controllers/cart_controller.rb +2 -8
- data/starter-app/vendor/plugins/spree/app/helpers/admin/products_helper.rb +1 -1
- data/starter-app/vendor/plugins/spree/app/helpers/spree/base_helper.rb +2 -2
- data/starter-app/vendor/plugins/spree/app/models/cart.rb +7 -20
- data/starter-app/vendor/plugins/spree/app/models/cart_item.rb +3 -6
- data/starter-app/vendor/plugins/spree/app/models/category.rb +6 -22
- data/starter-app/vendor/plugins/spree/app/models/line_item.rb +3 -5
- data/starter-app/vendor/plugins/spree/app/models/option_value.rb +1 -1
- data/starter-app/vendor/plugins/spree/app/models/product.rb +18 -2
- data/starter-app/vendor/plugins/spree/app/models/variant.rb +5 -0
- data/starter-app/vendor/plugins/spree/app/views/admin/categories/_form.rhtml +1 -5
- data/starter-app/vendor/plugins/spree/app/views/admin/overview/index.rhtml +3 -0
- data/starter-app/vendor/plugins/spree/app/views/admin/products/_form.rhtml +2 -2
- data/starter-app/vendor/plugins/spree/app/views/admin/products/{_new_variation.rhtml → _new_variant.rhtml} +1 -1
- data/starter-app/vendor/plugins/spree/app/views/admin/products/_variants.rhtml +43 -0
- data/starter-app/vendor/plugins/spree/app/views/cart/index.rhtml +4 -4
- data/starter-app/vendor/plugins/spree/app/views/layouts/admin.rhtml +1 -1
- data/starter-app/vendor/plugins/spree/app/views/order_mailer/cancel.rhtml +1 -1
- data/starter-app/vendor/plugins/spree/app/views/order_mailer/confirm.rhtml +1 -1
- data/starter-app/vendor/plugins/spree/app/views/shared/_order_details.rhtml +1 -1
- data/starter-app/vendor/plugins/spree/app/views/store/show.rhtml +30 -29
- data/starter-app/vendor/plugins/spree/assets/images/spree/spree.jpg +0 -0
- data/starter-app/vendor/plugins/spree/assets/stylesheets/spree-admin.css +1 -1
- data/starter-app/vendor/plugins/spree/assets/stylesheets/store/_controller.css +1 -1
- data/starter-app/vendor/plugins/spree/db/migrate/002_create_cart_items.rb +1 -2
- data/starter-app/vendor/plugins/spree/db/migrate/006_create_line_items.rb +5 -7
- data/starter-app/vendor/plugins/spree/db/migrate/011_create_variants.rb +11 -0
- data/starter-app/vendor/plugins/spree/db/migrate/018_create_option_values_variants.rb +12 -0
- data/starter-app/vendor/plugins/spree/test/unit/product_test.rb +0 -33
- metadata +170 -23
- data/starter-app/vendor/plugins/spree/app/controllers/admin/variations_controller.rb +0 -73
- data/starter-app/vendor/plugins/spree/app/helpers/admin/variations_helper.rb +0 -2
- data/starter-app/vendor/plugins/spree/app/models/variation.rb +0 -8
- data/starter-app/vendor/plugins/spree/app/views/admin/option_types/test.rhtml +0 -8
- data/starter-app/vendor/plugins/spree/app/views/admin/products/_variations.rhtml +0 -41
- data/starter-app/vendor/plugins/spree/app/views/admin/variations/_form.rhtml +0 -33
- data/starter-app/vendor/plugins/spree/app/views/admin/variations/_option_values.rhtml +0 -5
- data/starter-app/vendor/plugins/spree/app/views/admin/variations/list.rhtml +0 -23
- data/starter-app/vendor/plugins/spree/app/views/admin/variations/new.rhtml +0 -14
- data/starter-app/vendor/plugins/spree/assets/images/spree/spree_logo142x65.gif +0 -0
- data/starter-app/vendor/plugins/spree/assets/images/spree/spree_logo245x112.gif +0 -0
- data/starter-app/vendor/plugins/spree/db/migrate/011_create_variations.rb +0 -11
- data/starter-app/vendor/plugins/spree/db/migrate/018_create_option_values_variations.rb +0 -12
- data/starter-app/vendor/plugins/spree/test/functional/admin/variations_controller_test.rb +0 -18
- data/starter-app/vendor/plugins/spree/test/integration/variations_test.rb +0 -24
- data/starter-app/vendor/plugins/spree/test/unit/cart_item_test.rb +0 -55
- data/starter-app/vendor/plugins/spree/test/unit/cart_test.rb +0 -35
- data/starter-app/vendor/plugins/spree/test/unit/line_item_test.rb +0 -61
- data/starter-app/vendor/plugins/spree/test/unit/variation_test.rb +0 -9
@@ -0,0 +1,39 @@
|
|
1
|
+
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
2
|
+
# from the project root directory.
|
3
|
+
ENV["RAILS_ENV"] = "test"
|
4
|
+
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
|
5
|
+
require 'spec'
|
6
|
+
require 'spec/rails'
|
7
|
+
|
8
|
+
Spec::Runner.configure do |config|
|
9
|
+
# If you're not using ActiveRecord you should remove these
|
10
|
+
# lines, delete config/database.yml and disable :active_record
|
11
|
+
# in your config/boot.rb
|
12
|
+
config.use_transactional_fixtures = true
|
13
|
+
config.use_instantiated_fixtures = false
|
14
|
+
config.fixture_path = RAILS_ROOT + '/spec/fixtures/'
|
15
|
+
|
16
|
+
# == Fixtures
|
17
|
+
#
|
18
|
+
# You can declare fixtures for each example_group like this:
|
19
|
+
# describe "...." do
|
20
|
+
# fixtures :table_a, :table_b
|
21
|
+
#
|
22
|
+
# Alternatively, if you prefer to declare them only once, you can
|
23
|
+
# do so right here. Just uncomment the next line and replace the fixture
|
24
|
+
# names with your fixtures.
|
25
|
+
#
|
26
|
+
# config.global_fixtures = :table_a, :table_b
|
27
|
+
#
|
28
|
+
# If you declare global fixtures, be aware that they will be declared
|
29
|
+
# for all of your examples, even those that don't use them.
|
30
|
+
#
|
31
|
+
# == Mock Framework
|
32
|
+
#
|
33
|
+
# RSpec uses it's own mocking framework by default. If you prefer to
|
34
|
+
# use mocha, flexmock or RR, uncomment the appropriate line:
|
35
|
+
#
|
36
|
+
# config.mock_with :mocha
|
37
|
+
# config.mock_with :flexmock
|
38
|
+
# config.mock_with :rr
|
39
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
Description:
|
2
|
+
The rspec_controller generator creates stub specs and files for a new
|
3
|
+
controller and its views.
|
4
|
+
|
5
|
+
The generator takes a controller name and a list of views as arguments.
|
6
|
+
The controller name may be given in CamelCase or under_score and should
|
7
|
+
not be suffixed with 'Controller'. To create a controller within a
|
8
|
+
module, specify the controller name as 'module/controller'.
|
9
|
+
|
10
|
+
The generator creates stubs for a controller (and spec), a view (and spec)
|
11
|
+
for each view in the argument list, plus a helper.
|
12
|
+
|
13
|
+
Example:
|
14
|
+
./script/generate rspec_controller dog bark fetch
|
15
|
+
...
|
16
|
+
create spec/controllers/dog_controller_spec.rb
|
17
|
+
create app/controllers/dog_controller.rb
|
18
|
+
create app/helpers/dog_helper.rb
|
19
|
+
create spec/views/dog/bark_view_spec.rb
|
20
|
+
create app/views/dog/bark.rhtml
|
21
|
+
create spec/views/dog/fetch_view_spec.rb
|
22
|
+
create app/views/dog/fetch.rhtml
|
23
|
+
|
24
|
+
Modules Example:
|
25
|
+
./script/generate rspec_controller 'pets/dog' bark fetch
|
26
|
+
...
|
27
|
+
create spec/controllers/pets/dog_controller_spec.rb
|
28
|
+
create app/controllers/pets/dog_controller.rb
|
29
|
+
create app/helpers/pets/dog_helper.rb
|
30
|
+
create spec/views/pets/dog/bark_view_spec.rb
|
31
|
+
create app/views/pets/dog/bark.rhtml
|
32
|
+
create spec/views/pets/dog/fetch_view_spec.rb
|
33
|
+
create app/views/pets/dog/fetch.rhtml
|
@@ -0,0 +1,49 @@
|
|
1
|
+
require 'rails_generator/generators/components/controller/controller_generator'
|
2
|
+
|
3
|
+
class RspecControllerGenerator < ControllerGenerator
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
record do |m|
|
7
|
+
# Check for class naming collisions.
|
8
|
+
m.class_collisions class_path, "#{class_name}Controller", "#{class_name}Helper"
|
9
|
+
|
10
|
+
# Controller, helper, views, and spec directories.
|
11
|
+
m.directory File.join('app/controllers', class_path)
|
12
|
+
m.directory File.join('app/helpers', class_path)
|
13
|
+
m.directory File.join('app/views', class_path, file_name)
|
14
|
+
m.directory File.join('spec/controllers', class_path)
|
15
|
+
m.directory File.join('spec/helpers', class_path)
|
16
|
+
m.directory File.join('spec/views', class_path, file_name)
|
17
|
+
|
18
|
+
if Rails::VERSION::STRING < "2.0.0"
|
19
|
+
@default_file_extension = "rhtml"
|
20
|
+
else
|
21
|
+
@default_file_extension = "html.erb"
|
22
|
+
end
|
23
|
+
|
24
|
+
# Controller spec, class, and helper.
|
25
|
+
m.template 'controller_spec.rb',
|
26
|
+
File.join('spec/controllers', class_path, "#{file_name}_controller_spec.rb")
|
27
|
+
|
28
|
+
m.template 'helper_spec.rb',
|
29
|
+
File.join('spec/helpers', class_path, "#{file_name}_helper_spec.rb")
|
30
|
+
|
31
|
+
m.template 'controller:controller.rb',
|
32
|
+
File.join('app/controllers', class_path, "#{file_name}_controller.rb")
|
33
|
+
|
34
|
+
m.template 'controller:helper.rb',
|
35
|
+
File.join('app/helpers', class_path, "#{file_name}_helper.rb")
|
36
|
+
|
37
|
+
# Spec and view template for each action.
|
38
|
+
actions.each do |action|
|
39
|
+
m.template 'view_spec.rb',
|
40
|
+
File.join('spec/views', class_path, file_name, "#{action}.#{@default_file_extension}_spec.rb"),
|
41
|
+
:assigns => { :action => action, :model => file_name }
|
42
|
+
path = File.join('app/views', class_path, file_name, "#{action}.#{@default_file_extension}")
|
43
|
+
m.template "controller:view.#{@default_file_extension}",
|
44
|
+
path,
|
45
|
+
:assigns => { :action => action, :path => path }
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
|
2
|
+
|
3
|
+
describe <%= class_name %>Controller do
|
4
|
+
|
5
|
+
<% if actions.empty? -%>
|
6
|
+
#Delete this example and add some real ones
|
7
|
+
<% else -%>
|
8
|
+
#Delete these examples and add some real ones
|
9
|
+
<% end -%>
|
10
|
+
it "should use <%= class_name %>Controller" do
|
11
|
+
controller.should be_an_instance_of(<%= class_name %>Controller)
|
12
|
+
end
|
13
|
+
|
14
|
+
<% unless actions.empty? -%>
|
15
|
+
<% for action in actions -%>
|
16
|
+
|
17
|
+
describe "GET '<%= action %>'" do
|
18
|
+
it "should be successful" do
|
19
|
+
get '<%= action %>'
|
20
|
+
response.should be_success
|
21
|
+
end
|
22
|
+
end
|
23
|
+
<% end -%>
|
24
|
+
<% end -%>
|
25
|
+
end
|
data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
|
2
|
+
|
3
|
+
describe <%= class_name %>Helper do
|
4
|
+
|
5
|
+
#Delete this example and add some real ones or delete this file
|
6
|
+
it "should include the <%= class_name %>Helper" do
|
7
|
+
included_modules = self.metaclass.send :included_modules
|
8
|
+
included_modules.should include(<%= class_name %>Helper)
|
9
|
+
end
|
10
|
+
|
11
|
+
end
|
data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../../spec_helper'
|
2
|
+
|
3
|
+
describe "/<%= class_name.underscore %>/<%= action %>" do
|
4
|
+
before(:each) do
|
5
|
+
render '<%= class_name.underscore %>/<%= action %>'
|
6
|
+
end
|
7
|
+
|
8
|
+
#Delete this example and add some real ones or delete this file
|
9
|
+
it "should tell you where to find the file" do
|
10
|
+
response.should have_tag('p', /Find me in app\/views\/<%= class_name.underscore %>\/<%= action %>/)
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
Description:
|
2
|
+
The rspec_model generator creates stubs for a new model.
|
3
|
+
|
4
|
+
The generator takes a model name as its argument. The model name may be
|
5
|
+
given in CamelCase or under_score and should not be suffixed with 'Model'.
|
6
|
+
|
7
|
+
The generator creates a model class in app/models, an RSpec spec in
|
8
|
+
spec/models, database fixtures in spec/fixtures/plural_name.yml, and a migration
|
9
|
+
in db/migrate.
|
10
|
+
|
11
|
+
Example:
|
12
|
+
./script/generate rspec_model Account
|
13
|
+
|
14
|
+
This will create an Account model:
|
15
|
+
Model: app/models/account.rb
|
16
|
+
Spec: spec/models/account_spec.rb
|
17
|
+
Fixtures: spec/fixtures/accounts.yml
|
18
|
+
Migration: db/migrate/XXX_add_accounts.rb
|
data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'rails_generator/generators/components/model/model_generator'
|
2
|
+
|
3
|
+
class RspecModelGenerator < ModelGenerator
|
4
|
+
|
5
|
+
def manifest
|
6
|
+
|
7
|
+
record do |m|
|
8
|
+
# Check for class naming collisions.
|
9
|
+
m.class_collisions class_path, class_name
|
10
|
+
|
11
|
+
# Model, spec, and fixture directories.
|
12
|
+
m.directory File.join('app/models', class_path)
|
13
|
+
m.directory File.join('spec/models', class_path)
|
14
|
+
m.directory File.join('spec/fixtures', class_path)
|
15
|
+
|
16
|
+
# Model class, spec and fixtures.
|
17
|
+
m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
18
|
+
m.template 'model:fixtures.yml', File.join('spec/fixtures', class_path, "#{table_name}.yml")
|
19
|
+
m.template 'model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
|
20
|
+
|
21
|
+
unless options[:skip_migration]
|
22
|
+
m.migration_template 'model:migration.rb', 'db/migrate', :assigns => {
|
23
|
+
:migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
|
24
|
+
}, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
|
25
|
+
end
|
26
|
+
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
|
2
|
+
|
3
|
+
describe <%= class_name %> do
|
4
|
+
before(:each) do
|
5
|
+
@<%= file_name %> = <%= class_name %>.new
|
6
|
+
end
|
7
|
+
|
8
|
+
it "should be valid" do
|
9
|
+
@<%= file_name %>.should be_valid
|
10
|
+
end
|
11
|
+
end
|
data/starter-app/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb
ADDED
@@ -0,0 +1,167 @@
|
|
1
|
+
class RspecScaffoldGenerator < Rails::Generator::NamedBase
|
2
|
+
default_options :skip_migration => false
|
3
|
+
|
4
|
+
attr_reader :controller_name,
|
5
|
+
:controller_class_path,
|
6
|
+
:controller_file_path,
|
7
|
+
:controller_class_nesting,
|
8
|
+
:controller_class_nesting_depth,
|
9
|
+
:controller_class_name,
|
10
|
+
:controller_singular_name,
|
11
|
+
:controller_plural_name,
|
12
|
+
:resource_edit_path,
|
13
|
+
:default_file_extension
|
14
|
+
alias_method :controller_file_name, :controller_singular_name
|
15
|
+
alias_method :controller_table_name, :controller_plural_name
|
16
|
+
|
17
|
+
def initialize(runtime_args, runtime_options = {})
|
18
|
+
super
|
19
|
+
|
20
|
+
@controller_name = @name.pluralize
|
21
|
+
|
22
|
+
base_name, @controller_class_path, @controller_file_path, @controller_class_nesting, @controller_class_nesting_depth = extract_modules(@controller_name)
|
23
|
+
@controller_class_name_without_nesting, @controller_singular_name, @controller_plural_name = inflect_names(base_name)
|
24
|
+
|
25
|
+
if @controller_class_nesting.empty?
|
26
|
+
@controller_class_name = @controller_class_name_without_nesting
|
27
|
+
else
|
28
|
+
@controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
|
29
|
+
end
|
30
|
+
|
31
|
+
if Rails::VERSION::STRING < "2.0.0"
|
32
|
+
@resource_generator = "scaffold_resource"
|
33
|
+
@default_file_extension = "rhtml"
|
34
|
+
else
|
35
|
+
@resource_generator = "scaffold"
|
36
|
+
@default_file_extension = "html.erb"
|
37
|
+
end
|
38
|
+
|
39
|
+
if ActionController::Base.respond_to?(:resource_action_separator)
|
40
|
+
@resource_edit_path = "/edit"
|
41
|
+
else
|
42
|
+
@resource_edit_path = ";edit"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def manifest
|
47
|
+
record do |m|
|
48
|
+
|
49
|
+
# Check for class naming collisions.
|
50
|
+
m.class_collisions(controller_class_path, "#{controller_class_name}Controller", "#{controller_class_name}Helper")
|
51
|
+
m.class_collisions(class_path, "#{class_name}")
|
52
|
+
|
53
|
+
# Controller, helper, views, and spec directories.
|
54
|
+
m.directory(File.join('app/models', class_path))
|
55
|
+
m.directory(File.join('app/controllers', controller_class_path))
|
56
|
+
m.directory(File.join('app/helpers', controller_class_path))
|
57
|
+
m.directory(File.join('app/views', controller_class_path, controller_file_name))
|
58
|
+
m.directory(File.join('spec/controllers', controller_class_path))
|
59
|
+
m.directory(File.join('spec/models', class_path))
|
60
|
+
m.directory(File.join('spec/helpers', class_path))
|
61
|
+
m.directory File.join('spec/fixtures', class_path)
|
62
|
+
m.directory File.join('spec/views', controller_class_path, controller_file_name)
|
63
|
+
|
64
|
+
# Controller spec, class, and helper.
|
65
|
+
m.template 'rspec_scaffold:routing_spec.rb',
|
66
|
+
File.join('spec/controllers', controller_class_path, "#{controller_file_name}_routing_spec.rb")
|
67
|
+
|
68
|
+
m.template 'rspec_scaffold:controller_spec.rb',
|
69
|
+
File.join('spec/controllers', controller_class_path, "#{controller_file_name}_controller_spec.rb")
|
70
|
+
|
71
|
+
m.template "#{@resource_generator}:controller.rb",
|
72
|
+
File.join('app/controllers', controller_class_path, "#{controller_file_name}_controller.rb")
|
73
|
+
|
74
|
+
m.template 'rspec_scaffold:helper_spec.rb',
|
75
|
+
File.join('spec/helpers', class_path, "#{controller_file_name}_helper_spec.rb")
|
76
|
+
|
77
|
+
m.template "#{@resource_generator}:helper.rb",
|
78
|
+
File.join('app/helpers', controller_class_path, "#{controller_file_name}_helper.rb")
|
79
|
+
|
80
|
+
for action in scaffold_views
|
81
|
+
m.template(
|
82
|
+
"#{@resource_generator}:view_#{action}.#{@default_file_extension}",
|
83
|
+
File.join('app/views', controller_class_path, controller_file_name, "#{action}.#{default_file_extension}")
|
84
|
+
)
|
85
|
+
end
|
86
|
+
|
87
|
+
# Model class, unit test, and fixtures.
|
88
|
+
m.template 'model:model.rb', File.join('app/models', class_path, "#{file_name}.rb")
|
89
|
+
m.template 'model:fixtures.yml', File.join('spec/fixtures', class_path, "#{table_name}.yml")
|
90
|
+
m.template 'rspec_model:model_spec.rb', File.join('spec/models', class_path, "#{file_name}_spec.rb")
|
91
|
+
|
92
|
+
# View specs
|
93
|
+
m.template "rspec_scaffold:edit_erb_spec.rb",
|
94
|
+
File.join('spec/views', controller_class_path, controller_file_name, "edit.#{default_file_extension}_spec.rb")
|
95
|
+
m.template "rspec_scaffold:index_erb_spec.rb",
|
96
|
+
File.join('spec/views', controller_class_path, controller_file_name, "index.#{default_file_extension}_spec.rb")
|
97
|
+
m.template "rspec_scaffold:new_erb_spec.rb",
|
98
|
+
File.join('spec/views', controller_class_path, controller_file_name, "new.#{default_file_extension}_spec.rb")
|
99
|
+
m.template "rspec_scaffold:show_erb_spec.rb",
|
100
|
+
File.join('spec/views', controller_class_path, controller_file_name, "show.#{default_file_extension}_spec.rb")
|
101
|
+
|
102
|
+
unless options[:skip_migration]
|
103
|
+
m.migration_template(
|
104
|
+
'model:migration.rb', 'db/migrate',
|
105
|
+
:assigns => {
|
106
|
+
:migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}",
|
107
|
+
:attributes => attributes
|
108
|
+
},
|
109
|
+
:migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}"
|
110
|
+
)
|
111
|
+
end
|
112
|
+
|
113
|
+
m.route_resources controller_file_name
|
114
|
+
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
protected
|
119
|
+
# Override with your own usage banner.
|
120
|
+
def banner
|
121
|
+
"Usage: #{$0} rspec_scaffold ModelName [field:type field:type]"
|
122
|
+
end
|
123
|
+
|
124
|
+
def add_options!(opt)
|
125
|
+
opt.separator ''
|
126
|
+
opt.separator 'Options:'
|
127
|
+
opt.on("--skip-migration",
|
128
|
+
"Don't generate a migration file for this model") { |v| options[:skip_migration] = v }
|
129
|
+
end
|
130
|
+
|
131
|
+
def scaffold_views
|
132
|
+
%w[ index show new edit ]
|
133
|
+
end
|
134
|
+
|
135
|
+
def model_name
|
136
|
+
class_name.demodulize
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
140
|
+
module Rails
|
141
|
+
module Generator
|
142
|
+
class GeneratedAttribute
|
143
|
+
def default_value
|
144
|
+
@default_value ||= case type
|
145
|
+
when :int, :integer then "\"1\""
|
146
|
+
when :float then "\"1.5\""
|
147
|
+
when :decimal then "\"9.99\""
|
148
|
+
when :datetime, :timestamp, :time then "Time.now"
|
149
|
+
when :date then "Date.today"
|
150
|
+
when :string then "\"MyString\""
|
151
|
+
when :text then "\"MyText\""
|
152
|
+
when :boolean then "false"
|
153
|
+
else
|
154
|
+
""
|
155
|
+
end
|
156
|
+
end
|
157
|
+
|
158
|
+
def input_type
|
159
|
+
@input_type ||= case type
|
160
|
+
when :text then "textarea"
|
161
|
+
else
|
162
|
+
"input"
|
163
|
+
end
|
164
|
+
end
|
165
|
+
end
|
166
|
+
end
|
167
|
+
end
|
@@ -0,0 +1,313 @@
|
|
1
|
+
require File.dirname(__FILE__) + '<%= '/..' * class_nesting_depth %>/../spec_helper'
|
2
|
+
|
3
|
+
describe <%= controller_class_name %>Controller do
|
4
|
+
describe "handling GET /<%= table_name %>" do
|
5
|
+
|
6
|
+
before(:each) do
|
7
|
+
@<%= file_name %> = mock_model(<%= class_name %>)
|
8
|
+
<%= class_name %>.stub!(:find).and_return([@<%= file_name %>])
|
9
|
+
end
|
10
|
+
|
11
|
+
def do_get
|
12
|
+
get :index
|
13
|
+
end
|
14
|
+
|
15
|
+
it "should be successful" do
|
16
|
+
do_get
|
17
|
+
response.should be_success
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should render index template" do
|
21
|
+
do_get
|
22
|
+
response.should render_template('index')
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should find all <%= table_name %>" do
|
26
|
+
<%= class_name %>.should_receive(:find).with(:all).and_return([@<%= file_name %>])
|
27
|
+
do_get
|
28
|
+
end
|
29
|
+
|
30
|
+
it "should assign the found <%= table_name %> for the view" do
|
31
|
+
do_get
|
32
|
+
assigns[:<%= table_name %>].should == [@<%= file_name %>]
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
describe "handling GET /<%= table_name %>.xml" do
|
37
|
+
|
38
|
+
before(:each) do
|
39
|
+
@<%= file_name %> = mock_model(<%= class_name %>, :to_xml => "XML")
|
40
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
41
|
+
end
|
42
|
+
|
43
|
+
def do_get
|
44
|
+
@request.env["HTTP_ACCEPT"] = "application/xml"
|
45
|
+
get :index
|
46
|
+
end
|
47
|
+
|
48
|
+
it "should be successful" do
|
49
|
+
do_get
|
50
|
+
response.should be_success
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should find all <%= table_name %>" do
|
54
|
+
<%= class_name %>.should_receive(:find).with(:all).and_return([@<%= file_name %>])
|
55
|
+
do_get
|
56
|
+
end
|
57
|
+
|
58
|
+
it "should render the found <%= table_name %> as xml" do
|
59
|
+
@<%= file_name %>.should_receive(:to_xml).and_return("XML")
|
60
|
+
do_get
|
61
|
+
response.body.should == "XML"
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "handling GET /<%= table_name %>/1" do
|
66
|
+
|
67
|
+
before(:each) do
|
68
|
+
@<%= file_name %> = mock_model(<%= class_name %>)
|
69
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
70
|
+
end
|
71
|
+
|
72
|
+
def do_get
|
73
|
+
get :show, :id => "1"
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should be successful" do
|
77
|
+
do_get
|
78
|
+
response.should be_success
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should render show template" do
|
82
|
+
do_get
|
83
|
+
response.should render_template('show')
|
84
|
+
end
|
85
|
+
|
86
|
+
it "should find the <%= file_name %> requested" do
|
87
|
+
<%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
|
88
|
+
do_get
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should assign the found <%= file_name %> for the view" do
|
92
|
+
do_get
|
93
|
+
assigns[:<%= file_name %>].should equal(@<%= file_name %>)
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
describe "handling GET /<%= table_name %>/1.xml" do
|
98
|
+
|
99
|
+
before(:each) do
|
100
|
+
@<%= file_name %> = mock_model(<%= class_name %>, :to_xml => "XML")
|
101
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
102
|
+
end
|
103
|
+
|
104
|
+
def do_get
|
105
|
+
@request.env["HTTP_ACCEPT"] = "application/xml"
|
106
|
+
get :show, :id => "1"
|
107
|
+
end
|
108
|
+
|
109
|
+
it "should be successful" do
|
110
|
+
do_get
|
111
|
+
response.should be_success
|
112
|
+
end
|
113
|
+
|
114
|
+
it "should find the <%= file_name %> requested" do
|
115
|
+
<%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
|
116
|
+
do_get
|
117
|
+
end
|
118
|
+
|
119
|
+
it "should render the found <%= file_name %> as xml" do
|
120
|
+
@<%= file_name %>.should_receive(:to_xml).and_return("XML")
|
121
|
+
do_get
|
122
|
+
response.body.should == "XML"
|
123
|
+
end
|
124
|
+
end
|
125
|
+
|
126
|
+
describe "handling GET /<%= table_name %>/new" do
|
127
|
+
|
128
|
+
before(:each) do
|
129
|
+
@<%= file_name %> = mock_model(<%= class_name %>)
|
130
|
+
<%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
|
131
|
+
end
|
132
|
+
|
133
|
+
def do_get
|
134
|
+
get :new
|
135
|
+
end
|
136
|
+
|
137
|
+
it "should be successful" do
|
138
|
+
do_get
|
139
|
+
response.should be_success
|
140
|
+
end
|
141
|
+
|
142
|
+
it "should render new template" do
|
143
|
+
do_get
|
144
|
+
response.should render_template('new')
|
145
|
+
end
|
146
|
+
|
147
|
+
it "should create an new <%= file_name %>" do
|
148
|
+
<%= class_name %>.should_receive(:new).and_return(@<%= file_name %>)
|
149
|
+
do_get
|
150
|
+
end
|
151
|
+
|
152
|
+
it "should not save the new <%= file_name %>" do
|
153
|
+
@<%= file_name %>.should_not_receive(:save)
|
154
|
+
do_get
|
155
|
+
end
|
156
|
+
|
157
|
+
it "should assign the new <%= file_name %> for the view" do
|
158
|
+
do_get
|
159
|
+
assigns[:<%= file_name %>].should equal(@<%= file_name %>)
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
describe "handling GET /<%= table_name %>/1/edit" do
|
164
|
+
|
165
|
+
before(:each) do
|
166
|
+
@<%= file_name %> = mock_model(<%= class_name %>)
|
167
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
168
|
+
end
|
169
|
+
|
170
|
+
def do_get
|
171
|
+
get :edit, :id => "1"
|
172
|
+
end
|
173
|
+
|
174
|
+
it "should be successful" do
|
175
|
+
do_get
|
176
|
+
response.should be_success
|
177
|
+
end
|
178
|
+
|
179
|
+
it "should render edit template" do
|
180
|
+
do_get
|
181
|
+
response.should render_template('edit')
|
182
|
+
end
|
183
|
+
|
184
|
+
it "should find the <%= file_name %> requested" do
|
185
|
+
<%= class_name %>.should_receive(:find).and_return(@<%= file_name %>)
|
186
|
+
do_get
|
187
|
+
end
|
188
|
+
|
189
|
+
it "should assign the found <%= class_name %> for the view" do
|
190
|
+
do_get
|
191
|
+
assigns[:<%= file_name %>].should equal(@<%= file_name %>)
|
192
|
+
end
|
193
|
+
end
|
194
|
+
|
195
|
+
describe "handling POST /<%= table_name %>" do
|
196
|
+
|
197
|
+
before(:each) do
|
198
|
+
@<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1")
|
199
|
+
<%= class_name %>.stub!(:new).and_return(@<%= file_name %>)
|
200
|
+
end
|
201
|
+
|
202
|
+
describe "with successful save" do
|
203
|
+
|
204
|
+
def do_post
|
205
|
+
@<%= file_name %>.should_receive(:save).and_return(true)
|
206
|
+
post :create, :<%= file_name %> => {}
|
207
|
+
end
|
208
|
+
|
209
|
+
it "should create a new <%= file_name %>" do
|
210
|
+
<%= class_name %>.should_receive(:new).with({}).and_return(@<%= file_name %>)
|
211
|
+
do_post
|
212
|
+
end
|
213
|
+
|
214
|
+
it "should redirect to the new <%= file_name %>" do
|
215
|
+
do_post
|
216
|
+
response.should redirect_to(<%= table_name.singularize %>_url("1"))
|
217
|
+
end
|
218
|
+
|
219
|
+
end
|
220
|
+
|
221
|
+
describe "with failed save" do
|
222
|
+
|
223
|
+
def do_post
|
224
|
+
@<%= file_name %>.should_receive(:save).and_return(false)
|
225
|
+
post :create, :<%= file_name %> => {}
|
226
|
+
end
|
227
|
+
|
228
|
+
it "should re-render 'new'" do
|
229
|
+
do_post
|
230
|
+
response.should render_template('new')
|
231
|
+
end
|
232
|
+
|
233
|
+
end
|
234
|
+
end
|
235
|
+
|
236
|
+
describe "handling PUT /<%= table_name %>/1" do
|
237
|
+
|
238
|
+
before(:each) do
|
239
|
+
@<%= file_name %> = mock_model(<%= class_name %>, :to_param => "1")
|
240
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
241
|
+
end
|
242
|
+
|
243
|
+
describe "with successful update" do
|
244
|
+
|
245
|
+
def do_put
|
246
|
+
@<%= file_name %>.should_receive(:update_attributes).and_return(true)
|
247
|
+
put :update, :id => "1"
|
248
|
+
end
|
249
|
+
|
250
|
+
it "should find the <%= file_name %> requested" do
|
251
|
+
<%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
|
252
|
+
do_put
|
253
|
+
end
|
254
|
+
|
255
|
+
it "should update the found <%= file_name %>" do
|
256
|
+
do_put
|
257
|
+
assigns(:<%= file_name %>).should equal(@<%= file_name %>)
|
258
|
+
end
|
259
|
+
|
260
|
+
it "should assign the found <%= file_name %> for the view" do
|
261
|
+
do_put
|
262
|
+
assigns(:<%= file_name %>).should equal(@<%= file_name %>)
|
263
|
+
end
|
264
|
+
|
265
|
+
it "should redirect to the <%= file_name %>" do
|
266
|
+
do_put
|
267
|
+
response.should redirect_to(<%= table_name.singularize %>_url("1"))
|
268
|
+
end
|
269
|
+
|
270
|
+
end
|
271
|
+
|
272
|
+
describe "with failed update" do
|
273
|
+
|
274
|
+
def do_put
|
275
|
+
@<%= file_name %>.should_receive(:update_attributes).and_return(false)
|
276
|
+
put :update, :id => "1"
|
277
|
+
end
|
278
|
+
|
279
|
+
it "should re-render 'edit'" do
|
280
|
+
do_put
|
281
|
+
response.should render_template('edit')
|
282
|
+
end
|
283
|
+
|
284
|
+
end
|
285
|
+
end
|
286
|
+
|
287
|
+
describe "handling DELETE /<%= table_name %>/1" do
|
288
|
+
|
289
|
+
before(:each) do
|
290
|
+
@<%= file_name %> = mock_model(<%= class_name %>, :destroy => true)
|
291
|
+
<%= class_name %>.stub!(:find).and_return(@<%= file_name %>)
|
292
|
+
end
|
293
|
+
|
294
|
+
def do_delete
|
295
|
+
delete :destroy, :id => "1"
|
296
|
+
end
|
297
|
+
|
298
|
+
it "should find the <%= file_name %> requested" do
|
299
|
+
<%= class_name %>.should_receive(:find).with("1").and_return(@<%= file_name %>)
|
300
|
+
do_delete
|
301
|
+
end
|
302
|
+
|
303
|
+
it "should call destroy on the found <%= file_name %>" do
|
304
|
+
@<%= file_name %>.should_receive(:destroy)
|
305
|
+
do_delete
|
306
|
+
end
|
307
|
+
|
308
|
+
it "should redirect to the <%= table_name %> list" do
|
309
|
+
do_delete
|
310
|
+
response.should redirect_to(<%= table_name %>_url)
|
311
|
+
end
|
312
|
+
end
|
313
|
+
end
|