hubbub 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (661) hide show
  1. data/LICENSE +1 -0
  2. data/README +1 -0
  3. data/lib/app/controllers/application_controller.rb +71 -0
  4. data/lib/app/controllers/articles_controller.rb +64 -0
  5. data/lib/app/controllers/home_controller.rb +7 -0
  6. data/lib/app/controllers/pages_controller.rb +17 -0
  7. data/lib/app/controllers/tags_controller.rb +31 -0
  8. data/lib/app/controllers/user_sessions_controller.rb +32 -0
  9. data/lib/app/helpers/application_helper.rb +14 -0
  10. data/lib/app/helpers/articles_helper.rb +2 -0
  11. data/lib/app/helpers/home_helper.rb +2 -0
  12. data/lib/app/helpers/logins_helper.rb +2 -0
  13. data/lib/app/helpers/pages_helper.rb +2 -0
  14. data/lib/app/helpers/tags_helper.rb +2 -0
  15. data/lib/app/models/article.rb +63 -0
  16. data/lib/app/models/page.rb +11 -0
  17. data/lib/app/models/tag.rb +31 -0
  18. data/lib/app/models/tagging.rb +7 -0
  19. data/lib/app/models/user.rb +3 -0
  20. data/lib/app/models/user_session.rb +3 -0
  21. data/lib/app/views/articles/_article.html.erb +37 -0
  22. data/lib/app/views/articles/_comments.html.erb +20 -0
  23. data/lib/app/views/articles/_form.html.erb +8 -0
  24. data/lib/app/views/articles/_item.html.erb +25 -0
  25. data/lib/app/views/articles/_pagination.html.erb +5 -0
  26. data/lib/app/views/articles/create.html.erb +2 -0
  27. data/lib/app/views/articles/destroy.html.erb +2 -0
  28. data/lib/app/views/articles/edit.html.erb +12 -0
  29. data/lib/app/views/articles/head/_show.html.erb +2 -0
  30. data/lib/app/views/articles/index.atom.builder +16 -0
  31. data/lib/app/views/articles/index.html.erb +52 -0
  32. data/lib/app/views/articles/new.html.erb +11 -0
  33. data/lib/app/views/articles/scripts/_show.html.erb +5 -0
  34. data/lib/app/views/articles/show.html.erb +21 -0
  35. data/lib/app/views/articles/update.html.erb +2 -0
  36. data/lib/app/views/errors/error_404.html.erb +10 -0
  37. data/lib/app/views/home/head/_index.html.erb +2 -0
  38. data/lib/app/views/home/index.html.erb +27 -0
  39. data/lib/app/views/home/scripts/_index.html.erb +5 -0
  40. data/lib/app/views/layouts/application.html.erb +50 -0
  41. data/lib/app/views/layouts/login.html.erb +24 -0
  42. data/lib/app/views/pages/_form.html.erb +7 -0
  43. data/lib/app/views/pages/_item.html.erb +13 -0
  44. data/lib/app/views/pages/_page.html.erb +17 -0
  45. data/lib/app/views/pages/create.html.erb +2 -0
  46. data/lib/app/views/pages/destroy.html.erb +2 -0
  47. data/lib/app/views/pages/edit.html.erb +13 -0
  48. data/lib/app/views/pages/head/_show.html.erb +2 -0
  49. data/lib/app/views/pages/index.html.erb +30 -0
  50. data/lib/app/views/pages/new.html.erb +12 -0
  51. data/lib/app/views/pages/scripts/_show.html.erb +5 -0
  52. data/lib/app/views/pages/show.html.erb +28 -0
  53. data/lib/app/views/pages/update.html.erb +2 -0
  54. data/lib/app/views/shared/_analytics.html.erb +1 -0
  55. data/lib/app/views/shared/_copyright.html.erb +1 -0
  56. data/lib/app/views/shared/_disqus.html.erb +16 -0
  57. data/lib/app/views/shared/_footer.html.erb +8 -0
  58. data/lib/app/views/shared/_header.html.erb +11 -0
  59. data/lib/app/views/shared/_meetup.html.erb +12 -0
  60. data/lib/app/views/shared/_navigation.html.erb +32 -0
  61. data/lib/app/views/shared/_site_id.html.erb +2 -0
  62. data/lib/app/views/shared/_sitesearch.html.erb +7 -0
  63. data/lib/app/views/shared/extend/_head.html.erb +0 -0
  64. data/lib/app/views/shared/extend/_scripts.html.erb +3 -0
  65. data/lib/app/views/tags/_form.html.erb +6 -0
  66. data/lib/app/views/tags/_tag.html.erb +3 -0
  67. data/lib/app/views/tags/destroy.html.erb +2 -0
  68. data/lib/app/views/tags/edit.html.erb +12 -0
  69. data/lib/app/views/tags/index.html.erb +23 -0
  70. data/lib/app/views/tags/show.atom.builder +16 -0
  71. data/lib/app/views/tags/show.html.erb +39 -0
  72. data/lib/app/views/tags/update.html.erb +2 -0
  73. data/lib/app/views/user_sessions/new.html.erb +8 -0
  74. data/lib/config/database.yml +22 -0
  75. data/lib/config/environments/development.rb +17 -0
  76. data/lib/config/environments/production.rb +28 -0
  77. data/lib/config/environments/test.rb +28 -0
  78. data/lib/config/hubbub.yml +25 -0
  79. data/lib/config/hubbub.yml.example +25 -0
  80. data/lib/config/initializers/backtrace_silencers.rb +7 -0
  81. data/lib/config/initializers/formtastic.rb +51 -0
  82. data/lib/config/initializers/inflections.rb +10 -0
  83. data/lib/config/initializers/mime_types.rb +5 -0
  84. data/lib/config/initializers/new_rails_defaults.rb +21 -0
  85. data/lib/config/initializers/session_store.rb +15 -0
  86. data/lib/config/locales/en.yml +5 -0
  87. data/lib/config/routes.rb +12 -0
  88. data/lib/db/migrate/20091226230412_create_articles.rb +20 -0
  89. data/lib/db/migrate/20091227003405_create_tags.rb +17 -0
  90. data/lib/db/migrate/20091227004351_create_taggings.rb +20 -0
  91. data/lib/db/migrate/20091227213928_add_open_id_authentication_tables.rb +20 -0
  92. data/lib/db/migrate/20091227214245_create_users.rb +23 -0
  93. data/lib/db/migrate/20091229164415_create_pages.rb +19 -0
  94. data/lib/db/schema.rb +95 -0
  95. data/lib/db/seeds.rb +7 -0
  96. data/lib/hubbub/boot.rb +2 -0
  97. data/lib/hubbub/tasks.rb +12 -0
  98. data/lib/hubbub.rb +5 -0
  99. data/lib/lib/hubbub.rb +12 -0
  100. data/lib/lib/tasks/rspec.rake +144 -0
  101. data/lib/public/warp_drive/rails.png +0 -0
  102. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/resourceful_scaffold_generator.rb +87 -0
  103. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/controller.rb +5 -0
  104. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/fixtures.yml +10 -0
  105. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/functional_test.rb +57 -0
  106. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/helper.rb +2 -0
  107. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/migration.rb +13 -0
  108. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/model.rb +2 -0
  109. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/unit_test.rb +7 -0
  110. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view__form.haml +5 -0
  111. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view_edit.haml +11 -0
  112. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view_index.haml +5 -0
  113. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view_new.haml +9 -0
  114. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view_partial.haml +12 -0
  115. data/lib/vendor/plugins/make_resourceful/generators/resourceful_scaffold/templates/view_show.haml +14 -0
  116. data/lib/vendor/plugins/make_resourceful/init.rb +3 -0
  117. data/lib/vendor/plugins/make_resourceful/lib/resourceful/base.rb +63 -0
  118. data/lib/vendor/plugins/make_resourceful/lib/resourceful/builder.rb +385 -0
  119. data/lib/vendor/plugins/make_resourceful/lib/resourceful/default/accessors.rb +402 -0
  120. data/lib/vendor/plugins/make_resourceful/lib/resourceful/default/actions.rb +101 -0
  121. data/lib/vendor/plugins/make_resourceful/lib/resourceful/default/callbacks.rb +51 -0
  122. data/lib/vendor/plugins/make_resourceful/lib/resourceful/default/responses.rb +118 -0
  123. data/lib/vendor/plugins/make_resourceful/lib/resourceful/default/urls.rb +137 -0
  124. data/lib/vendor/plugins/make_resourceful/lib/resourceful/maker.rb +84 -0
  125. data/lib/vendor/plugins/make_resourceful/lib/resourceful/response.rb +33 -0
  126. data/lib/vendor/plugins/make_resourceful/lib/resourceful/serialize.rb +181 -0
  127. data/lib/vendor/plugins/make_resourceful/spec/accessors_spec.rb +474 -0
  128. data/lib/vendor/plugins/make_resourceful/spec/actions_spec.rb +310 -0
  129. data/lib/vendor/plugins/make_resourceful/spec/base_spec.rb +12 -0
  130. data/lib/vendor/plugins/make_resourceful/spec/builder_spec.rb +332 -0
  131. data/lib/vendor/plugins/make_resourceful/spec/callbacks_spec.rb +71 -0
  132. data/lib/vendor/plugins/make_resourceful/spec/integration_spec.rb +393 -0
  133. data/lib/vendor/plugins/make_resourceful/spec/maker_spec.rb +91 -0
  134. data/lib/vendor/plugins/make_resourceful/spec/response_spec.rb +37 -0
  135. data/lib/vendor/plugins/make_resourceful/spec/responses_spec.rb +314 -0
  136. data/lib/vendor/plugins/make_resourceful/spec/rspec-rails/redirect_to.rb +113 -0
  137. data/lib/vendor/plugins/make_resourceful/spec/rspec-rails/render_template.rb +90 -0
  138. data/lib/vendor/plugins/make_resourceful/spec/serialize_spec.rb +133 -0
  139. data/lib/vendor/plugins/make_resourceful/spec/spec_helper.rb +307 -0
  140. data/lib/vendor/plugins/make_resourceful/spec/urls_spec.rb +278 -0
  141. data/lib/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/open_id_authentication_tables_generator.rb +11 -0
  142. data/lib/vendor/plugins/open_id_authentication/generators/open_id_authentication_tables/templates/migration.rb +20 -0
  143. data/lib/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/templates/migration.rb +26 -0
  144. data/lib/vendor/plugins/open_id_authentication/generators/upgrade_open_id_authentication_tables/upgrade_open_id_authentication_tables_generator.rb +11 -0
  145. data/lib/vendor/plugins/open_id_authentication/init.rb +18 -0
  146. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication/association.rb +9 -0
  147. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication/db_store.rb +55 -0
  148. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication/nonce.rb +5 -0
  149. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication/request.rb +23 -0
  150. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication/timeout_fixes.rb +20 -0
  151. data/lib/vendor/plugins/open_id_authentication/lib/open_id_authentication.rb +240 -0
  152. data/lib/vendor/plugins/open_id_authentication/tasks/open_id_authentication_tasks.rake +30 -0
  153. data/lib/vendor/plugins/open_id_authentication/test/normalize_test.rb +32 -0
  154. data/lib/vendor/plugins/open_id_authentication/test/open_id_authentication_test.rb +46 -0
  155. data/lib/vendor/plugins/open_id_authentication/test/status_test.rb +14 -0
  156. data/lib/vendor/plugins/open_id_authentication/test/test_helper.rb +17 -0
  157. data/lib/vendor/plugins/postable/init.rb +1 -0
  158. data/lib/vendor/plugins/postable/install.rb +1 -0
  159. data/lib/vendor/plugins/postable/lib/postable.rb +59 -0
  160. data/lib/vendor/plugins/postable/tasks/postable_tasks.rake +4 -0
  161. data/lib/vendor/plugins/postable/test/postable_test.rb +8 -0
  162. data/lib/vendor/plugins/postable/test/test_helper.rb +3 -0
  163. data/lib/vendor/plugins/postable/uninstall.rb +1 -0
  164. data/lib/vendor/plugins/rspec/History.rdoc +1496 -0
  165. data/lib/vendor/plugins/rspec/License.txt +22 -0
  166. data/lib/vendor/plugins/rspec/Manifest.txt +377 -0
  167. data/lib/vendor/plugins/rspec/README.rdoc +55 -0
  168. data/lib/vendor/plugins/rspec/Ruby1.9.rdoc +31 -0
  169. data/lib/vendor/plugins/rspec/TODO.txt +17 -0
  170. data/lib/vendor/plugins/rspec/Upgrade.rdoc +199 -0
  171. data/lib/vendor/plugins/rspec/cucumber.yml +5 -0
  172. data/lib/vendor/plugins/rspec/features/before_and_after_blocks/before_and_after_blocks.feature +167 -0
  173. data/lib/vendor/plugins/rspec/features/command_line/line_number_option.feature +56 -0
  174. data/lib/vendor/plugins/rspec/features/command_line/line_number_option_with_example_with_no_name.feature +22 -0
  175. data/lib/vendor/plugins/rspec/features/example_groups/define_example_attribute.feature +41 -0
  176. data/lib/vendor/plugins/rspec/features/example_groups/example_group_with_should_methods.feature +29 -0
  177. data/lib/vendor/plugins/rspec/features/example_groups/implicit_docstrings.feature +59 -0
  178. data/lib/vendor/plugins/rspec/features/example_groups/nested_groups.feature +32 -0
  179. data/lib/vendor/plugins/rspec/features/expectations/customized_message.feature +54 -0
  180. data/lib/vendor/plugins/rspec/features/expectations/expect_change.feature +65 -0
  181. data/lib/vendor/plugins/rspec/features/expectations/expect_error.feature +44 -0
  182. data/lib/vendor/plugins/rspec/features/extensions/custom_example_group.feature +19 -0
  183. data/lib/vendor/plugins/rspec/features/formatters/custom_formatter.feature +30 -0
  184. data/lib/vendor/plugins/rspec/features/interop/examples_and_tests_together.feature +84 -0
  185. data/lib/vendor/plugins/rspec/features/interop/rspec_output.feature +25 -0
  186. data/lib/vendor/plugins/rspec/features/interop/test_but_not_test_unit.feature +26 -0
  187. data/lib/vendor/plugins/rspec/features/interop/test_case_with_should_methods.feature +46 -0
  188. data/lib/vendor/plugins/rspec/features/load_paths/add_lib_to_load_path.feature +20 -0
  189. data/lib/vendor/plugins/rspec/features/load_paths/add_spec_to_load_path.feature +20 -0
  190. data/lib/vendor/plugins/rspec/features/matchers/define_diffable_matcher.feature +26 -0
  191. data/lib/vendor/plugins/rspec/features/matchers/define_matcher.feature +179 -0
  192. data/lib/vendor/plugins/rspec/features/matchers/define_matcher_outside_rspec.feature +38 -0
  193. data/lib/vendor/plugins/rspec/features/matchers/define_matcher_with_fluent_interface.feature +27 -0
  194. data/lib/vendor/plugins/rspec/features/matchers/define_wrapped_matcher.feature +29 -0
  195. data/lib/vendor/plugins/rspec/features/mock_framework_integration/use_flexmock.feature +27 -0
  196. data/lib/vendor/plugins/rspec/features/mock_framework_integration/use_mocha.feature +27 -0
  197. data/lib/vendor/plugins/rspec/features/mock_framework_integration/use_rr.feature +27 -0
  198. data/lib/vendor/plugins/rspec/features/mocks/mix_stubs_and_mocks.feature +22 -0
  199. data/lib/vendor/plugins/rspec/features/mocks/stub_implementation.feature +26 -0
  200. data/lib/vendor/plugins/rspec/features/pending/pending_examples.feature +81 -0
  201. data/lib/vendor/plugins/rspec/features/runner/specify_line_number.feature +32 -0
  202. data/lib/vendor/plugins/rspec/features/spec_helper/spec_helper.feature +25 -0
  203. data/lib/vendor/plugins/rspec/features/step_definitions/running_rspec_steps.rb +43 -0
  204. data/lib/vendor/plugins/rspec/features/subject/explicit_subject.feature +31 -0
  205. data/lib/vendor/plugins/rspec/features/subject/implicit_subject.feature +43 -0
  206. data/lib/vendor/plugins/rspec/features/support/env.rb +82 -0
  207. data/lib/vendor/plugins/rspec/features/support/matchers/smart_match.rb +12 -0
  208. data/lib/vendor/plugins/rspec/features-pending/cli/conditional_exclusion.feature +39 -0
  209. data/lib/vendor/plugins/rspec/features-pending/heckle/heckle.feature +56 -0
  210. data/lib/vendor/plugins/rspec/geminstaller.yml +28 -0
  211. data/lib/vendor/plugins/rspec/init.rb +9 -0
  212. data/lib/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
  213. data/lib/vendor/plugins/rspec/lib/autotest/rspec.rb +47 -0
  214. data/lib/vendor/plugins/rspec/lib/spec/adapters/mock_frameworks/flexmock.rb +24 -0
  215. data/lib/vendor/plugins/rspec/lib/spec/adapters/mock_frameworks/mocha.rb +25 -0
  216. data/lib/vendor/plugins/rspec/lib/spec/adapters/mock_frameworks/rr.rb +22 -0
  217. data/lib/vendor/plugins/rspec/lib/spec/adapters/mock_frameworks/rspec.rb +21 -0
  218. data/lib/vendor/plugins/rspec/lib/spec/autorun.rb +3 -0
  219. data/lib/vendor/plugins/rspec/lib/spec/deprecation.rb +40 -0
  220. data/lib/vendor/plugins/rspec/lib/spec/dsl/main.rb +92 -0
  221. data/lib/vendor/plugins/rspec/lib/spec/dsl.rb +1 -0
  222. data/lib/vendor/plugins/rspec/lib/spec/example/args_and_options.rb +27 -0
  223. data/lib/vendor/plugins/rspec/lib/spec/example/before_and_after_hooks.rb +93 -0
  224. data/lib/vendor/plugins/rspec/lib/spec/example/errors.rb +25 -0
  225. data/lib/vendor/plugins/rspec/lib/spec/example/example_group.rb +10 -0
  226. data/lib/vendor/plugins/rspec/lib/spec/example/example_group_factory.rb +82 -0
  227. data/lib/vendor/plugins/rspec/lib/spec/example/example_group_hierarchy.rb +53 -0
  228. data/lib/vendor/plugins/rspec/lib/spec/example/example_group_methods.rb +282 -0
  229. data/lib/vendor/plugins/rspec/lib/spec/example/example_group_proxy.rb +61 -0
  230. data/lib/vendor/plugins/rspec/lib/spec/example/example_matcher.rb +43 -0
  231. data/lib/vendor/plugins/rspec/lib/spec/example/example_methods.rb +148 -0
  232. data/lib/vendor/plugins/rspec/lib/spec/example/example_proxy.rb +41 -0
  233. data/lib/vendor/plugins/rspec/lib/spec/example/module_reopening_fix.rb +43 -0
  234. data/lib/vendor/plugins/rspec/lib/spec/example/pending.rb +18 -0
  235. data/lib/vendor/plugins/rspec/lib/spec/example/predicate_matchers.rb +46 -0
  236. data/lib/vendor/plugins/rspec/lib/spec/example/shared_example_group.rb +59 -0
  237. data/lib/vendor/plugins/rspec/lib/spec/example/subject.rb +108 -0
  238. data/lib/vendor/plugins/rspec/lib/spec/example.rb +164 -0
  239. data/lib/vendor/plugins/rspec/lib/spec/expectations/errors.rb +12 -0
  240. data/lib/vendor/plugins/rspec/lib/spec/expectations/extensions/kernel.rb +52 -0
  241. data/lib/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +1 -0
  242. data/lib/vendor/plugins/rspec/lib/spec/expectations/fail_with.rb +45 -0
  243. data/lib/vendor/plugins/rspec/lib/spec/expectations/handler.rb +50 -0
  244. data/lib/vendor/plugins/rspec/lib/spec/expectations.rb +35 -0
  245. data/lib/vendor/plugins/rspec/lib/spec/interop/test/unit/autorunner.rb +6 -0
  246. data/lib/vendor/plugins/rspec/lib/spec/interop/test/unit/testcase.rb +56 -0
  247. data/lib/vendor/plugins/rspec/lib/spec/interop/test/unit/testresult.rb +6 -0
  248. data/lib/vendor/plugins/rspec/lib/spec/interop/test/unit/testsuite_adapter.rb +34 -0
  249. data/lib/vendor/plugins/rspec/lib/spec/interop/test/unit/ui/console/testrunner.rb +61 -0
  250. data/lib/vendor/plugins/rspec/lib/spec/interop/test.rb +44 -0
  251. data/lib/vendor/plugins/rspec/lib/spec/matchers/be.rb +210 -0
  252. data/lib/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +32 -0
  253. data/lib/vendor/plugins/rspec/lib/spec/matchers/be_instance_of.rb +26 -0
  254. data/lib/vendor/plugins/rspec/lib/spec/matchers/be_kind_of.rb +26 -0
  255. data/lib/vendor/plugins/rspec/lib/spec/matchers/change.rb +151 -0
  256. data/lib/vendor/plugins/rspec/lib/spec/matchers/compatibility.rb +14 -0
  257. data/lib/vendor/plugins/rspec/lib/spec/matchers/dsl.rb +20 -0
  258. data/lib/vendor/plugins/rspec/lib/spec/matchers/eql.rb +42 -0
  259. data/lib/vendor/plugins/rspec/lib/spec/matchers/equal.rb +53 -0
  260. data/lib/vendor/plugins/rspec/lib/spec/matchers/errors.rb +5 -0
  261. data/lib/vendor/plugins/rspec/lib/spec/matchers/exist.rb +16 -0
  262. data/lib/vendor/plugins/rspec/lib/spec/matchers/extensions/instance_exec.rb +31 -0
  263. data/lib/vendor/plugins/rspec/lib/spec/matchers/generated_descriptions.rb +36 -0
  264. data/lib/vendor/plugins/rspec/lib/spec/matchers/has.rb +35 -0
  265. data/lib/vendor/plugins/rspec/lib/spec/matchers/have.rb +151 -0
  266. data/lib/vendor/plugins/rspec/lib/spec/matchers/include.rb +44 -0
  267. data/lib/vendor/plugins/rspec/lib/spec/matchers/match.rb +21 -0
  268. data/lib/vendor/plugins/rspec/lib/spec/matchers/match_array.rb +71 -0
  269. data/lib/vendor/plugins/rspec/lib/spec/matchers/matcher.rb +87 -0
  270. data/lib/vendor/plugins/rspec/lib/spec/matchers/method_missing.rb +9 -0
  271. data/lib/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +78 -0
  272. data/lib/vendor/plugins/rspec/lib/spec/matchers/pretty.rb +37 -0
  273. data/lib/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +129 -0
  274. data/lib/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +71 -0
  275. data/lib/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
  276. data/lib/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb +133 -0
  277. data/lib/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +104 -0
  278. data/lib/vendor/plugins/rspec/lib/spec/matchers/wrap_expectation.rb +55 -0
  279. data/lib/vendor/plugins/rspec/lib/spec/matchers.rb +195 -0
  280. data/lib/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +51 -0
  281. data/lib/vendor/plugins/rspec/lib/spec/mocks/argument_matchers.rb +237 -0
  282. data/lib/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +92 -0
  283. data/lib/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
  284. data/lib/vendor/plugins/rspec/lib/spec/mocks/example_methods.rb +69 -0
  285. data/lib/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  286. data/lib/vendor/plugins/rspec/lib/spec/mocks/extensions.rb +1 -0
  287. data/lib/vendor/plugins/rspec/lib/spec/mocks/framework.rb +15 -0
  288. data/lib/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +329 -0
  289. data/lib/vendor/plugins/rspec/lib/spec/mocks/methods.rb +89 -0
  290. data/lib/vendor/plugins/rspec/lib/spec/mocks/mock.rb +71 -0
  291. data/lib/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
  292. data/lib/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +245 -0
  293. data/lib/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
  294. data/lib/vendor/plugins/rspec/lib/spec/mocks.rb +200 -0
  295. data/lib/vendor/plugins/rspec/lib/spec/rake/spectask.rb +230 -0
  296. data/lib/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  297. data/lib/vendor/plugins/rspec/lib/spec/ruby.rb +9 -0
  298. data/lib/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +77 -0
  299. data/lib/vendor/plugins/rspec/lib/spec/runner/class_and_arguments_parser.rb +14 -0
  300. data/lib/vendor/plugins/rspec/lib/spec/runner/command_line.rb +15 -0
  301. data/lib/vendor/plugins/rspec/lib/spec/runner/configuration.rb +194 -0
  302. data/lib/vendor/plugins/rspec/lib/spec/runner/differs/default.rb +93 -0
  303. data/lib/vendor/plugins/rspec/lib/spec/runner/differs/load-diff-lcs.rb +12 -0
  304. data/lib/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +26 -0
  305. data/lib/vendor/plugins/rspec/lib/spec/runner/example_group_runner.rb +59 -0
  306. data/lib/vendor/plugins/rspec/lib/spec/runner/extensions/kernel.rb +9 -0
  307. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +139 -0
  308. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +142 -0
  309. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/failing_example_groups_formatter.rb +25 -0
  310. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +20 -0
  311. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +338 -0
  312. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/nested_text_formatter.rb +47 -0
  313. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/no_op_method_missing.rb +21 -0
  314. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/profile_formatter.rb +47 -0
  315. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +33 -0
  316. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/silent_formatter.rb +10 -0
  317. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  318. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +33 -0
  319. data/lib/vendor/plugins/rspec/lib/spec/runner/formatter/text_mate_formatter.rb +16 -0
  320. data/lib/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  321. data/lib/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  322. data/lib/vendor/plugins/rspec/lib/spec/runner/line_number_query.rb +78 -0
  323. data/lib/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +223 -0
  324. data/lib/vendor/plugins/rspec/lib/spec/runner/options.rb +400 -0
  325. data/lib/vendor/plugins/rspec/lib/spec/runner/reporter.rb +171 -0
  326. data/lib/vendor/plugins/rspec/lib/spec/runner.rb +66 -0
  327. data/lib/vendor/plugins/rspec/lib/spec/stubs/cucumber.rb +5 -0
  328. data/lib/vendor/plugins/rspec/lib/spec/test/unit.rb +10 -0
  329. data/lib/vendor/plugins/rspec/lib/spec/version.rb +14 -0
  330. data/lib/vendor/plugins/rspec/lib/spec.rb +8 -0
  331. data/lib/vendor/plugins/rspec/resources/helpers/cmdline.rb +8 -0
  332. data/lib/vendor/plugins/rspec/resources/rake/examples.rake +7 -0
  333. data/lib/vendor/plugins/rspec/resources/rake/examples_with_rcov.rake +9 -0
  334. data/lib/vendor/plugins/rspec/resources/rake/failing_examples_with_html.rake +9 -0
  335. data/lib/vendor/plugins/rspec/resources/rake/verify_rcov.rake +7 -0
  336. data/lib/vendor/plugins/rspec/spec/README.jruby +15 -0
  337. data/lib/vendor/plugins/rspec/spec/autotest/autotest_helper.rb +8 -0
  338. data/lib/vendor/plugins/rspec/spec/autotest/autotest_matchers.rb +38 -0
  339. data/lib/vendor/plugins/rspec/spec/autotest/discover_spec.rb +8 -0
  340. data/lib/vendor/plugins/rspec/spec/autotest/failed_results_re_spec.rb +31 -0
  341. data/lib/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +111 -0
  342. data/lib/vendor/plugins/rspec/spec/ruby_forker.rb +13 -0
  343. data/lib/vendor/plugins/rspec/spec/spec/dsl/main_spec.rb +95 -0
  344. data/lib/vendor/plugins/rspec/spec/spec/example/example_group_class_definition_spec.rb +51 -0
  345. data/lib/vendor/plugins/rspec/spec/spec/example/example_group_factory_spec.rb +180 -0
  346. data/lib/vendor/plugins/rspec/spec/spec/example/example_group_methods_spec.rb +758 -0
  347. data/lib/vendor/plugins/rspec/spec/spec/example/example_group_proxy_spec.rb +107 -0
  348. data/lib/vendor/plugins/rspec/spec/spec/example/example_group_spec.rb +643 -0
  349. data/lib/vendor/plugins/rspec/spec/spec/example/example_matcher_spec.rb +86 -0
  350. data/lib/vendor/plugins/rspec/spec/spec/example/example_methods_spec.rb +162 -0
  351. data/lib/vendor/plugins/rspec/spec/spec/example/example_proxy_spec.rb +57 -0
  352. data/lib/vendor/plugins/rspec/spec/spec/example/helper_method_spec.rb +24 -0
  353. data/lib/vendor/plugins/rspec/spec/spec/example/nested_example_group_spec.rb +71 -0
  354. data/lib/vendor/plugins/rspec/spec/spec/example/pending_module_spec.rb +58 -0
  355. data/lib/vendor/plugins/rspec/spec/spec/example/predicate_matcher_spec.rb +41 -0
  356. data/lib/vendor/plugins/rspec/spec/spec/example/shared_example_group_spec.rb +257 -0
  357. data/lib/vendor/plugins/rspec/spec/spec/example/subclassing_example_group_spec.rb +25 -0
  358. data/lib/vendor/plugins/rspec/spec/spec/example/subject_spec.rb +103 -0
  359. data/lib/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +194 -0
  360. data/lib/vendor/plugins/rspec/spec/spec/expectations/extensions/kernel_spec.rb +45 -0
  361. data/lib/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +96 -0
  362. data/lib/vendor/plugins/rspec/spec/spec/expectations/handler_spec.rb +206 -0
  363. data/lib/vendor/plugins/rspec/spec/spec/expectations/wrap_expectation_spec.rb +30 -0
  364. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_that_fails.rb +10 -0
  365. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_that_passes.rb +10 -0
  366. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_errors.rb +10 -0
  367. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/spec_with_options_hash.rb +13 -0
  368. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_that_fails.rb +10 -0
  369. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_that_passes.rb +10 -0
  370. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_with_errors.rb +10 -0
  371. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/test_case_with_various_names.rb +22 -0
  372. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/resources/testsuite_adapter_spec_with_test_unit.rb +38 -0
  373. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/spec_spec.rb +48 -0
  374. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/test_unit_spec_helper.rb +18 -0
  375. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/testcase_spec.rb +50 -0
  376. data/lib/vendor/plugins/rspec/spec/spec/interop/test/unit/testsuite_adapter_spec.rb +9 -0
  377. data/lib/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +50 -0
  378. data/lib/vendor/plugins/rspec/spec/spec/matchers/be_instance_of_spec.rb +36 -0
  379. data/lib/vendor/plugins/rspec/spec/spec/matchers/be_kind_of_spec.rb +33 -0
  380. data/lib/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +311 -0
  381. data/lib/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +349 -0
  382. data/lib/vendor/plugins/rspec/spec/spec/matchers/compatibility_spec.rb +28 -0
  383. data/lib/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +160 -0
  384. data/lib/vendor/plugins/rspec/spec/spec/matchers/dsl_spec.rb +34 -0
  385. data/lib/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +33 -0
  386. data/lib/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +57 -0
  387. data/lib/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +65 -0
  388. data/lib/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +81 -0
  389. data/lib/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +396 -0
  390. data/lib/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +88 -0
  391. data/lib/vendor/plugins/rspec/spec/spec/matchers/match_array_spec.rb +108 -0
  392. data/lib/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +57 -0
  393. data/lib/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +63 -0
  394. data/lib/vendor/plugins/rspec/spec/spec/matchers/matcher_spec.rb +228 -0
  395. data/lib/vendor/plugins/rspec/spec/spec/matchers/matchers_spec.rb +2 -0
  396. data/lib/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +191 -0
  397. data/lib/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +333 -0
  398. data/lib/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +116 -0
  399. data/lib/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  400. data/lib/vendor/plugins/rspec/spec/spec/matchers/simple_matcher_spec.rb +93 -0
  401. data/lib/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +96 -0
  402. data/lib/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +36 -0
  403. data/lib/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  404. data/lib/vendor/plugins/rspec/spec/spec/mocks/argument_matchers_spec.rb +19 -0
  405. data/lib/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  406. data/lib/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  407. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  408. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_10263_spec.rb +27 -0
  409. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb +32 -0
  410. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_15719_spec.rb +30 -0
  411. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_496_spec.rb +19 -0
  412. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_600_spec.rb +22 -0
  413. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  414. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  415. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  416. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  417. data/lib/vendor/plugins/rspec/spec/spec/mocks/bug_report_830_spec.rb +21 -0
  418. data/lib/vendor/plugins/rspec/spec/spec/mocks/double_spec.rb +12 -0
  419. data/lib/vendor/plugins/rspec/spec/spec/mocks/failing_argument_matchers_spec.rb +95 -0
  420. data/lib/vendor/plugins/rspec/spec/spec/mocks/hash_including_matcher_spec.rb +90 -0
  421. data/lib/vendor/plugins/rspec/spec/spec/mocks/hash_not_including_matcher_spec.rb +67 -0
  422. data/lib/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +94 -0
  423. data/lib/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  424. data/lib/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +594 -0
  425. data/lib/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  426. data/lib/vendor/plugins/rspec/spec/spec/mocks/nil_expectation_warning_spec.rb +53 -0
  427. data/lib/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +54 -0
  428. data/lib/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  429. data/lib/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +35 -0
  430. data/lib/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +164 -0
  431. data/lib/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  432. data/lib/vendor/plugins/rspec/spec/spec/mocks/passing_argument_matchers_spec.rb +145 -0
  433. data/lib/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  434. data/lib/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  435. data/lib/vendor/plugins/rspec/spec/spec/mocks/stub_chain_spec.rb +42 -0
  436. data/lib/vendor/plugins/rspec/spec/spec/mocks/stub_implementation_spec.rb +31 -0
  437. data/lib/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +203 -0
  438. data/lib/vendor/plugins/rspec/spec/spec/mocks/stubbed_message_expectations_spec.rb +26 -0
  439. data/lib/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  440. data/lib/vendor/plugins/rspec/spec/spec/mocks/unstub_spec.rb +127 -0
  441. data/lib/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +16 -0
  442. data/lib/vendor/plugins/rspec/spec/spec/rake/spectask_spec.rb +150 -0
  443. data/lib/vendor/plugins/rspec/spec/spec/runner/class_and_argument_parser_spec.rb +23 -0
  444. data/lib/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +141 -0
  445. data/lib/vendor/plugins/rspec/spec/spec/runner/configuration_spec.rb +320 -0
  446. data/lib/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +107 -0
  447. data/lib/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
  448. data/lib/vendor/plugins/rspec/spec/spec/runner/example_group_runner_spec.rb +26 -0
  449. data/lib/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
  450. data/lib/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
  451. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/base_formatter_spec.rb +30 -0
  452. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/base_text_formatter_spec.rb +113 -0
  453. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/failing_example_groups_formatter_spec.rb +45 -0
  454. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +33 -0
  455. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6-jruby.html +377 -0
  456. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +377 -0
  457. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.7.html +377 -0
  458. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.9.1.html +377 -0
  459. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +118 -0
  460. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/nested_text_formatter_spec.rb +305 -0
  461. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/profile_formatter_spec.rb +70 -0
  462. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +149 -0
  463. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +18 -0
  464. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +159 -0
  465. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6-jruby.html +371 -0
  466. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.6.html +371 -0
  467. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.8.7.html +371 -0
  468. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatted-1.9.1.html +371 -0
  469. data/lib/vendor/plugins/rspec/spec/spec/runner/formatter/text_mate_formatter_spec.rb +106 -0
  470. data/lib/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +78 -0
  471. data/lib/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +20 -0
  472. data/lib/vendor/plugins/rspec/spec/spec/runner/line_number_query/line_number_query_fixture.rb +70 -0
  473. data/lib/vendor/plugins/rspec/spec/spec/runner/line_number_query_spec.rb +129 -0
  474. data/lib/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +51 -0
  475. data/lib/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +545 -0
  476. data/lib/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +547 -0
  477. data/lib/vendor/plugins/rspec/spec/spec/runner/output_one_time_fixture.rb +7 -0
  478. data/lib/vendor/plugins/rspec/spec/spec/runner/output_one_time_fixture_runner.rb +7 -0
  479. data/lib/vendor/plugins/rspec/spec/spec/runner/output_one_time_spec.rb +15 -0
  480. data/lib/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +105 -0
  481. data/lib/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +244 -0
  482. data/lib/vendor/plugins/rspec/spec/spec/runner/resources/a_bar.rb +0 -0
  483. data/lib/vendor/plugins/rspec/spec/spec/runner/resources/a_foo.rb +0 -0
  484. data/lib/vendor/plugins/rspec/spec/spec/runner/resources/a_spec.rb +1 -0
  485. data/lib/vendor/plugins/rspec/spec/spec/runner/resources/custom_example_group_runner.rb +14 -0
  486. data/lib/vendor/plugins/rspec/spec/spec/runner/resources/utf8_encoded.rb +8 -0
  487. data/lib/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
  488. data/lib/vendor/plugins/rspec/spec/spec/runner/spec_drb.opts +2 -0
  489. data/lib/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  490. data/lib/vendor/plugins/rspec/spec/spec/runner_spec.rb +13 -0
  491. data/lib/vendor/plugins/rspec/spec/spec.opts +6 -0
  492. data/lib/vendor/plugins/rspec/spec/spec_helper.rb +112 -0
  493. data/lib/vendor/plugins/rspec/spec/support/macros.rb +29 -0
  494. data/lib/vendor/plugins/rspec/spec/support/spec_classes.rb +133 -0
  495. data/lib/vendor/plugins/rspec-rails/Contribute.rdoc +4 -0
  496. data/lib/vendor/plugins/rspec-rails/History.rdoc +283 -0
  497. data/lib/vendor/plugins/rspec-rails/License.txt +33 -0
  498. data/lib/vendor/plugins/rspec-rails/Manifest.txt +165 -0
  499. data/lib/vendor/plugins/rspec-rails/README.rdoc +45 -0
  500. data/lib/vendor/plugins/rspec-rails/TODO.txt +17 -0
  501. data/lib/vendor/plugins/rspec-rails/Upgrade.rdoc +148 -0
  502. data/lib/vendor/plugins/rspec-rails/generators/integration_spec/integration_spec_generator.rb +10 -0
  503. data/lib/vendor/plugins/rspec-rails/generators/integration_spec/templates/integration_spec.rb +4 -0
  504. data/lib/vendor/plugins/rspec-rails/generators/rspec/rspec_generator.rb +53 -0
  505. data/lib/vendor/plugins/rspec-rails/generators/rspec/templates/previous_failures.txt +0 -0
  506. data/lib/vendor/plugins/rspec-rails/generators/rspec/templates/rcov.opts +2 -0
  507. data/lib/vendor/plugins/rspec-rails/generators/rspec/templates/rspec.rake +144 -0
  508. data/lib/vendor/plugins/rspec-rails/generators/rspec/templates/spec.opts +4 -0
  509. data/lib/vendor/plugins/rspec-rails/generators/rspec/templates/spec_helper.rb +54 -0
  510. data/lib/vendor/plugins/rspec-rails/generators/rspec_controller/rspec_controller_generator.rb +47 -0
  511. data/lib/vendor/plugins/rspec-rails/generators/rspec_controller/templates/controller_spec.rb +25 -0
  512. data/lib/vendor/plugins/rspec-rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  513. data/lib/vendor/plugins/rspec-rails/generators/rspec_controller/templates/view_spec.rb +12 -0
  514. data/lib/vendor/plugins/rspec-rails/generators/rspec_default_values.rb +28 -0
  515. data/lib/vendor/plugins/rspec-rails/generators/rspec_model/rspec_model_generator.rb +35 -0
  516. data/lib/vendor/plugins/rspec-rails/generators/rspec_model/templates/model_spec.rb +13 -0
  517. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +154 -0
  518. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/controller_spec.rb +131 -0
  519. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
  520. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/helper_spec.rb +11 -0
  521. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/index_erb_spec.rb +27 -0
  522. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/new_erb_spec.rb +25 -0
  523. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/routing_spec.rb +33 -0
  524. data/lib/vendor/plugins/rspec-rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
  525. data/lib/vendor/plugins/rspec-rails/init.rb +9 -0
  526. data/lib/vendor/plugins/rspec-rails/lib/autotest/discover.rb +5 -0
  527. data/lib/vendor/plugins/rspec-rails/lib/autotest/rails_rspec.rb +76 -0
  528. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/assigns_hash_proxy.rb +39 -0
  529. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/controller_example_group.rb +278 -0
  530. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/cookies_proxy.rb +29 -0
  531. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/functional_example_group.rb +106 -0
  532. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/helper_example_group.rb +153 -0
  533. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/integration_example_group.rb +16 -0
  534. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/model_example_group.rb +14 -0
  535. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/render_observer.rb +80 -0
  536. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_example_group.rb +13 -0
  537. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/routing_helpers.rb +66 -0
  538. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example/view_example_group.rb +199 -0
  539. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/example.rb +48 -0
  540. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/rescue.rb +42 -0
  541. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_case.rb +16 -0
  542. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_controller/test_response.rb +21 -0
  543. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/action_view/base.rb +33 -0
  544. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_record/base.rb +45 -0
  545. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/active_support/test_case.rb +7 -0
  546. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/matchers/have.rb +23 -0
  547. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions/spec/runner/configuration.rb +44 -0
  548. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/extensions.rb +11 -0
  549. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/interop/testcase.rb +14 -0
  550. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/ar_be_valid.rb +46 -0
  551. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/assert_select.rb +180 -0
  552. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/change.rb +13 -0
  553. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/have_text.rb +57 -0
  554. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/include_text.rb +54 -0
  555. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/redirect_to.rb +126 -0
  556. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/render_template.rb +129 -0
  557. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers/route_to.rb +149 -0
  558. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/matchers.rb +33 -0
  559. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/mocks.rb +135 -0
  560. data/lib/vendor/plugins/rspec-rails/lib/spec/rails/version.rb +16 -0
  561. data/lib/vendor/plugins/rspec-rails/lib/spec/rails.rb +26 -0
  562. data/lib/vendor/plugins/rspec-rails/spec/autotest/mappings_spec.rb +86 -0
  563. data/lib/vendor/plugins/rspec-rails/spec/rails_suite.rb +7 -0
  564. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/action_view_base_spec_controller.rb +2 -0
  565. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/application.rb +9 -0
  566. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/controller_spec_controller.rb +127 -0
  567. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/example.txt +1 -0
  568. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/redirect_spec_controller.rb +70 -0
  569. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/render_spec_controller.rb +34 -0
  570. data/lib/vendor/plugins/rspec-rails/spec/resources/controllers/rjs_spec_controller.rb +58 -0
  571. data/lib/vendor/plugins/rspec-rails/spec/resources/helpers/addition_helper.rb +5 -0
  572. data/lib/vendor/plugins/rspec-rails/spec/resources/helpers/explicit_helper.rb +46 -0
  573. data/lib/vendor/plugins/rspec-rails/spec/resources/helpers/more_explicit_helper.rb +5 -0
  574. data/lib/vendor/plugins/rspec-rails/spec/resources/helpers/plugin_application_helper.rb +6 -0
  575. data/lib/vendor/plugins/rspec-rails/spec/resources/helpers/view_spec_helper.rb +13 -0
  576. data/lib/vendor/plugins/rspec-rails/spec/resources/models/animal.rb +4 -0
  577. data/lib/vendor/plugins/rspec-rails/spec/resources/models/person.rb +18 -0
  578. data/lib/vendor/plugins/rspec-rails/spec/resources/models/thing.rb +3 -0
  579. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/_partial.html.erb +0 -0
  580. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_flash_after_session_reset.html.erb +1 -0
  581. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_flash_before_session_reset.html.erb +1 -0
  582. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_setting_the_assigns_hash.html.erb +0 -0
  583. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_with_errors_in_template.html.erb +1 -0
  584. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/action_with_template.html.erb +1 -0
  585. data/lib/vendor/plugins/rspec-rails/spec/resources/views/controller_spec/non_existent_action_with_existent_template.html.erb +0 -0
  586. data/lib/vendor/plugins/rspec-rails/spec/resources/views/layouts/application.html.erb +0 -0
  587. data/lib/vendor/plugins/rspec-rails/spec/resources/views/layouts/simple.html.erb +0 -0
  588. data/lib/vendor/plugins/rspec-rails/spec/resources/views/objects/_object.html.erb +1 -0
  589. data/lib/vendor/plugins/rspec-rails/spec/resources/views/render_spec/_a_partial.html.erb +0 -0
  590. data/lib/vendor/plugins/rspec-rails/spec/resources/views/render_spec/action_with_alternate_layout.html.erb +0 -0
  591. data/lib/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.html.erb +0 -0
  592. data/lib/vendor/plugins/rspec-rails/spec/resources/views/render_spec/some_action.js.rjs +1 -0
  593. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/_replacement_partial.html.erb +1 -0
  594. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/hide_div.js.rjs +1 -0
  595. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/hide_page_element.js.rjs +1 -0
  596. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/insert_html.js.rjs +1 -0
  597. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace.js.rjs +1 -0
  598. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace_html.js.rjs +1 -0
  599. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/replace_html_with_partial.js.rjs +1 -0
  600. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/visual_effect.js.rjs +1 -0
  601. data/lib/vendor/plugins/rspec-rails/spec/resources/views/rjs_spec/visual_toggle_effect.js.rjs +1 -0
  602. data/lib/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/no_tags.html.erb +1 -0
  603. data/lib/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/single_div_with_no_attributes.html.erb +1 -0
  604. data/lib/vendor/plugins/rspec-rails/spec/resources/views/tag_spec/single_div_with_one_attribute.html.erb +1 -0
  605. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial.html.erb +2 -0
  606. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_used_twice.html.erb +0 -0
  607. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_with_local_variable.html.erb +1 -0
  608. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_partial_with_sub_partial.html.erb +1 -0
  609. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/_spacer.html.erb +1 -0
  610. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/accessor.html.erb +5 -0
  611. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/block_helper.html.erb +3 -0
  612. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/entry_form.html.erb +2 -0
  613. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/explicit_helper.html.erb +2 -0
  614. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/foo/show.html.erb +1 -0
  615. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/implicit_helper.html.erb +2 -0
  616. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/multiple_helpers.html.erb +3 -0
  617. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/path_params.html.erb +1 -0
  618. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/should_not_receive.html.erb +3 -0
  619. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial.html.erb +5 -0
  620. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial_using_collection.html.erb +3 -0
  621. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/template_with_partial_with_array.html.erb +1 -0
  622. data/lib/vendor/plugins/rspec-rails/spec/resources/views/view_spec/view_helpers.html.erb +1 -0
  623. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/assigns_hash_proxy_spec.rb +109 -0
  624. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/configuration_spec.rb +65 -0
  625. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/controller_example_group_spec.rb +307 -0
  626. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/controller_isolation_spec.rb +75 -0
  627. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/cookies_proxy_spec.rb +87 -0
  628. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/error_handling_spec.rb +90 -0
  629. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/example_group_factory_spec.rb +112 -0
  630. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/helper_example_group_spec.rb +233 -0
  631. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/model_example_group_spec.rb +20 -0
  632. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/routing_example_group_spec.rb +10 -0
  633. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/shared_routing_example_group_examples.rb +237 -0
  634. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/test_unit_assertion_accessibility_spec.rb +33 -0
  635. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/example/view_example_group_spec.rb +349 -0
  636. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/extensions/action_view_base_spec.rb +74 -0
  637. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/extensions/active_record_spec.rb +14 -0
  638. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/interop/testcase_spec.rb +70 -0
  639. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/ar_be_valid_spec.rb +19 -0
  640. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/assert_select_spec.rb +835 -0
  641. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/errors_on_spec.rb +37 -0
  642. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/have_text_spec.rb +69 -0
  643. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/include_text_spec.rb +62 -0
  644. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/redirect_to_spec.rb +253 -0
  645. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/render_template_spec.rb +208 -0
  646. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/matchers/should_change_spec.rb +15 -0
  647. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/mocks/ar_classes.rb +10 -0
  648. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/mocks/mock_model_spec.rb +106 -0
  649. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/mocks/stub_model_spec.rb +80 -0
  650. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/sample_modified_fixture.rb +8 -0
  651. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/sample_spec.rb +8 -0
  652. data/lib/vendor/plugins/rspec-rails/spec/spec/rails/spec_spec.rb +11 -0
  653. data/lib/vendor/plugins/rspec-rails/spec/spec_helper.rb +78 -0
  654. data/lib/vendor/plugins/validation_reflection/VERSION.yml +4 -0
  655. data/lib/vendor/plugins/validation_reflection/about.yml +7 -0
  656. data/lib/vendor/plugins/validation_reflection/lib/validation_reflection.rb +148 -0
  657. data/lib/vendor/plugins/validation_reflection/rails/init.rb +2 -0
  658. data/lib/vendor/plugins/validation_reflection/test/test_helper.rb +19 -0
  659. data/lib/vendor/plugins/validation_reflection/test/validation_reflection_test.rb +123 -0
  660. data/lib/vendor/plugins/validation_reflection/validation_reflection.gemspec +52 -0
  661. metadata +724 -0
