deckshuffler 0.0.2

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 (656) hide show
  1. data/.DS_Store +0 -0
  2. data/MIT-LICENSE +21 -0
  3. data/Rakefile +55 -0
  4. data/app/controllers/account_controller.rb +41 -0
  5. data/app/controllers/application.rb +27 -0
  6. data/app/controllers/board_controller.rb +15 -0
  7. data/app/controllers/capacities_controller.rb +52 -0
  8. data/app/controllers/card_sizes_controller.rb +47 -0
  9. data/app/controllers/card_types_controller.rb +47 -0
  10. data/app/controllers/cards_controller.rb +233 -0
  11. data/app/controllers/functional_sets_controller.rb +55 -0
  12. data/app/controllers/iteration_controller.rb +93 -0
  13. data/app/controllers/milestones_controller.rb +51 -0
  14. data/app/controllers/priorities_controller.rb +52 -0
  15. data/app/controllers/project_infos_controller.rb +40 -0
  16. data/app/helpers/account_helper.rb +2 -0
  17. data/app/helpers/application_helper.rb +39 -0
  18. data/app/helpers/board_helper.rb +2 -0
  19. data/app/helpers/capacities_helper.rb +2 -0
  20. data/app/helpers/card_sizes_helper.rb +2 -0
  21. data/app/helpers/card_types_helper.rb +2 -0
  22. data/app/helpers/cards_helper.rb +2 -0
  23. data/app/helpers/functional_sets_helper.rb +2 -0
  24. data/app/helpers/milestones_helper.rb +2 -0
  25. data/app/helpers/priorities_helper.rb +2 -0
  26. data/app/helpers/project_infos_helper.rb +5 -0
  27. data/app/models/capacity.rb +4 -0
  28. data/app/models/card.rb +64 -0
  29. data/app/models/card_size.rb +13 -0
  30. data/app/models/card_type.rb +13 -0
  31. data/app/models/functional_set.rb +5 -0
  32. data/app/models/milestone.rb +15 -0
  33. data/app/models/previous_card_owner.rb +6 -0
  34. data/app/models/priority.rb +14 -0
  35. data/app/models/project_info.rb +3 -0
  36. data/app/views/account/index.rhtml +56 -0
  37. data/app/views/account/login.rhtml +12 -0
  38. data/app/views/account/signup.rhtml +24 -0
  39. data/app/views/board/_card_summary.rhtml +24 -0
  40. data/app/views/board/_cards_column.rhtml +11 -0
  41. data/app/views/board/index.rhtml +30 -0
  42. data/app/views/capacities/edit.rhtml +11 -0
  43. data/app/views/capacities/list.rhtml +34 -0
  44. data/app/views/capacities/new.rhtml +10 -0
  45. data/app/views/capacities/show.rhtml +8 -0
  46. data/app/views/card_sizes/_form.rhtml +10 -0
  47. data/app/views/card_sizes/edit.rhtml +7 -0
  48. data/app/views/card_sizes/list.rhtml +27 -0
  49. data/app/views/card_sizes/new.rhtml +6 -0
  50. data/app/views/card_sizes/show.rhtml +8 -0
  51. data/app/views/card_types/_form.rhtml +7 -0
  52. data/app/views/card_types/edit.rhtml +7 -0
  53. data/app/views/card_types/list.rhtml +27 -0
  54. data/app/views/card_types/new.rhtml +6 -0
  55. data/app/views/card_types/show.rhtml +8 -0
  56. data/app/views/cards/_form.rhtml +104 -0
  57. data/app/views/cards/edit.rhtml +4 -0
  58. data/app/views/cards/import.rhtml +4 -0
  59. data/app/views/cards/list_per_functional_set.rhtml +37 -0
  60. data/app/views/cards/list_per_milestone.rhtml +36 -0
  61. data/app/views/cards/list_per_status.rhtml +40 -0
  62. data/app/views/cards/list_per_user.rhtml +38 -0
  63. data/app/views/cards/merge.rhtml +41 -0
  64. data/app/views/cards/raise_card.rhtml +4 -0
  65. data/app/views/cards/split.rhtml +4 -0
  66. data/app/views/functional_sets/_form.rhtml +10 -0
  67. data/app/views/functional_sets/edit.rhtml +4 -0
  68. data/app/views/functional_sets/list.rhtml +25 -0
  69. data/app/views/functional_sets/new.rhtml +4 -0
  70. data/app/views/iteration/bulk_edit_actual.rhtml +23 -0
  71. data/app/views/iteration/bulk_edit_planned.rhtml +19 -0
  72. data/app/views/layouts/account.rhtml +22 -0
  73. data/app/views/layouts/standard.rhtml +36 -0
  74. data/app/views/milestones/_form.rhtml +8 -0
  75. data/app/views/milestones/edit.rhtml +7 -0
  76. data/app/views/milestones/list.rhtml +23 -0
  77. data/app/views/milestones/new.rhtml +6 -0
  78. data/app/views/milestones/show.rhtml +8 -0
  79. data/app/views/priorities/_form.rhtml +9 -0
  80. data/app/views/priorities/edit.rhtml +7 -0
  81. data/app/views/priorities/list.rhtml +25 -0
  82. data/app/views/priorities/new.rhtml +6 -0
  83. data/app/views/priorities/show.rhtml +9 -0
  84. data/app/views/project_infos/_form.rhtml +18 -0
  85. data/app/views/project_infos/edit.rhtml +7 -0
  86. data/app/views/project_infos/list.rhtml +25 -0
  87. data/app/views/project_infos/new.rhtml +6 -0
  88. data/bin/deckshuffler +74 -0
  89. data/config/boot.rb +19 -0
  90. data/config/environment.rb +68 -0
  91. data/config/routes.rb +19 -0
  92. data/db/development_structure.sql +81 -0
  93. data/db/migrate/001_cards.rb +41 -0
  94. data/db/migrate/002_statuses.rb +45 -0
  95. data/db/migrate/003_card_sizes.rb +17 -0
  96. data/db/migrate/004_card_types.rb +15 -0
  97. data/db/migrate/005_functional_set.rb +23 -0
  98. data/db/migrate/006_project_info.rb +14 -0
  99. data/db/migrate/007_create_users.rb +18 -0
  100. data/db/migrate/008_capacities.rb +14 -0
  101. data/db/migrate/009_in_play_status.rb +48 -0
  102. data/db/migrate/010_milestones.rb +14 -0
  103. data/db/migrate/011_priorities.rb +18 -0
  104. data/db/migrate/012_card_dependencies.rb +21 -0
  105. data/db/migrate/013_authentication_independent.rb +15 -0
  106. data/db/schema.rb +104 -0
  107. data/doc/.DS_Store +0 -0
  108. data/doc/deckshuffler.svg +199 -0
  109. data/lib/authentication/authenticated_system.rb +162 -0
  110. data/lib/authentication/authenticated_test_helper.rb +113 -0
  111. data/lib/authentication/user.rb +67 -0
  112. data/lib/authentication/user_notifier.rb +22 -0
  113. data/lib/authentication/user_observer.rb +9 -0
  114. data/lib/cards_csv_exporter.rb +33 -0
  115. data/lib/cards_csv_importer.rb +87 -0
  116. data/lib/module_validator.rb +12 -0
  117. data/lib/status.rb +69 -0
  118. data/lib/transition_manager.rb +30 -0
  119. data/previous_failures.txt +0 -0
  120. data/public/.DS_Store +0 -0
  121. data/public/.htaccess +41 -0
  122. data/public/404.html +8 -0
  123. data/public/500.html +8 -0
  124. data/public/dispatch.cgi +10 -0
  125. data/public/dispatch.fcgi +29 -0
  126. data/public/dispatch.rb +10 -0
  127. data/public/favicon.ico +0 -0
  128. data/public/images/.DS_Store +0 -0
  129. data/public/images/deckshuffler.png +0 -0
  130. data/public/javascripts/controls.js +750 -0
  131. data/public/javascripts/dragdrop.js +584 -0
  132. data/public/javascripts/effects.js +854 -0
  133. data/public/javascripts/prototype.js +1785 -0
  134. data/public/robots.txt +1 -0
  135. data/public/stylesheets/deckshuffler.css +142 -0
  136. data/public/stylesheets/scaffold.css +74 -0
  137. data/script/about +3 -0
  138. data/script/breakpointer +3 -0
  139. data/script/console +3 -0
  140. data/script/destroy +3 -0
  141. data/script/generate +3 -0
  142. data/script/performance/benchmarker +3 -0
  143. data/script/performance/profiler +3 -0
  144. data/script/plugin +3 -0
  145. data/script/process/reaper +3 -0
  146. data/script/process/spawner +3 -0
  147. data/script/process/spinner +3 -0
  148. data/script/runner +3 -0
  149. data/script/server +3 -0
  150. data/script/spec +4 -0
  151. data/script/spec_server +86 -0
  152. data/spec/controllers/cards_controller_spec.rb +98 -0
  153. data/spec/lib/cards_csv_exporter_spec.rb +86 -0
  154. data/spec/lib/cards_csv_importer_spec.rb +184 -0
  155. data/spec/spec.opts +6 -0
  156. data/spec/spec_helper.rb +23 -0
  157. data/test/.DS_Store +0 -0
  158. data/test/fixtures/capacities.yml +5 -0
  159. data/test/fixtures/card_sizes.yml +6 -0
  160. data/test/fixtures/card_types.yml +5 -0
  161. data/test/fixtures/cards.yml +17 -0
  162. data/test/fixtures/functional_sets.yml +5 -0
  163. data/test/fixtures/milestones.yml +5 -0
  164. data/test/fixtures/priorities.yml +7 -0
  165. data/test/fixtures/project_infos.yml +5 -0
  166. data/test/fixtures/users.yml +17 -0
  167. data/test/functional/.DS_Store +0 -0
  168. data/test/functional/account_controller_test.rb +129 -0
  169. data/test/functional/board_controller_test.rb +28 -0
  170. data/test/functional/capacities_controller_test.rb +37 -0
  171. data/test/functional/cards_controller_test.rb +268 -0
  172. data/test/functional/functional_sets_controller_test.rb +27 -0
  173. data/test/functional/project_infos_controller_test.rb +38 -0
  174. data/test/test_helper.rb +30 -0
  175. data/test/unit/.DS_Store +0 -0
  176. data/test/unit/capacity_test.rb +14 -0
  177. data/test/unit/card_size_test.rb +21 -0
  178. data/test/unit/card_test.rb +51 -0
  179. data/test/unit/card_type_test.rb +20 -0
  180. data/test/unit/milestone_test.rb +20 -0
  181. data/test/unit/priority_test.rb +20 -0
  182. data/test/unit/status_test.rb +93 -0
  183. data/test/unit/transition_manager_test.rb +142 -0
  184. data/test/unit/user_notifier_test.rb +32 -0
  185. data/test/unit/user_test.rb +75 -0
  186. data/vendor/plugins/acts_as_authenticated/CHANGELOG +86 -0
  187. data/vendor/plugins/acts_as_authenticated/README +20 -0
  188. data/vendor/plugins/acts_as_authenticated/generators/authenticated/USAGE +1 -0
  189. data/vendor/plugins/acts_as_authenticated/generators/authenticated/authenticated_generator.rb +102 -0
  190. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/authenticated_system.rb +131 -0
  191. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/authenticated_test_helper.rb +113 -0
  192. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/controller.rb +43 -0
  193. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/fixtures.yml +17 -0
  194. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/functional_test.rb +129 -0
  195. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/helper.rb +2 -0
  196. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/index.rhtml +56 -0
  197. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/login.rhtml +14 -0
  198. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/migration.rb +18 -0
  199. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/model.rb +64 -0
  200. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/signup.rhtml +16 -0
  201. data/vendor/plugins/acts_as_authenticated/generators/authenticated/templates/unit_test.rb +75 -0
  202. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/USAGE +1 -0
  203. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/authenticated_mailer_generator.rb +27 -0
  204. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/activation.rhtml +3 -0
  205. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/notifier.rb +22 -0
  206. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/notifier_test.rb +27 -0
  207. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/observer.rb +9 -0
  208. data/vendor/plugins/acts_as_authenticated/generators/authenticated_mailer/templates/signup_notification.rhtml +8 -0
  209. data/vendor/plugins/acts_as_authenticated/install.rb +1 -0
  210. data/vendor/plugins/rspec/CHANGES +963 -0
  211. data/vendor/plugins/rspec/MIT-LICENSE +20 -0
  212. data/vendor/plugins/rspec/README +75 -0
  213. data/vendor/plugins/rspec/Rakefile +273 -0
  214. data/vendor/plugins/rspec/TODO +54 -0
  215. data/vendor/plugins/rspec/UPGRADE +31 -0
  216. data/vendor/plugins/rspec/autotest/discover.rb +6 -0
  217. data/vendor/plugins/rspec/autotest/rspec.rb +1 -0
  218. data/vendor/plugins/rspec/bin/spec +3 -0
  219. data/vendor/plugins/rspec/bin/spec_translator +8 -0
  220. data/vendor/plugins/rspec/examples/auto_spec_description_example.rb +19 -0
  221. data/vendor/plugins/rspec/examples/before_and_after_example.rb +40 -0
  222. data/vendor/plugins/rspec/examples/behave_as_example.rb +45 -0
  223. data/vendor/plugins/rspec/examples/custom_expectation_matchers.rb +54 -0
  224. data/vendor/plugins/rspec/examples/custom_formatter.rb +12 -0
  225. data/vendor/plugins/rspec/examples/dynamic_spec.rb +9 -0
  226. data/vendor/plugins/rspec/examples/file_accessor.rb +19 -0
  227. data/vendor/plugins/rspec/examples/file_accessor_spec.rb +38 -0
  228. data/vendor/plugins/rspec/examples/greeter_spec.rb +31 -0
  229. data/vendor/plugins/rspec/examples/helper_method_example.rb +11 -0
  230. data/vendor/plugins/rspec/examples/io_processor.rb +8 -0
  231. data/vendor/plugins/rspec/examples/io_processor_spec.rb +21 -0
  232. data/vendor/plugins/rspec/examples/legacy_spec.rb +11 -0
  233. data/vendor/plugins/rspec/examples/mocking_example.rb +27 -0
  234. data/vendor/plugins/rspec/examples/multi_threaded_behaviour_runner.rb +27 -0
  235. data/vendor/plugins/rspec/examples/partial_mock_example.rb +28 -0
  236. data/vendor/plugins/rspec/examples/pending_example.rb +20 -0
  237. data/vendor/plugins/rspec/examples/predicate_example.rb +27 -0
  238. data/vendor/plugins/rspec/examples/priority.txt +1 -0
  239. data/vendor/plugins/rspec/examples/shared_behaviours_example.rb +39 -0
  240. data/vendor/plugins/rspec/examples/spec_and_test_together.rb +20 -0
  241. data/vendor/plugins/rspec/examples/spec_helper.rb +3 -0
  242. data/vendor/plugins/rspec/examples/stack.rb +36 -0
  243. data/vendor/plugins/rspec/examples/stack_spec.rb +97 -0
  244. data/vendor/plugins/rspec/examples/story/game-of-life/.loadpath +5 -0
  245. data/vendor/plugins/rspec/examples/story/game-of-life/README.txt +21 -0
  246. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/everything.rb +6 -0
  247. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/examples.rb +3 -0
  248. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/game_behaviour.rb +35 -0
  249. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/examples/grid_behaviour.rb +66 -0
  250. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/CellsWithLessThanTwoNeighboursDie.story +21 -0
  251. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/CellsWithMoreThanThreeNeighboursDie.story +21 -0
  252. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/EmptySpacesWithThreeNeighboursCreateACell.story +42 -0
  253. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/ICanCreateACell.story +42 -0
  254. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/ICanKillACell.story +17 -0
  255. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/TheGridWraps.story +53 -0
  256. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/create_a_cell.rb +52 -0
  257. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/kill_a_cell.rb +24 -0
  258. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/stories.rb +5 -0
  259. data/vendor/plugins/rspec/examples/story/game-of-life/behaviour/stories/stories.txt +22 -0
  260. data/vendor/plugins/rspec/examples/story/game-of-life/life.rb +3 -0
  261. data/vendor/plugins/rspec/examples/story/game-of-life/life/game.rb +23 -0
  262. data/vendor/plugins/rspec/examples/story/game-of-life/life/grid.rb +43 -0
  263. data/vendor/plugins/rspec/examples/stubbing_example.rb +69 -0
  264. data/vendor/plugins/rspec/examples/test_case_adapter_example.rb +26 -0
  265. data/vendor/plugins/rspec/failing_examples/diffing_spec.rb +36 -0
  266. data/vendor/plugins/rspec/failing_examples/failure_in_setup.rb +10 -0
  267. data/vendor/plugins/rspec/failing_examples/failure_in_teardown.rb +10 -0
  268. data/vendor/plugins/rspec/failing_examples/mocking_example.rb +40 -0
  269. data/vendor/plugins/rspec/failing_examples/mocking_with_flexmock.rb +26 -0
  270. data/vendor/plugins/rspec/failing_examples/mocking_with_mocha.rb +25 -0
  271. data/vendor/plugins/rspec/failing_examples/mocking_with_rr.rb +27 -0
  272. data/vendor/plugins/rspec/failing_examples/partial_mock_example.rb +20 -0
  273. data/vendor/plugins/rspec/failing_examples/predicate_example.rb +29 -0
  274. data/vendor/plugins/rspec/failing_examples/raising_example.rb +47 -0
  275. data/vendor/plugins/rspec/failing_examples/spec_helper.rb +3 -0
  276. data/vendor/plugins/rspec/failing_examples/syntax_error_example.rb +7 -0
  277. data/vendor/plugins/rspec/failing_examples/team_spec.rb +44 -0
  278. data/vendor/plugins/rspec/failing_examples/timeout_behaviour.rb +7 -0
  279. data/vendor/plugins/rspec/init.rb +3 -0
  280. data/vendor/plugins/rspec/lib/autotest/discover.rb +3 -0
  281. data/vendor/plugins/rspec/lib/autotest/rspec.rb +94 -0
  282. data/vendor/plugins/rspec/lib/spec.rb +12 -0
  283. data/vendor/plugins/rspec/lib/spec/dsl.rb +16 -0
  284. data/vendor/plugins/rspec/lib/spec/dsl/behaviour.rb +183 -0
  285. data/vendor/plugins/rspec/lib/spec/dsl/behaviour_description.rb +85 -0
  286. data/vendor/plugins/rspec/lib/spec/dsl/behaviour_factory.rb +59 -0
  287. data/vendor/plugins/rspec/lib/spec/dsl/configuration.rb +137 -0
  288. data/vendor/plugins/rspec/lib/spec/dsl/errors.rb +9 -0
  289. data/vendor/plugins/rspec/lib/spec/dsl/example.rb +7 -0
  290. data/vendor/plugins/rspec/lib/spec/dsl/example_definition.rb +32 -0
  291. data/vendor/plugins/rspec/lib/spec/dsl/example_matcher.rb +38 -0
  292. data/vendor/plugins/rspec/lib/spec/dsl/example_module.rb +198 -0
  293. data/vendor/plugins/rspec/lib/spec/dsl/example_runner.rb +147 -0
  294. data/vendor/plugins/rspec/lib/spec/dsl/example_suite.rb +110 -0
  295. data/vendor/plugins/rspec/lib/spec/dsl/pending.rb +18 -0
  296. data/vendor/plugins/rspec/lib/spec/dsl/shared_behaviour.rb +52 -0
  297. data/vendor/plugins/rspec/lib/spec/dsl/should_raise_handler.rb +64 -0
  298. data/vendor/plugins/rspec/lib/spec/expectations.rb +56 -0
  299. data/vendor/plugins/rspec/lib/spec/expectations/differs/default.rb +66 -0
  300. data/vendor/plugins/rspec/lib/spec/expectations/errors.rb +6 -0
  301. data/vendor/plugins/rspec/lib/spec/expectations/extensions.rb +2 -0
  302. data/vendor/plugins/rspec/lib/spec/expectations/extensions/object.rb +71 -0
  303. data/vendor/plugins/rspec/lib/spec/expectations/extensions/string_and_symbol.rb +17 -0
  304. data/vendor/plugins/rspec/lib/spec/expectations/handler.rb +52 -0
  305. data/vendor/plugins/rspec/lib/spec/extensions.rb +2 -0
  306. data/vendor/plugins/rspec/lib/spec/extensions/main.rb +51 -0
  307. data/vendor/plugins/rspec/lib/spec/extensions/object.rb +10 -0
  308. data/vendor/plugins/rspec/lib/spec/matchers.rb +153 -0
  309. data/vendor/plugins/rspec/lib/spec/matchers/be.rb +206 -0
  310. data/vendor/plugins/rspec/lib/spec/matchers/be_close.rb +37 -0
  311. data/vendor/plugins/rspec/lib/spec/matchers/change.rb +120 -0
  312. data/vendor/plugins/rspec/lib/spec/matchers/eql.rb +43 -0
  313. data/vendor/plugins/rspec/lib/spec/matchers/equal.rb +43 -0
  314. data/vendor/plugins/rspec/lib/spec/matchers/has.rb +44 -0
  315. data/vendor/plugins/rspec/lib/spec/matchers/have.rb +142 -0
  316. data/vendor/plugins/rspec/lib/spec/matchers/include.rb +70 -0
  317. data/vendor/plugins/rspec/lib/spec/matchers/match.rb +41 -0
  318. data/vendor/plugins/rspec/lib/spec/matchers/operator_matcher.rb +73 -0
  319. data/vendor/plugins/rspec/lib/spec/matchers/raise_error.rb +105 -0
  320. data/vendor/plugins/rspec/lib/spec/matchers/respond_to.rb +45 -0
  321. data/vendor/plugins/rspec/lib/spec/matchers/satisfy.rb +47 -0
  322. data/vendor/plugins/rspec/lib/spec/matchers/simple_matcher.rb +27 -0
  323. data/vendor/plugins/rspec/lib/spec/matchers/throw_symbol.rb +73 -0
  324. data/vendor/plugins/rspec/lib/spec/mocks.rb +211 -0
  325. data/vendor/plugins/rspec/lib/spec/mocks/argument_constraint_matchers.rb +27 -0
  326. data/vendor/plugins/rspec/lib/spec/mocks/argument_expectation.rb +183 -0
  327. data/vendor/plugins/rspec/lib/spec/mocks/error_generator.rb +84 -0
  328. data/vendor/plugins/rspec/lib/spec/mocks/errors.rb +10 -0
  329. data/vendor/plugins/rspec/lib/spec/mocks/extensions/object.rb +3 -0
  330. data/vendor/plugins/rspec/lib/spec/mocks/message_expectation.rb +254 -0
  331. data/vendor/plugins/rspec/lib/spec/mocks/methods.rb +39 -0
  332. data/vendor/plugins/rspec/lib/spec/mocks/mock.rb +37 -0
  333. data/vendor/plugins/rspec/lib/spec/mocks/order_group.rb +29 -0
  334. data/vendor/plugins/rspec/lib/spec/mocks/proxy.rb +170 -0
  335. data/vendor/plugins/rspec/lib/spec/mocks/space.rb +28 -0
  336. data/vendor/plugins/rspec/lib/spec/mocks/spec_methods.rb +37 -0
  337. data/vendor/plugins/rspec/lib/spec/rake/spectask.rb +224 -0
  338. data/vendor/plugins/rspec/lib/spec/rake/verify_rcov.rb +52 -0
  339. data/vendor/plugins/rspec/lib/spec/runner.rb +164 -0
  340. data/vendor/plugins/rspec/lib/spec/runner/backtrace_tweaker.rb +57 -0
  341. data/vendor/plugins/rspec/lib/spec/runner/behaviour_runner.rb +56 -0
  342. data/vendor/plugins/rspec/lib/spec/runner/command_line.rb +39 -0
  343. data/vendor/plugins/rspec/lib/spec/runner/drb_command_line.rb +20 -0
  344. data/vendor/plugins/rspec/lib/spec/runner/extensions/object.rb +32 -0
  345. data/vendor/plugins/rspec/lib/spec/runner/formatter.rb +9 -0
  346. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_formatter.rb +77 -0
  347. data/vendor/plugins/rspec/lib/spec/runner/formatter/base_text_formatter.rb +128 -0
  348. data/vendor/plugins/rspec/lib/spec/runner/formatter/failing_behaviours_formatter.rb +29 -0
  349. data/vendor/plugins/rspec/lib/spec/runner/formatter/failing_examples_formatter.rb +22 -0
  350. data/vendor/plugins/rspec/lib/spec/runner/formatter/html_formatter.rb +322 -0
  351. data/vendor/plugins/rspec/lib/spec/runner/formatter/progress_bar_formatter.rb +31 -0
  352. data/vendor/plugins/rspec/lib/spec/runner/formatter/rdoc_formatter.rb +24 -0
  353. data/vendor/plugins/rspec/lib/spec/runner/formatter/snippet_extractor.rb +52 -0
  354. data/vendor/plugins/rspec/lib/spec/runner/formatter/specdoc_formatter.rb +29 -0
  355. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner.rb +72 -0
  356. data/vendor/plugins/rspec/lib/spec/runner/heckle_runner_unsupported.rb +10 -0
  357. data/vendor/plugins/rspec/lib/spec/runner/option_parser.rb +222 -0
  358. data/vendor/plugins/rspec/lib/spec/runner/options.rb +223 -0
  359. data/vendor/plugins/rspec/lib/spec/runner/reporter.rb +137 -0
  360. data/vendor/plugins/rspec/lib/spec/runner/spec_parser.rb +53 -0
  361. data/vendor/plugins/rspec/lib/spec/story.rb +10 -0
  362. data/vendor/plugins/rspec/lib/spec/story/documenter.rb +1 -0
  363. data/vendor/plugins/rspec/lib/spec/story/documenter/plain_text_documenter.rb +43 -0
  364. data/vendor/plugins/rspec/lib/spec/story/extensions.rb +1 -0
  365. data/vendor/plugins/rspec/lib/spec/story/extensions/main.rb +13 -0
  366. data/vendor/plugins/rspec/lib/spec/story/given_scenario.rb +14 -0
  367. data/vendor/plugins/rspec/lib/spec/story/reporter.rb +1 -0
  368. data/vendor/plugins/rspec/lib/spec/story/reporter/plain_text_reporter.rb +60 -0
  369. data/vendor/plugins/rspec/lib/spec/story/runner.rb +49 -0
  370. data/vendor/plugins/rspec/lib/spec/story/runner/scenario_collector.rb +18 -0
  371. data/vendor/plugins/rspec/lib/spec/story/runner/scenario_runner.rb +43 -0
  372. data/vendor/plugins/rspec/lib/spec/story/runner/story_runner.rb +65 -0
  373. data/vendor/plugins/rspec/lib/spec/story/scenario.rb +14 -0
  374. data/vendor/plugins/rspec/lib/spec/story/simple_step.rb +17 -0
  375. data/vendor/plugins/rspec/lib/spec/story/step_mother.rb +31 -0
  376. data/vendor/plugins/rspec/lib/spec/story/story.rb +22 -0
  377. data/vendor/plugins/rspec/lib/spec/story/world.rb +87 -0
  378. data/vendor/plugins/rspec/lib/spec/test.rb +9 -0
  379. data/vendor/plugins/rspec/lib/spec/test/unit/autorunner.rb +6 -0
  380. data/vendor/plugins/rspec/lib/spec/test/unit/example.rb +15 -0
  381. data/vendor/plugins/rspec/lib/spec/test/unit/example_suite.rb +11 -0
  382. data/vendor/plugins/rspec/lib/spec/test/unit/rspectestresult.rb +5 -0
  383. data/vendor/plugins/rspec/lib/spec/test/unit/ui/console/testrunner.rb +18 -0
  384. data/vendor/plugins/rspec/lib/spec/test/unit/ui/testrunnermediator.rb +10 -0
  385. data/vendor/plugins/rspec/lib/spec/test_case_adapter.rb +10 -0
  386. data/vendor/plugins/rspec/lib/spec/translator.rb +114 -0
  387. data/vendor/plugins/rspec/lib/spec/version.rb +23 -0
  388. data/vendor/plugins/rspec/plugins/mock_frameworks/flexmock.rb +23 -0
  389. data/vendor/plugins/rspec/plugins/mock_frameworks/mocha.rb +19 -0
  390. data/vendor/plugins/rspec/plugins/mock_frameworks/rr.rb +21 -0
  391. data/vendor/plugins/rspec/plugins/mock_frameworks/rspec.rb +18 -0
  392. data/vendor/plugins/rspec/rake_tasks/examples.rake +7 -0
  393. data/vendor/plugins/rspec/rake_tasks/examples_rdoc.rake +8 -0
  394. data/vendor/plugins/rspec/rake_tasks/examples_with_rcov.rake +9 -0
  395. data/vendor/plugins/rspec/rake_tasks/failing_examples_with_html.rake +9 -0
  396. data/vendor/plugins/rspec/rake_tasks/verify_rcov.rake +7 -0
  397. data/vendor/plugins/rspec/spec.opts +6 -0
  398. data/vendor/plugins/rspec/spec/README.jruby +14 -0
  399. data/vendor/plugins/rspec/spec/autotest/discover_spec.rb +19 -0
  400. data/vendor/plugins/rspec/spec/autotest/rspec_spec.rb +264 -0
  401. data/vendor/plugins/rspec/spec/autotest_helper.rb +5 -0
  402. data/vendor/plugins/rspec/spec/rspec_suite.rb +6 -0
  403. data/vendor/plugins/rspec/spec/spec/dsl/behaviour_description_spec.rb +97 -0
  404. data/vendor/plugins/rspec/spec/spec/dsl/behaviour_factory_spec.rb +22 -0
  405. data/vendor/plugins/rspec/spec/spec/dsl/configuration_spec.rb +61 -0
  406. data/vendor/plugins/rspec/spec/spec/dsl/example_class_definition_spec.rb +48 -0
  407. data/vendor/plugins/rspec/spec/spec/dsl/example_definition_class_spec.rb +23 -0
  408. data/vendor/plugins/rspec/spec/spec/dsl/example_definition_spec.rb +17 -0
  409. data/vendor/plugins/rspec/spec/spec/dsl/example_factory_spec.rb +69 -0
  410. data/vendor/plugins/rspec/spec/spec/dsl/example_instance_spec.rb +242 -0
  411. data/vendor/plugins/rspec/spec/spec/dsl/example_matcher_spec.rb +91 -0
  412. data/vendor/plugins/rspec/spec/spec/dsl/example_should_raise_spec.rb +164 -0
  413. data/vendor/plugins/rspec/spec/spec/dsl/example_spec.rb +399 -0
  414. data/vendor/plugins/rspec/spec/spec/dsl/example_suite_spec.rb +617 -0
  415. data/vendor/plugins/rspec/spec/spec/dsl/pending_module_spec.rb +31 -0
  416. data/vendor/plugins/rspec/spec/spec/dsl/predicate_matcher_spec.rb +21 -0
  417. data/vendor/plugins/rspec/spec/spec/dsl/shared_behaviour_spec.rb +248 -0
  418. data/vendor/plugins/rspec/spec/spec/expectations/differs/default_spec.rb +109 -0
  419. data/vendor/plugins/rspec/spec/spec/expectations/extensions/object_spec.rb +107 -0
  420. data/vendor/plugins/rspec/spec/spec/expectations/fail_with_spec.rb +71 -0
  421. data/vendor/plugins/rspec/spec/spec/extensions/main_spec.rb +33 -0
  422. data/vendor/plugins/rspec/spec/spec/matchers/be_close_spec.rb +39 -0
  423. data/vendor/plugins/rspec/spec/spec/matchers/be_spec.rb +209 -0
  424. data/vendor/plugins/rspec/spec/spec/matchers/change_spec.rb +232 -0
  425. data/vendor/plugins/rspec/spec/spec/matchers/description_generation_spec.rb +157 -0
  426. data/vendor/plugins/rspec/spec/spec/matchers/eql_spec.rb +28 -0
  427. data/vendor/plugins/rspec/spec/spec/matchers/equal_spec.rb +28 -0
  428. data/vendor/plugins/rspec/spec/spec/matchers/exist_spec.rb +75 -0
  429. data/vendor/plugins/rspec/spec/spec/matchers/handler_spec.rb +129 -0
  430. data/vendor/plugins/rspec/spec/spec/matchers/has_spec.rb +37 -0
  431. data/vendor/plugins/rspec/spec/spec/matchers/have_spec.rb +272 -0
  432. data/vendor/plugins/rspec/spec/spec/matchers/include_spec.rb +45 -0
  433. data/vendor/plugins/rspec/spec/spec/matchers/match_spec.rb +37 -0
  434. data/vendor/plugins/rspec/spec/spec/matchers/matcher_methods_spec.rb +78 -0
  435. data/vendor/plugins/rspec/spec/spec/matchers/mock_constraint_matchers_spec.rb +24 -0
  436. data/vendor/plugins/rspec/spec/spec/matchers/operator_matcher_spec.rb +158 -0
  437. data/vendor/plugins/rspec/spec/spec/matchers/raise_error_spec.rb +185 -0
  438. data/vendor/plugins/rspec/spec/spec/matchers/respond_to_spec.rb +54 -0
  439. data/vendor/plugins/rspec/spec/spec/matchers/satisfy_spec.rb +36 -0
  440. data/vendor/plugins/rspec/spec/spec/matchers/simple_matcher_spec.rb +26 -0
  441. data/vendor/plugins/rspec/spec/spec/matchers/throw_symbol_spec.rb +54 -0
  442. data/vendor/plugins/rspec/spec/spec/mocks/any_number_of_times_spec.rb +29 -0
  443. data/vendor/plugins/rspec/spec/spec/mocks/argument_expectation_spec.rb +23 -0
  444. data/vendor/plugins/rspec/spec/spec/mocks/at_least_spec.rb +97 -0
  445. data/vendor/plugins/rspec/spec/spec/mocks/at_most_spec.rb +93 -0
  446. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_10260_spec.rb +8 -0
  447. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_11545_spec.rb +31 -0
  448. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_7611_spec.rb +19 -0
  449. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_7805_spec.rb +22 -0
  450. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_8165_spec.rb +31 -0
  451. data/vendor/plugins/rspec/spec/spec/mocks/bug_report_8302_spec.rb +26 -0
  452. data/vendor/plugins/rspec/spec/spec/mocks/failing_mock_argument_constraints_spec.rb +115 -0
  453. data/vendor/plugins/rspec/spec/spec/mocks/mock_ordering_spec.rb +84 -0
  454. data/vendor/plugins/rspec/spec/spec/mocks/mock_space_spec.rb +54 -0
  455. data/vendor/plugins/rspec/spec/spec/mocks/mock_spec.rb +450 -0
  456. data/vendor/plugins/rspec/spec/spec/mocks/multiple_return_value_spec.rb +113 -0
  457. data/vendor/plugins/rspec/spec/spec/mocks/null_object_mock_spec.rb +40 -0
  458. data/vendor/plugins/rspec/spec/spec/mocks/once_counts_spec.rb +53 -0
  459. data/vendor/plugins/rspec/spec/spec/mocks/options_hash_spec.rb +42 -0
  460. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_spec.rb +106 -0
  461. data/vendor/plugins/rspec/spec/spec/mocks/partial_mock_using_mocks_directly_spec.rb +66 -0
  462. data/vendor/plugins/rspec/spec/spec/mocks/passing_mock_argument_constraints_spec.rb +154 -0
  463. data/vendor/plugins/rspec/spec/spec/mocks/precise_counts_spec.rb +52 -0
  464. data/vendor/plugins/rspec/spec/spec/mocks/record_messages_spec.rb +26 -0
  465. data/vendor/plugins/rspec/spec/spec/mocks/stub_spec.rb +215 -0
  466. data/vendor/plugins/rspec/spec/spec/mocks/twice_counts_spec.rb +67 -0
  467. data/vendor/plugins/rspec/spec/spec/package/bin_spec_spec.rb +12 -0
  468. data/vendor/plugins/rspec/spec/spec/runner/command_line_spec.rb +140 -0
  469. data/vendor/plugins/rspec/spec/spec/runner/drb_command_line_spec.rb +92 -0
  470. data/vendor/plugins/rspec/spec/spec/runner/empty_file.txt +0 -0
  471. data/vendor/plugins/rspec/spec/spec/runner/examples.txt +2 -0
  472. data/vendor/plugins/rspec/spec/spec/runner/execution_context_spec.rb +31 -0
  473. data/vendor/plugins/rspec/spec/spec/runner/failed.txt +3 -0
  474. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_behaviours_formatter_spec.rb +41 -0
  475. data/vendor/plugins/rspec/spec/spec/runner/formatter/failing_examples_formatter_spec.rb +30 -0
  476. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.4.html +365 -0
  477. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5-jruby.html +375 -0
  478. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.5.html +371 -0
  479. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatted-1.8.6.html +371 -0
  480. data/vendor/plugins/rspec/spec/spec/runner/formatter/html_formatter_spec.rb +54 -0
  481. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_dry_run_spec.rb +21 -0
  482. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_failure_dump_spec.rb +39 -0
  483. data/vendor/plugins/rspec/spec/spec/runner/formatter/progress_bar_formatter_spec.rb +110 -0
  484. data/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_dry_run_spec.rb +21 -0
  485. data/vendor/plugins/rspec/spec/spec/runner/formatter/rdoc_formatter_spec.rb +48 -0
  486. data/vendor/plugins/rspec/spec/spec/runner/formatter/snippet_extractor_spec.rb +11 -0
  487. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_dry_run_spec.rb +21 -0
  488. data/vendor/plugins/rspec/spec/spec/runner/formatter/specdoc_formatter_spec.rb +64 -0
  489. data/vendor/plugins/rspec/spec/spec/runner/heckle_runner_spec.rb +62 -0
  490. data/vendor/plugins/rspec/spec/spec/runner/heckler_spec.rb +13 -0
  491. data/vendor/plugins/rspec/spec/spec/runner/noisy_backtrace_tweaker_spec.rb +45 -0
  492. data/vendor/plugins/rspec/spec/spec/runner/object_ext_spec.rb +11 -0
  493. data/vendor/plugins/rspec/spec/spec/runner/option_parser_spec.rb +356 -0
  494. data/vendor/plugins/rspec/spec/spec/runner/options_spec.rb +255 -0
  495. data/vendor/plugins/rspec/spec/spec/runner/quiet_backtrace_tweaker_spec.rb +56 -0
  496. data/vendor/plugins/rspec/spec/spec/runner/reporter_spec.rb +216 -0
  497. data/vendor/plugins/rspec/spec/spec/runner/spec.opts +2 -0
  498. data/vendor/plugins/rspec/spec/spec/runner/spec_parser_spec.rb +124 -0
  499. data/vendor/plugins/rspec/spec/spec/runner/spec_spaced.opts +2 -0
  500. data/vendor/plugins/rspec/spec/spec/runner_spec.rb +11 -0
  501. data/vendor/plugins/rspec/spec/spec/spec_classes.rb +123 -0
  502. data/vendor/plugins/rspec/spec/spec/story/builders.rb +46 -0
  503. data/vendor/plugins/rspec/spec/spec/story/documenter/plain_text_documenter_spec.rb +100 -0
  504. data/vendor/plugins/rspec/spec/spec/story/extensions_spec.rb +14 -0
  505. data/vendor/plugins/rspec/spec/spec/story/given_scenario_spec.rb +27 -0
  506. data/vendor/plugins/rspec/spec/spec/story/reporter/plain_text_reporter_spec.rb +114 -0
  507. data/vendor/plugins/rspec/spec/spec/story/rspec_adapter.rb +49 -0
  508. data/vendor/plugins/rspec/spec/spec/story/runner/scenario_collector_spec.rb +27 -0
  509. data/vendor/plugins/rspec/spec/spec/story/runner/scenario_runner_spec.rb +145 -0
  510. data/vendor/plugins/rspec/spec/spec/story/runner/story_runner_spec.rb +247 -0
  511. data/vendor/plugins/rspec/spec/spec/story/runner_spec.rb +64 -0
  512. data/vendor/plugins/rspec/spec/spec/story/scenario_spec.rb +20 -0
  513. data/vendor/plugins/rspec/spec/spec/story/simple_step_spec.rb +37 -0
  514. data/vendor/plugins/rspec/spec/spec/story/step_mother_spec.rb +59 -0
  515. data/vendor/plugins/rspec/spec/spec/story/story_helper.rb +3 -0
  516. data/vendor/plugins/rspec/spec/spec/story/story_spec.rb +45 -0
  517. data/vendor/plugins/rspec/spec/spec/story/world_spec.rb +406 -0
  518. data/vendor/plugins/rspec/spec/spec/test/unit/autorunner_test.rb +12 -0
  519. data/vendor/plugins/rspec/spec/spec/test/unit/sample_spec_test.rb +28 -0
  520. data/vendor/plugins/rspec/spec/spec/test/unit/spec_helper.rb +4 -0
  521. data/vendor/plugins/rspec/spec/spec/test/unit/test_unit_and_rspec_spec.rb +28 -0
  522. data/vendor/plugins/rspec/spec/spec/translator_spec.rb +264 -0
  523. data/vendor/plugins/rspec/spec/spec_helper.rb +56 -0
  524. data/vendor/plugins/rspec_on_rails/MIT-LICENSE +31 -0
  525. data/vendor/plugins/rspec_on_rails/README +1 -0
  526. data/vendor/plugins/rspec_on_rails/Rakefile +9 -0
  527. data/vendor/plugins/rspec_on_rails/generators/rspec/CHANGES +1 -0
  528. data/vendor/plugins/rspec_on_rails/generators/rspec/rspec_generator.rb +34 -0
  529. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/all_stories.rb +4 -0
  530. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/previous_failures.txt +0 -0
  531. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec +4 -0
  532. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/script/spec_server +103 -0
  533. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec.opts +6 -0
  534. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/spec_helper.rb +23 -0
  535. data/vendor/plugins/rspec_on_rails/generators/rspec/templates/stories_helper.rb +3 -0
  536. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/USAGE +33 -0
  537. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/rspec_controller_generator.rb +49 -0
  538. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/controller_spec.rb +23 -0
  539. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/helper_spec.rb +11 -0
  540. data/vendor/plugins/rspec_on_rails/generators/rspec_controller/templates/view_spec.rb +12 -0
  541. data/vendor/plugins/rspec_on_rails/generators/rspec_model/USAGE +18 -0
  542. data/vendor/plugins/rspec_on_rails/generators/rspec_model/rspec_model_generator.rb +30 -0
  543. data/vendor/plugins/rspec_on_rails/generators/rspec_model/templates/model_spec.rb +11 -0
  544. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/rspec_scaffold_generator.rb +165 -0
  545. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/controller_spec.rb +355 -0
  546. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/edit_erb_spec.rb +25 -0
  547. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/helper_spec.rb +4 -0
  548. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/index_erb_spec.rb +22 -0
  549. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/new_erb_spec.rb +26 -0
  550. data/vendor/plugins/rspec_on_rails/generators/rspec_scaffold/templates/show_erb_spec.rb +22 -0
  551. data/vendor/plugins/rspec_on_rails/init.rb +9 -0
  552. data/vendor/plugins/rspec_on_rails/lib/autotest/rails_rspec.rb +81 -0
  553. data/vendor/plugins/rspec_on_rails/lib/spec/dsl.rb +2 -0
  554. data/vendor/plugins/rspec_on_rails/lib/spec/dsl/configuration.rb +23 -0
  555. data/vendor/plugins/rspec_on_rails/lib/spec/matchers.rb +3 -0
  556. data/vendor/plugins/rspec_on_rails/lib/spec/matchers/have.rb +19 -0
  557. data/vendor/plugins/rspec_on_rails/lib/spec/rails.rb +57 -0
  558. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl.rb +40 -0
  559. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/assigns_hash_proxy.rb +42 -0
  560. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour.rb +7 -0
  561. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/controller_example.rb +251 -0
  562. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/functional_example.rb +67 -0
  563. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/helper_example.rb +82 -0
  564. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/model_example.rb +14 -0
  565. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/rails_example.rb +93 -0
  566. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/render_observer.rb +90 -0
  567. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/behaviour/view_example.rb +181 -0
  568. data/vendor/plugins/rspec_on_rails/lib/spec/rails/dsl/ivar_proxy.rb +62 -0
  569. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions.rb +7 -0
  570. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/base.rb +11 -0
  571. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/rescue.rb +21 -0
  572. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_controller/test_response.rb +11 -0
  573. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/action_view/base.rb +27 -0
  574. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/active_record/base.rb +29 -0
  575. data/vendor/plugins/rspec_on_rails/lib/spec/rails/extensions/object.rb +5 -0
  576. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers.rb +29 -0
  577. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/assert_select.rb +130 -0
  578. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/have_text.rb +55 -0
  579. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/redirect_to.rb +114 -0
  580. data/vendor/plugins/rspec_on_rails/lib/spec/rails/matchers/render_template.rb +66 -0
  581. data/vendor/plugins/rspec_on_rails/lib/spec/rails/story_adapter.rb +47 -0
  582. data/vendor/plugins/rspec_on_rails/lib/spec/rails/version.rb +26 -0
  583. data/vendor/plugins/rspec_on_rails/spec/rails/autotest/mappings_spec.rb +39 -0
  584. data/vendor/plugins/rspec_on_rails/spec/rails/autotest/rails_rspec_spec.rb +8 -0
  585. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/assigns_hash_proxy_spec.rb +55 -0
  586. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/behaviour_factory_spec.rb +83 -0
  587. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/configuration_spec.rb +56 -0
  588. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_isolation_spec.rb +43 -0
  589. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/controller_spec_spec.rb +166 -0
  590. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/helper_spec_spec.rb +106 -0
  591. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/ivar_proxy_spec.rb +64 -0
  592. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/model_spec_spec.rb +14 -0
  593. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/shared_behaviour_spec.rb +16 -0
  594. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/test_unit_assertion_accessibility_spec.rb +33 -0
  595. data/vendor/plugins/rspec_on_rails/spec/rails/dsl/view_spec_spec.rb +245 -0
  596. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_controller_rescue_action_spec.rb +54 -0
  597. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/action_view_base_spec.rb +34 -0
  598. data/vendor/plugins/rspec_on_rails/spec/rails/extensions/active_record_spec.rb +17 -0
  599. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/assert_select_spec.rb +783 -0
  600. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/description_generation_spec.rb +40 -0
  601. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/errors_on_spec.rb +13 -0
  602. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/redirect_to_spec.rb +203 -0
  603. data/vendor/plugins/rspec_on_rails/spec/rails/matchers/render_spec.rb +131 -0
  604. data/vendor/plugins/rspec_on_rails/spec/rails/mocks/mock_model_spec.rb +65 -0
  605. data/vendor/plugins/rspec_on_rails/spec/rails/sample_spec.rb +7 -0
  606. data/vendor/plugins/rspec_on_rails/spec/rails/spec_server_spec.rb +47 -0
  607. data/vendor/plugins/rspec_on_rails/spec/rails/spec_spec.rb +11 -0
  608. data/vendor/plugins/rspec_on_rails/spec/rails_suite.rb +7 -0
  609. data/vendor/plugins/rspec_on_rails/spec/spec_helper.rb +48 -0
  610. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/action_view_base_spec_controller.rb +2 -0
  611. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/controller_spec_controller.rb +48 -0
  612. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/redirect_spec_controller.rb +59 -0
  613. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/render_spec_controller.rb +22 -0
  614. data/vendor/plugins/rspec_on_rails/spec_resources/controllers/rjs_spec_controller.rb +58 -0
  615. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/explicit_helper.rb +10 -0
  616. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/more_explicit_helper.rb +5 -0
  617. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/plugin_application_helper.rb +6 -0
  618. data/vendor/plugins/rspec_on_rails/spec_resources/helpers/view_spec_helper.rb +13 -0
  619. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/_partial.rhtml +0 -0
  620. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_after_session_reset.rhtml +1 -0
  621. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_flash_before_session_reset.rhtml +1 -0
  622. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_setting_the_assigns_hash.rhtml +0 -0
  623. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_errors_in_template.rhtml +1 -0
  624. data/vendor/plugins/rspec_on_rails/spec_resources/views/controller_spec/action_with_template.rhtml +1 -0
  625. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/_a_partial.rhtml +0 -0
  626. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.js.rjs +1 -0
  627. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rhtml +0 -0
  628. data/vendor/plugins/rspec_on_rails/spec_resources/views/render_spec/some_action.rjs +1 -0
  629. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/_replacement_partial.rhtml +1 -0
  630. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_div.rjs +1 -0
  631. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/hide_page_element.rjs +1 -0
  632. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/insert_html.rjs +1 -0
  633. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace.rjs +1 -0
  634. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html.rjs +1 -0
  635. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/replace_html_with_partial.rjs +1 -0
  636. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_effect.rjs +1 -0
  637. data/vendor/plugins/rspec_on_rails/spec_resources/views/rjs_spec/visual_toggle_effect.rjs +1 -0
  638. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/no_tags.rhtml +1 -0
  639. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_no_attributes.rhtml +1 -0
  640. data/vendor/plugins/rspec_on_rails/spec_resources/views/tag_spec/single_div_with_one_attribute.rhtml +1 -0
  641. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial.rhtml +2 -0
  642. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_used_twice.rhtml +0 -0
  643. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_local_variable.rhtml +1 -0
  644. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_partial_with_sub_partial.rhtml +1 -0
  645. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/_spacer.rhtml +1 -0
  646. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/accessor.rhtml +3 -0
  647. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/entry_form.rhtml +2 -0
  648. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/explicit_helper.rhtml +2 -0
  649. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/foo/show.rhtml +1 -0
  650. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/implicit_helper.rhtml +2 -0
  651. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/multiple_helpers.rhtml +3 -0
  652. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial.rhtml +5 -0
  653. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_using_collection.rhtml +3 -0
  654. data/vendor/plugins/rspec_on_rails/spec_resources/views/view_spec/template_with_partial_with_array.rhtml +1 -0
  655. data/vendor/plugins/rspec_on_rails/tasks/rspec.rake +133 -0
  656. metadata +875 -0