@@ -0,0 +1,278 @@
1
+ module Spec
2
+ module Rails
3
+ module Example
4
+ # Controller Examples live in $RAILS_ROOT/spec/controllers/.
5
+ #
6
+ # Controller Examples use Spec::Rails::Example::ControllerExampleGroup,
7
+ # which supports running specs for Controllers in two modes, which
8
+ # represent the tension between the more granular testing common in TDD
9
+ # and the more high level testing built into rails. BDD sits somewhere
10
+ # in between: we want to a balance between specs that are close enough
11
+ # to the code to enable quick fault isolation and far enough away from
12
+ # the code to enable refactoring with minimal changes to the existing
13
+ # specs.
14
+ #
15
+ # == Isolation mode (default)
16
+ #
17
+ # No dependencies on views because none are ever rendered. The benefit
18
+ # of this mode is that can spec the controller completely independent of
19
+ # the view, allowing that responsibility to be handled later, or by
20
+ # somebody else. Combined w/ separate view specs, this also provides
21
+ # better fault isolation.
22
+ #
23
+ # == Integration mode
24
+ #
25
+ # To run in this mode, include the +integrate_views+ declaration
26
+ # in your controller context:
27
+ #
28
+ # describe ThingController do
29
+ # integrate_views
30
+ # ...
31
+ #
32
+ # In this mode, controller specs are run in the same way that rails
33
+ # functional tests run - one set of tests for both the controllers and
34
+ # the views. The benefit of this approach is that you get wider coverage
35
+ # from each spec. Experienced rails developers may find this an easier
36
+ # approach to begin with, however we encourage you to explore using the
37
+ # isolation mode and revel in its benefits.
38
+ #
39
+ # == Expecting Errors
40
+ #
41
+ # Rspec on Rails will raise errors that occur in controller actions and
42
+ # are not rescued or handeled with rescue_from.
43
+ #
44
+ class ControllerExampleGroup < FunctionalExampleGroup
45
+ class << self
46
+
47
+ # Use integrate_views to instruct RSpec to render views in
48
+ # your controller examples in Integration mode.
49
+ #
50
+ # describe ThingController do
51
+ # integrate_views
52
+ # ...
53
+ #
54
+ # See Spec::Rails::Example::ControllerExampleGroup for more
55
+ # information about Integration and Isolation modes.
56
+ def integrate_views(integrate_views = true)
57
+ @integrate_views = integrate_views
58
+ end
59
+
60
+ def integrate_views? # :nodoc:
61
+ @integrate_views
62
+ end
63
+
64
+ def inherited(klass) # :nodoc:
65
+ klass.integrate_views(integrate_views?)
66
+ klass.subject { controller }
67
+ super
68
+ end
69
+
70
+ def set_description(*args) # :nodoc:
71
+ super
72
+ if described_class && described_class.ancestors.include?(ActionController::Base)
73
+ controller_klass = if superclass.controller_class.ancestors.include?(ActionController::Base)
74
+ superclass.controller_class
75
+ else
76
+ described_class
77
+ end
78
+ tests controller_klass
79
+ end
80
+ end
81
+
82
+ # When you don't pass a controller to describe, like this:
83
+ #
84
+ # describe ThingsController do
85
+ #
86
+ # ... then you must provide a controller_name within the context of
87
+ # your controller specs:
88
+ #
89
+ # describe "ThingController" do
90
+ # controller_name :thing
91
+ # ...
92
+ def controller_name(name)
93
+ tests "#{name}_controller".camelize.constantize
94
+ end
95
+ end
96
+
97
+ before(:each) do
98
+ # Some Rails apps explicitly disable ActionMailer in environment.rb
99
+ if defined?(ActionMailer)
100
+ @deliveries = []
101
+ ActionMailer::Base.deliveries = @deliveries
102
+ end
103
+
104
+ unless @controller.class.ancestors.include?(ActionController::Base)
105
+ Spec::Expectations.fail_with <<-MESSAGE
106
+ Controller specs need to know what controller is being specified. You can
107
+ indicate this by passing the controller to describe():
108
+
109
+ describe MyController do
110
+
111
+ or by declaring the controller's name
112
+
113
+ describe "a MyController" do
114
+ controller_name :my #invokes the MyController
115
+ end
116
+ MESSAGE
117
+ end
118
+ @controller.extend ControllerInstanceMethods
119
+ @controller.integrate_views! if integrate_views?
120
+ @controller.session = session
121
+ end
122
+
123
+ attr_reader :response, :request, :controller
124
+
125
+ def integrate_views?
126
+ @integrate_views || self.class.integrate_views?
127
+ end
128
+
129
+ # Bypasses any error rescues defined with rescue_from. Useful
130
+ # in cases in which you want to specify errors coming out of
131
+ # actions that might be caught by a rescue_from clause that is
132
+ # specified separately.
133
+ #
134
+ # Note that this will override the effect of rescue_action_in_public
135
+ def bypass_rescue
136
+ if ::Rails::VERSION::STRING >= '2.2'
137
+ def controller.rescue_action(exception)
138
+ raise exception
139
+ end
140
+ else
141
+ def controller.rescue_action_with_handler(exception)
142
+ raise exception
143
+ end
144
+ end
145
+ end
146
+
147
+ protected
148
+
149
+ def _assigns_hash_proxy
150
+ @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {@response.template}
151
+ end
152
+
153
+ private
154
+
155
+ module TemplateIsolationExtensions
156
+ def file_exists?(ignore); true; end
157
+
158
+ def render_file(*args)
159
+ @first_render ||= args[0] unless args[0] =~ /^layouts/
160
+ end
161
+
162
+ # Rails 2.2
163
+ def _pick_template(*args)
164
+ @_first_render ||= args[0] unless args[0] =~ /^layouts/
165
+ PickedTemplate.new
166
+ end
167
+
168
+ def __action_exists?(params)
169
+ controller.respond_to? params[:action]
170
+ end
171
+
172
+ def render(*args)
173
+ if ::Rails::VERSION::STRING >= "2.1"
174
+ return super unless __action_exists?(params)
175
+ end
176
+ if file = args.last[:file].instance_eval{@template_path}
177
+ record_render :file => file
178
+ elsif args.last[:inline]
179
+ super
180
+ elsif @_rendered
181
+ record_render(args[0])
182
+ else
183
+ super
184
+ end
185
+ end
186
+
187
+ private
188
+
189
+ def record_render(opts)
190
+ (@_rendered[:template] ||= opts[:file]) if opts[:file]
191
+ (@_rendered[:partials][opts[:partial]] += 1) if opts[:partial]
192
+ end
193
+
194
+ # Returned by _pick_template when running controller examples in isolation mode.
195
+ class PickedTemplate
196
+ # Do nothing when running controller examples in isolation mode.
197
+ def render_template(*ignore_args); end
198
+ # Do nothing when running controller examples in isolation mode.
199
+ def render_partial(*ignore_args); end
200
+ end
201
+ end
202
+
203
+ module ControllerInstanceMethods # :nodoc:
204
+ include Spec::Rails::Example::RenderObserver
205
+
206
+ # === render(options = nil, extra_options={}, &block)
207
+ #
208
+ # This gets added to the controller's singleton meta class,
209
+ # allowing Controller Examples to run in two modes, freely switching
210
+ # from example group to example group.
211
+ def render(options=nil, extra_options={}, &block)
212
+ unless block_given?
213
+ unless integrate_views?
214
+ @template.extend TemplateIsolationExtensions
215
+ end
216
+ end
217
+
218
+ if matching_message_expectation_exists(options)
219
+ render_proxy.render(options, &block)
220
+ @performed_render = true
221
+ else
222
+ if matching_stub_exists(options)
223
+ @performed_render = true
224
+ else
225
+ if ::Rails::VERSION::STRING > '2.1'
226
+ super(options, extra_options, &block)
227
+ else
228
+ super(options, &block)
229
+ end
230
+ end
231
+ end
232
+ end
233
+
234
+ # Rails 2.3
235
+ def default_template(action_name = self.action_name)
236
+ if integrate_views?
237
+ super
238
+ else
239
+ begin
240
+ super
241
+ rescue ActionView::MissingTemplate
242
+ "#{self.class.name.sub(/Controller$/,'').underscore}/#{action_name}"
243
+ end
244
+ end
245
+ end
246
+
247
+ def response(&block)
248
+ # NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
249
+ @update = block
250
+ super
251
+ end
252
+
253
+ def integrate_views!
254
+ @integrate_views = true
255
+ end
256
+
257
+ private
258
+
259
+ def integrate_views?
260
+ @integrate_views
261
+ end
262
+
263
+ def matching_message_expectation_exists(options)
264
+ render_proxy.__send__(:__mock_proxy).__send__(:find_matching_expectation, :render, options)
265
+ end
266
+
267
+ def matching_stub_exists(options)
268
+ render_proxy.__send__(:__mock_proxy).__send__(:find_matching_method_stub, :render, options)
269
+ end
270
+
271
+ end
272
+
273
+ Spec::Example::ExampleGroupFactory.register(:controller, self)
274
+
275
+ end
276
+ end
277
+ end
278
+ end
@@ -0,0 +1,29 @@
1
+ require 'action_controller/cookies'
2
+
3
+ module Spec
4
+ module Rails
5
+ module Example
6
+ class CookiesProxy
7
+ def initialize(example)
8
+ @example = example
9
+ end
10
+
11
+ def[]=(name, value)
12
+ if ::Rails::VERSION::STRING >= '2.3'
13
+ @example.request.cookies[name.to_s] = value
14
+ else
15
+ @example.request.cookies[name.to_s] = CGI::Cookie.new(name.to_s, value)
16
+ end
17
+ end
18
+
19
+ def [](name)
20
+ @example.response.cookies[name.to_s]
21
+ end
22
+
23
+ def delete(name)
24
+ @example.response.cookies.delete(name.to_s)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,106 @@
1
+ require 'action_controller/test_case'
2
+
3
+ module Spec
4
+ module Rails
5
+ module Example
6
+ class FunctionalExampleGroup < ActionController::TestCase
7
+ def setup
8
+ # no-op to override AC::TC's setup w/ conflicts with the before(:each) below
9
+ end
10
+
11
+ attr_reader :request, :response
12
+
13
+ # The params hash accessed within a view or helper. Use this before
14
+ # rendering a view or calling a helper to provide data used by the
15
+ # view or helper.
16
+ #
17
+ # == Examples
18
+ # # in a view spec
19
+ # params[:name] = "David"
20
+ # render
21
+ # response.should have_tag("div.name","David")
22
+ #
23
+ # # in a helper spec
24
+ # params[:first_name] = "David"
25
+ # params[:last_name] = "Chelimsky"
26
+ # helper.full_name.should == "David Chelimsky"
27
+ def params
28
+ request.parameters
29
+ end
30
+
31
+ # Provides access to the flash hash. Use this after rendering a
32
+ # view, calling a helper or calling a controller action.
33
+ #
34
+ # == Examples
35
+ # post :create
36
+ # flash[:notice].should == "Success!"
37
+ def flash
38
+ @controller.__send__ :flash
39
+ end
40
+
41
+ # Provides acces to the session hash. Use this before or after
42
+ # rendering a view, calling a helper or calling a controller action.
43
+ def session
44
+ request.session
45
+ end
46
+
47
+ # Overrides the <tt>cookies()</tt> method in
48
+ # ActionController::TestResponseBehaviour, returning a proxy that
49
+ # accesses the requests cookies when setting a cookie and the
50
+ # responses cookies when reading one. This allows you to set and read
51
+ # cookies in examples using the same API with which you set and read
52
+ # them in controllers.
53
+ #
54
+ # == Examples (Rails 2.0 > 2.2)
55
+ #
56
+ # cookies[:user_id] = {:value => '1234', :expires => 1.minute.ago}
57
+ # get :index
58
+ # response.should be_redirect
59
+ #
60
+ # == Examples (Rails 2.3)
61
+ #
62
+ # Rails 2.3 changes the way cookies are made available to functional
63
+ # tests (and therefore rspec controller specs), only making single
64
+ # values available with no access to other aspects of the cookie. This
65
+ # is backwards-incompatible, so you have to change your examples to
66
+ # look like this:
67
+ #
68
+ # cookies[:foo] = 'bar'
69
+ # get :index
70
+ # cookies[:foo].should == 'bar'
71
+ def cookies
72
+ @cookies ||= Spec::Rails::Example::CookiesProxy.new(self)
73
+ end
74
+
75
+ alias_method :orig_assigns, :assigns
76
+
77
+ # :call-seq:
78
+ # assigns()
79
+ #
80
+ # Hash of instance variables to values that are made available to
81
+ # views. == Examples
82
+ #
83
+ # #in thing_controller.rb
84
+ # def new
85
+ # @thing = Thing.new
86
+ # end
87
+ #
88
+ # #in thing_controller_spec
89
+ # get 'new'
90
+ # assigns[:registration].should == Thing.new
91
+ #--
92
+ # NOTE - Even though docs only use assigns[:key] format, this supports
93
+ # assigns(:key) for backwards compatibility.
94
+ #++
95
+ def assigns(key = nil)
96
+ if key.nil?
97
+ _assigns_hash_proxy
98
+ else
99
+ _assigns_hash_proxy[key]
100
+ end
101
+ end
102
+
103
+ end
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,153 @@
1
+ module Spec
2
+ module Rails
3
+ module Example
4
+ class HelperExampleGroupController < ApplicationController #:nodoc:
5
+ attr_accessor :request, :url
6
+ end
7
+
8
+ # Helper Specs live in $RAILS_ROOT/spec/helpers/.
9
+ #
10
+ # Helper Specs use Spec::Rails::Example::HelperExampleGroup, which allows you to
11
+ # include your Helper directly in the context and write specs directly
12
+ # against its methods.
13
+ #
14
+ # HelperExampleGroup also includes the standard lot of ActionView::Helpers in case your
15
+ # helpers rely on any of those.
16
+ #
17
+ # == Example
18
+ #
19
+ # module ThingHelper
20
+ # def number_of_things
21
+ # Thing.count
22
+ # end
23
+ # end
24
+ #
25
+ # describe "ThingHelper example_group" do
26
+ # include ThingHelper
27
+ # it "should tell you the number of things" do
28
+ # Thing.should_receive(:count).and_return(37)
29
+ # number_of_things.should == 37
30
+ # end
31
+ # end
32
+ class HelperExampleGroup < FunctionalExampleGroup
33
+ tests HelperExampleGroupController
34
+ attr_accessor :output_buffer
35
+
36
+ class HelperObject < ActionView::Base
37
+ def initialize(*args)
38
+ @template = self
39
+ super
40
+ end
41
+ def protect_against_forgery?
42
+ false
43
+ end
44
+
45
+ attr_writer :session, :request, :flash, :params, :controller
46
+
47
+ private
48
+ attr_reader :session, :request, :flash, :params, :controller
49
+ end
50
+
51
+ class << self
52
+ # The helper name....
53
+ def helper_name(name=nil)
54
+ @helper_being_described = "#{name}_helper".camelize.constantize
55
+ send :include, @helper_being_described
56
+ end
57
+
58
+ def helper
59
+ @helper_object ||= returning HelperObject.new do |helper_object|
60
+ if @helper_being_described.nil?
61
+ if described_type.class == Module
62
+ helper_object.extend described_type
63
+ end
64
+ else
65
+ helper_object.extend @helper_being_described
66
+ end
67
+ end
68
+ end
69
+ end
70
+
71
+ # Returns an instance of ActionView::Base with the helper being spec'd
72
+ # included.
73
+ #
74
+ # == Example
75
+ #
76
+ # describe PersonHelper do
77
+ # it "should write a link to person with the name" do
78
+ # assigns[:person] = mock_model(Person, :full_name => "Full Name", :id => 37, :new_record? => false)
79
+ # helper.link_to_person.should == %{<a href="/people/37">Full Name</a>}
80
+ # end
81
+ # end
82
+ #
83
+ # module PersonHelper
84
+ # def link_to_person
85
+ # link_to person.full_name, url_for(person)
86
+ # end
87
+ # end
88
+ #
89
+ def helper
90
+ self.class.helper
91
+ end
92
+
93
+ def orig_assigns
94
+ helper.assigns
95
+ end
96
+
97
+ # Reverse the load order so that custom helpers which are defined last
98
+ # are also loaded last.
99
+ ActionView::Base.included_modules.reverse.each do |mod|
100
+ include mod if mod.parents.include?(ActionView::Helpers)
101
+ end
102
+
103
+ before(:each) do
104
+ @controller.request = @request
105
+ @controller.url = ActionController::UrlRewriter.new @request, {} # url_for
106
+
107
+ @flash = ActionController::Flash::FlashHash.new
108
+ session['flash'] = @flash
109
+
110
+ @output_buffer = ""
111
+ @template = helper
112
+ ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
113
+
114
+ helper.session = session
115
+ helper.request = @request
116
+ helper.flash = flash
117
+ helper.params = params
118
+ helper.controller = @controller
119
+ end
120
+
121
+ def flash
122
+ @flash
123
+ end
124
+
125
+ def eval_erb(text)
126
+ erb_args = [text]
127
+ if helper.respond_to?(:output_buffer)
128
+ erb_args += [nil, nil, '@output_buffer']
129
+ end
130
+
131
+ helper.instance_eval do
132
+ ERB.new(*erb_args).result(binding)
133
+ end
134
+ end
135
+
136
+ # TODO: BT - Helper Examples should proxy method_missing to a Rails View instance.
137
+ # When that is done, remove this method
138
+ def protect_against_forgery?
139
+ false
140
+ end
141
+
142
+ Spec::Example::ExampleGroupFactory.register(:helper, self)
143
+
144
+ protected
145
+
146
+ def _assigns_hash_proxy
147
+ @_assigns_hash_proxy ||= AssignsHashProxy.new(self) {helper}
148
+ end
149
+
150
+ end
151
+ end
152
+ end
153
+ end
@@ -0,0 +1,16 @@
1
+ class ActionController::IntegrationTest
2
+ alias_method :orig_initialize, :initialize
3
+ def initialize(*args)
4
+ super
5
+ end
6
+ end
7
+
8
+ module Spec
9
+ module Rails
10
+ module Example
11
+ class IntegrationExampleGroup < ActionController::IntegrationTest
12
+ Spec::Example::ExampleGroupFactory.register(:integration, self)
13
+ end
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module Spec
2
+ module Rails
3
+ module Example
4
+ # Model examples live in $RAILS_ROOT/spec/models/.
5
+ #
6
+ # Model examples use Spec::Rails::Example::ModelExampleGroup, which
7
+ # provides support for fixtures and some custom expectations via extensions
8
+ # to ActiveRecord::Base.
9
+ class ModelExampleGroup < ActiveSupport::TestCase
10
+ Spec::Example::ExampleGroupFactory.register(:model, self)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,80 @@
1
+ require 'spec/mocks/framework'
2
+
3
+ module Spec
4
+ module Rails
5
+ module Example
6
+ # Extends the #should_receive, #should_not_receive and #stub! methods in rspec's
7
+ # mocking framework to handle #render calls to controller in controller examples
8
+ # and template and view examples
9
+ module RenderObserver
10
+
11
+ def verify_rendered # :nodoc:
12
+ render_proxy.rspec_verify
13
+ end
14
+
15
+ def unregister_verify_after_each #:nodoc:
16
+ proc = verify_rendered_proc
17
+ Spec::Example::ExampleGroup.remove_after(:each, &proc)
18
+ end
19
+
20
+ def should_receive(*args)
21
+ if args[0] == :render
22
+ register_verify_after_each
23
+ render_proxy.should_receive(:render, :expected_from => caller(1)[0])
24
+ else
25
+ super
26
+ end
27
+ end
28
+
29
+ def should_not_receive(*args)
30
+ if args[0] == :render
31
+ register_verify_after_each
32
+ render_proxy.should_not_receive(:render)
33
+ else
34
+ super
35
+ end
36
+ end
37
+
38
+ def stub(*args)
39
+ if args[0] == :render
40
+ register_verify_after_each
41
+ render_proxy.stub(args.first, :expected_from => caller(1)[0])
42
+ else
43
+ super
44
+ end
45
+ end
46
+
47
+ # FIXME - for some reason, neither alias nor alias_method are working
48
+ # as expected in the else branch, so this is a duplicate of stub()
49
+ # above. Could delegate, but then we'd run into craziness handling
50
+ # :expected_from. This will have to do for the moment.
51
+ def stub!(*args)
52
+ if args[0] == :render
53
+ register_verify_after_each
54
+ render_proxy.stub!(args.first, :expected_from => caller(1)[0])
55
+ else
56
+ super
57
+ end
58
+ end
59
+
60
+ def verify_rendered_proc #:nodoc:
61
+ template = self
62
+ @verify_rendered_proc ||= Proc.new do
63
+ template.verify_rendered
64
+ template.unregister_verify_after_each
65
+ end
66
+ end
67
+
68
+ def register_verify_after_each #:nodoc:
69
+ proc = verify_rendered_proc
70
+ Spec::Example::ExampleGroup.after(:each, &proc)
71
+ end
72
+
73
+ def render_proxy #:nodoc:
74
+ @render_proxy ||= Spec::Mocks::Mock.new("render_proxy")
75
+ end
76
+
77
+ end
78
+ end
79
+ end
80
+ end
@@ -0,0 +1,13 @@
1
+ module Spec
2
+ module Rails
3
+ module Example
4
+
5
+ class RoutingExampleGroup < ActionController::TestCase
6
+ tests Class.new(ActionController::Base)
7
+
8
+ Spec::Example::ExampleGroupFactory.register(:routing, self)
9
+ end
10
+
11
+ end
12
+ end
13
+ end