@@ -0,0 +1,9 @@
1
+ # Placeholder to satisfy Rails.
2
+ #
3
+ # Do NOT add any require statements to this file. Doing
4
+ # so will cause Rails to load this plugin all of the time.
5
+ #
6
+ # Running 'ruby script/generate rspec' will
7
+ # generate spec/spec_helper.rb, which includes the necessary
8
+ # require statements and configuration. This file should
9
+ # be required by all of your spec files.
@@ -0,0 +1,81 @@
1
+ # (c) Copyright 2006 Nick Sieger <nicksieger@gmail.com>
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person
4
+ # obtaining a copy of this software and associated documentation files
5
+ # (the "Software"), to deal in the Software without restriction,
6
+ # including without limitation the rights to use, copy, modify, merge,
7
+ # publish, distribute, sublicense, and/or sell copies of the Software,
8
+ # and to permit persons to whom the Software is furnished to do so,
9
+ # subject to the following conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be
12
+ # included in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ # EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ # NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
18
+ # BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
19
+ # ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
20
+ # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ # SOFTWARE.
22
+
23
+ $:.push(*Dir["vendor/rails/*/lib"])
24
+
25
+ require 'active_support'
26
+ require 'autotest/rspec'
27
+
28
+ class Autotest::RailsRspec < Autotest::Rspec
29
+
30
+ def initialize # :nodoc:
31
+ super
32
+ @exceptions = %r%^\./(?:coverage|db|doc|log|public|script|vendor\/rails|previous_failures.txt)%
33
+ @test_mappings = {
34
+ %r%^(test|spec)/fixtures/(.*).yml$% => proc { |_, m|
35
+ ["spec/models/#{m[2].singularize}_spec.rb"] + files_matching(%r%^spec\/views\/#{m[2]}/.*_spec\.rb$%)
36
+ },
37
+ %r%^spec/(models|controllers|views|helpers|lib)/.*rb$% => proc { |filename, _|
38
+ filename
39
+ },
40
+ %r%^app/models/(.*)\.rb$% => proc { |_, m|
41
+ ["spec/models/#{m[1]}_spec.rb"]
42
+ },
43
+ %r%^app/views/(.*)$% => proc { |_, m|
44
+ files_matching %r%^spec/views/#{m[1]}_spec.rb$%
45
+ },
46
+ %r%^app/controllers/(.*)\.rb$% => proc { |_, m|
47
+ ["spec/controllers/#{m[1]}_spec.rb"]
48
+ },
49
+ %r%^app/helpers/(.*)_helper\.rb$% => proc { |_, m|
50
+ if m[1] == "application" then
51
+ files_matching(%r%^spec/(views|helpers)/.*_spec\.rb$%)
52
+ else
53
+ ["spec/helpers/#{m[1]}_helper_spec.rb"] + files_matching(%r%^spec\/views\/#{m[1]}/.*_spec\.rb$%)
54
+ end
55
+ },
56
+ %r%^app/helpers/application_helper\.rb$% => proc {
57
+ files_matching %r%^spec/(views|helpers)/.*_spec\.rb$%
58
+ },
59
+ %r%^app/controllers/application\.rb$% => proc { |_, m|
60
+ files_matching %r%^spec/controllers/.*_spec\.rb$%
61
+ },
62
+ %r%^config/routes\.rb$% => proc {
63
+ files_matching %r%^spec/(controllers|views|helpers)/.*_spec\.rb$%
64
+ },
65
+ %r%^config/database\.yml$% => proc { |_, m|
66
+ files_matching %r%^spec/models/.*_spec\.rb$%
67
+ },
68
+ %r%^(spec/(spec_helper|shared/.*)|config/(boot|environment(s/test)?))\.rb$% => proc {
69
+ files_matching %r%^spec/(models|controllers|views|helpers)/.*_spec\.rb$%
70
+ },
71
+ %r%^lib/(.*)\.rb$% => proc { |_, m|
72
+ ["spec/lib/#{m[1]}_spec.rb"]
73
+ },
74
+ }
75
+ end
76
+
77
+ def spec_command
78
+ "script/spec"
79
+ end
80
+
81
+ end
@@ -0,0 +1,2 @@
1
+ dir = File.dirname(__FILE__)
2
+ require File.expand_path("#{dir}/dsl/configuration")
@@ -0,0 +1,23 @@
1
+ module Spec
2
+ module DSL
3
+ class Configuration
4
+ attr_writer :use_transactional_fixtures, :use_instantiated_fixtures, :fixture_path, :global_fixtures
5
+
6
+ def use_transactional_fixtures
7
+ @use_transactional_fixtures.nil? ? @use_transactional_fixtures = true : @use_transactional_fixtures
8
+ end
9
+
10
+ def use_instantiated_fixtures
11
+ @use_instantiated_fixtures ||= false
12
+ end
13
+
14
+ def fixture_path
15
+ @fixture_path ||= RAILS_ROOT + '/spec/fixtures'
16
+ end
17
+
18
+ def global_fixtures
19
+ @global_fixtures ||= []
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,3 @@
1
+ dir = File.dirname(__FILE__)
2
+
3
+ require File.expand_path("#{dir}/matchers/have")
@@ -0,0 +1,19 @@
1
+ module Spec #:nodoc:
2
+ module Matchers #:nodoc:
3
+ class Have #:nodoc:
4
+ alias_method :__original_failure_message, :failure_message
5
+ def failure_message
6
+ return "expected #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}, got #{@actual}" if @collection_name == :errors_on
7
+ return "expected #{relativities[@relativity]}#{@expected} error on :#{@args[0]}, got #{@actual}" if @collection_name == :error_on
8
+ return __original_failure_message
9
+ end
10
+
11
+ alias_method :__original_description, :description
12
+ def description
13
+ return "should have #{relativities[@relativity]}#{@expected} errors on :#{@args[0]}" if @collection_name == :errors_on
14
+ return "should have #{relativities[@relativity]}#{@expected} error on :#{@args[0]}" if @collection_name == :error_on
15
+ return __original_description
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,57 @@
1
+ dir = File.dirname(__FILE__)
2
+ require 'application'
3
+
4
+ silence_warnings { RAILS_ENV = "test" }
5
+ require 'action_controller/test_process'
6
+ require 'action_controller/integration'
7
+ require 'active_record/base'
8
+ require 'active_record/fixtures'
9
+ require 'test/unit'
10
+ require 'spec'
11
+
12
+ require File.expand_path("#{dir}/dsl")
13
+ require File.expand_path("#{dir}/matchers")
14
+ require File.expand_path("#{dir}/rails/dsl")
15
+
16
+ require File.expand_path("#{dir}/rails/version")
17
+ require File.expand_path("#{dir}/rails/extensions")
18
+ require File.expand_path("#{dir}/rails/matchers")
19
+
20
+ #Test::Unit.run = true
21
+
22
+ module Spec
23
+ # = Spec::Rails
24
+ #
25
+ # Spec::Rails (a.k.a. RSpec on Rails) is a Ruby on Rails plugin that allows you to drive the development
26
+ # of your RoR application using RSpec, a framework that aims to enable Example Driven Development
27
+ # in Ruby.
28
+ #
29
+ # == Features
30
+ #
31
+ # * Use RSpec to independently specify Rails Models, Views, Controllers and Helpers
32
+ # * Integrated fixture loading
33
+ # * Special generators for Resources, Models, Views and Controllers that generate Specs instead of Tests.
34
+ #
35
+ # == Vision
36
+ #
37
+ # For people for whom TDD is a brand new concept, the testing support built into Ruby on Rails
38
+ # is a huge leap forward. The fact that it is built right in is fantastic, and Ruby on Rails
39
+ # apps are generally much easier to maintain than they might have been without such support.
40
+ #
41
+ # For those of us coming from a history with TDD, and now BDD, the existing support presents some problems related to dependencies across specs. To that end, RSpec on Rails supports 4 types of specs. We’ve also built in first class mocking and stubbing support in order to break dependencies across these different concerns.
42
+ #
43
+ # == More Information
44
+ #
45
+ # See Spec::Rails::Runner for information about the different kinds of contexts
46
+ # you can use to spec the different Rails components
47
+ #
48
+ # See Spec::Rails::Expectations for information about Rails-specific expectations
49
+ # you can set on responses and models, etc.
50
+ #
51
+ # == License
52
+ #
53
+ # RSpec on Rails is licensed under the same license as RSpec itself,
54
+ # the MIT-LICENSE.
55
+ module Rails
56
+ end
57
+ end
@@ -0,0 +1,40 @@
1
+ dir = File.dirname(__FILE__)
2
+
3
+ require File.expand_path("#{dir}/dsl/ivar_proxy")
4
+ require File.expand_path("#{dir}/dsl/assigns_hash_proxy")
5
+ require File.expand_path("#{dir}/dsl/behaviour")
6
+
7
+ module Spec
8
+ module Rails
9
+ # Spec::Rails::DSL extends Spec::DSL (RSpec's core DSL module) to provide
10
+ # Rails-specific contexts for describing Rails Models, Views, Controllers and Helpers.
11
+ #
12
+ # == Model Examples
13
+ #
14
+ # These are the equivalent of unit tests in Rails' built in testing. Ironically (for the traditional TDD'er) these are the only specs that we feel should actually interact with the database.
15
+ #
16
+ # See Spec::Rails::DSL::ModelExample
17
+ #
18
+ # == Controller Examples
19
+ #
20
+ # These align somewhat with functional tests in rails, except that they do not actually render views (though you can force rendering of views if you prefer). Instead of setting expectations about what goes on a page, you set expectations about what templates get rendered.
21
+ #
22
+ # See Spec::Rails::DSL::ControllerExample
23
+ #
24
+ # == View Examples
25
+ #
26
+ # This is the other half of Rails functional testing. View specs allow you to set up assigns and render
27
+ # a template. By assigning mock model data, you can specify view behaviour with no dependency on a database
28
+ # or your real models.
29
+ #
30
+ # See Spec::Rails::DSL::ViewExample
31
+ #
32
+ # == Helper Examples
33
+ #
34
+ # These let you specify directly methods that live in your helpers.
35
+ #
36
+ # See Spec::Rails::DSL::HelperExample
37
+ module DSL
38
+ end
39
+ end
40
+ end
@@ -0,0 +1,42 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ class AssignsHashProxy #:nodoc:
5
+ def initialize(object)
6
+ @object = object
7
+ end
8
+
9
+ def [](ivar)
10
+ if assigns.include?(ivar.to_s)
11
+ assigns[ivar.to_s]
12
+ elsif assigns.include?(ivar)
13
+ assigns[ivar]
14
+ else
15
+ nil
16
+ end
17
+ end
18
+
19
+ def []=(ivar, val)
20
+ assigns[ivar.to_s] = val
21
+ end
22
+
23
+ def delete(name)
24
+ assigns.delete(name.to_s)
25
+ end
26
+
27
+ def each(&block)
28
+ assigns.each &block
29
+ end
30
+
31
+ def has_key?(key)
32
+ assigns.key?(key.to_s)
33
+ end
34
+
35
+ protected
36
+ def assigns
37
+ @object.assigns
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,7 @@
1
+ require "spec/rails/dsl/behaviour/render_observer"
2
+ require "spec/rails/dsl/behaviour/rails_example"
3
+ require "spec/rails/dsl/behaviour/model_example"
4
+ require "spec/rails/dsl/behaviour/functional_example"
5
+ require "spec/rails/dsl/behaviour/controller_example"
6
+ require "spec/rails/dsl/behaviour/helper_example"
7
+ require "spec/rails/dsl/behaviour/view_example"
@@ -0,0 +1,251 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ # Controller Examples live in $RAILS_ROOT/spec/controllers/.
5
+ #
6
+ # Controller Examples use Spec::Rails::DSL::ControllerExample, which supports running specs for
7
+ # Controllers in two modes, which represent the tension between the more granular
8
+ # testing common in TDD and the more high level testing built into
9
+ # rails. BDD sits somewhere in between: we want to a balance between
10
+ # specs that are close enough to the code to enable quick fault
11
+ # isolation and far enough away from the code to enable refactoring
12
+ # with minimal changes to the existing specs.
13
+ #
14
+ # == Isolation mode (default)
15
+ #
16
+ # No dependencies on views because none are ever rendered. The
17
+ # benefit of this mode is that can spec the controller completely
18
+ # independent of the view, allowing that responsibility to be
19
+ # handled later, or by somebody else. Combined w/ separate view
20
+ # specs, this also provides better fault isolation.
21
+ #
22
+ # == Integration mode
23
+ #
24
+ # To run in this mode, include the +integrate_views+ declaration
25
+ # in your controller context:
26
+ #
27
+ # describe ThingController do
28
+ # integrate_views
29
+ # ...
30
+ #
31
+ # In this mode, controller specs are run in the same way that
32
+ # rails functional tests run - one set of tests for both the
33
+ # controllers and the views. The benefit of this approach is that
34
+ # you get wider coverage from each spec. Experienced rails
35
+ # developers may find this an easier approach to begin with, however
36
+ # we encourage you to explore using the isolation mode and revel
37
+ # in its benefits.
38
+ #
39
+ # == Expecting Errors
40
+ #
41
+ # Rspec on Rails will raise errors that occur in controller actions.
42
+ # In contrast, Rails will swallow errors that are raised in controller
43
+ # actions and return an error code in the header. If you wish to override
44
+ # Rspec and have Rail's default behaviour,tell the controller to use
45
+ # rails error handling ...
46
+ #
47
+ # before(:each) do
48
+ # controller.use_rails_error_handling!
49
+ # end
50
+ #
51
+ # When using Rail's error handling, you can expect error codes in headers ...
52
+ #
53
+ # it "should return an error in the header" do
54
+ # response.should be_error
55
+ # end
56
+ #
57
+ # it "should return a 501" do
58
+ # response.response_code.should == 501
59
+ # end
60
+ #
61
+ # it "should return a 501" do
62
+ # response.code.should == "501"
63
+ # end
64
+ class ControllerExample < FunctionalExample
65
+ class << self
66
+ def before_eval # :nodoc:
67
+ prepend_before {controller_setup}
68
+ append_after {teardown}
69
+ configure
70
+ end
71
+
72
+ # Use this to instruct RSpec to render views in your controller examples (Integration Mode).
73
+ #
74
+ # describe ThingController do
75
+ # integrate_views
76
+ # ...
77
+ #
78
+ # See Spec::Rails::DSL::ControllerExample for more information about
79
+ # Integration and Isolation modes.
80
+ def integrate_views
81
+ @integrate_views = true
82
+ end
83
+ def integrate_views? # :nodoc:
84
+ @integrate_views
85
+ end
86
+
87
+ # You MUST provide a controller_name within the context of
88
+ # your controller specs:
89
+ #
90
+ # describe "ThingController" do
91
+ # controller_name :thing
92
+ # ...
93
+ def controller_name(name)
94
+ @controller_class_name = "#{name}_controller".camelize
95
+ end
96
+ attr_accessor :controller_class_name # :nodoc:
97
+ end
98
+
99
+ attr_reader :response, :request, :controller
100
+
101
+ def initialize(example)
102
+ super
103
+ if rspec_behaviour.controller_class_name
104
+ @controller_class_name = rspec_behaviour.controller_class_name.to_s
105
+ else
106
+ @controller_class_name = rspec_behaviour.described_type.to_s
107
+ end
108
+ @integrate_views = rspec_behaviour.integrate_views?
109
+ end
110
+
111
+ def controller_setup #:nodoc:
112
+ functional_setup
113
+
114
+ # Some Rails apps explicitly disable ActionMailer in environment.rb
115
+ if defined?(ActionMailer)
116
+ @deliveries = []
117
+ ActionMailer::Base.deliveries = @deliveries
118
+ end
119
+
120
+ unless @controller.class.ancestors.include?(ActionController::Base)
121
+ Spec::Expectations.fail_with <<-EOE
122
+ You have to declare the controller name in controller specs. For example:
123
+ describe "The ExampleController" do
124
+ controller_name "example" #invokes the ExampleController
125
+ end
126
+ EOE
127
+ end
128
+ @controller.metaclass.class_eval do
129
+ def controller_path #:nodoc:
130
+ self.class.name.underscore.gsub('_controller', '')
131
+ end
132
+ include ControllerInstanceMethods
133
+ end
134
+ @controller.integrate_views! if @integrate_views
135
+ @controller.session = session
136
+ end
137
+
138
+ # Uses ActionController::Routing::Routes to generate
139
+ # the correct route for a given set of options.
140
+ # == Example
141
+ # route_for(:controller => 'registrations', :action => 'edit', :id => 1)
142
+ # => '/registrations/1;edit'
143
+ def route_for(options)
144
+ ensure_that_routes_are_loaded
145
+ ActionController::Routing::Routes.generate(options)
146
+ end
147
+
148
+ # Uses ActionController::Routing::Routes to parse
149
+ # an incoming path so the parameters it generates can be checked
150
+ # == Example
151
+ # params_from(:get, '/registrations/1;edit')
152
+ # => :controller => 'registrations', :action => 'edit', :id => 1
153
+ def params_from(method, path)
154
+ ensure_that_routes_are_loaded
155
+ ActionController::Routing::Routes.recognize_path(path, :method => method)
156
+ end
157
+
158
+ protected
159
+ def _controller_ivar_proxy
160
+ @controller_ivar_proxy ||= AssignsHashProxy.new @controller
161
+ end
162
+
163
+ private
164
+ def ensure_that_routes_are_loaded
165
+ ActionController::Routing::Routes.reload if ActionController::Routing::Routes.empty?
166
+ end
167
+
168
+ module ControllerInstanceMethods #:nodoc:
169
+ include Spec::Rails::DSL::RenderObserver
170
+
171
+ # === render(options = nil, deprecated_status = nil, &block)
172
+ #
173
+ # This gets added to the controller's singleton meta class,
174
+ # allowing Controller Examples to run in two modes, freely switching
175
+ # from context to context.
176
+ def render(options=nil, deprecated_status=nil, &block)
177
+ unless block_given?
178
+ unless integrate_views?
179
+ @template.metaclass.class_eval do
180
+ define_method :file_exists? do
181
+ true
182
+ end
183
+ define_method :render_file do |*args|
184
+ @first_render ||= args[0]
185
+ end
186
+ end
187
+ end
188
+ end
189
+
190
+ if expect_render_mock_proxy.send(:__mock_proxy).send(:find_matching_expectation, :render, options)
191
+ expect_render_mock_proxy.render(options)
192
+ @performed_render = true
193
+ else
194
+ unless expect_render_mock_proxy.send(:__mock_proxy).send(:find_matching_method_stub, :render, options)
195
+ super(options, deprecated_status, &block)
196
+ end
197
+ end
198
+ end
199
+
200
+ if self.respond_to?(:should_receive) && self.respond_to?(:stub!)
201
+ self.send :alias_method, :orig_should_receive, :should_receive
202
+ self.send :alias_method, :orig_stub!, :stub!
203
+ def raise_with_disable_message(old_method, new_method)
204
+ raise %Q|
205
+ controller.#{old_method}(:render) has been disabled because it
206
+ can often produce unexpected results. Instead, you should
207
+ use the following (before the action):
208
+
209
+ controller.#{new_method}(*args)
210
+
211
+ See the rdoc for #{new_method} for more information.
212
+ |
213
+ end
214
+ def should_receive(*args)
215
+ if args[0] == :render
216
+ raise_with_disable_message("should_receive", "expect_render")
217
+ else
218
+ orig_should_receive(*args)
219
+ end
220
+ end
221
+ def stub!(*args)
222
+ if args[0] == :render
223
+ raise_with_disable_message("stub!", "stub_render")
224
+ else
225
+ orig_stub!(*args)
226
+ end
227
+ end
228
+ end
229
+
230
+ def response(&block)
231
+ # NOTE - we're setting @update for the assert_select_spec - kinda weird, huh?
232
+ @update = block
233
+ @_response || @response
234
+ end
235
+
236
+ def integrate_views!
237
+ @integrate_views = true
238
+ end
239
+
240
+ private
241
+
242
+ def integrate_views?
243
+ @integrate_views
244
+ end
245
+ end
246
+
247
+ Spec::DSL::BehaviourFactory.add_example_class(:controller, self)
248
+ end
249
+ end
250
+ end
251
+ end