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,67 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ class FunctionalExample < RailsExample
5
+ include ActionController::TestProcess
6
+ include ActionController::Assertions
7
+
8
+ attr_reader :request, :response
9
+ def functional_setup #:nodoc:
10
+ setup
11
+ @controller_class = Object.path2class @controller_class_name
12
+ raise "Can't determine controller class for #{@controller_class_name}" if @controller_class.nil?
13
+
14
+ @controller = @controller_class.new
15
+
16
+ @request = ActionController::TestRequest.new
17
+ @response = ActionController::TestResponse.new
18
+ end
19
+
20
+ def params
21
+ request.parameters
22
+ end
23
+
24
+ def flash
25
+ response.flash
26
+ end
27
+
28
+ def session
29
+ request.session
30
+ end
31
+
32
+ # :call-seq:
33
+ # assigns()
34
+ #
35
+ # Hash of instance variables to values that are made available to views.
36
+ # == Examples
37
+ #
38
+ # #in thing_controller.rb
39
+ # def new
40
+ # @thing = Thing.new
41
+ # end
42
+ #
43
+ # #in thing_controller_spec
44
+ # get 'new'
45
+ # assigns[:registration].should == Thing.new
46
+ #--
47
+ # NOTE - Even though docs say only use assigns[:key] format, but allowing assigns(:key)
48
+ # in order to avoid breaking old specs.
49
+ #++
50
+ def assigns(key = nil)
51
+ if key.nil?
52
+ @controller.assigns
53
+ _controller_ivar_proxy
54
+ else
55
+ @controller.assigns[key]
56
+ _controller_ivar_proxy[key]
57
+ end
58
+ end
59
+
60
+ protected
61
+ def _controller_ivar_proxy
62
+ @controller_ivar_proxy ||= IvarProxy.new @controller
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -0,0 +1,82 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ # Helper Specs live in $RAILS_ROOT/spec/helpers/.
5
+ #
6
+ # Helper Specs use Spec::Rails::DSL::HelperExample, which allows you to
7
+ # include your Helper directly in the context and write specs directly
8
+ # against its methods.
9
+ #
10
+ # HelperExample also includes the standard lot of ActionView::Helpers in case your
11
+ # helpers rely on any of those.
12
+ #
13
+ # == Example
14
+ #
15
+ # class ThingHelper
16
+ # def number_of_things
17
+ # Thing.count
18
+ # end
19
+ # end
20
+ #
21
+ # describe "ThingHelper behaviour" do
22
+ # include ThingHelper
23
+ # it "should tell you the number of things" do
24
+ # Thing.should_receive(:count).and_return(37)
25
+ # number_of_things.should == 37
26
+ # end
27
+ # end
28
+ class HelperExample < FunctionalExample
29
+ class << self
30
+ def before_eval #:nodoc:
31
+ prepend_before {helper_setup}
32
+ append_after {teardown}
33
+ configure
34
+ end
35
+
36
+ # The helper name....
37
+ def helper_name(name=nil)
38
+ send :include, "#{name}_helper".camelize.constantize
39
+ end
40
+ end
41
+
42
+ ActionView::Base.included_modules.each do |mod|
43
+ include mod if mod.parents.include?(ActionView::Helpers)
44
+ end
45
+ ActionController::Routing::Routes.named_routes.install(self)
46
+
47
+ def helper_setup #:nodoc:
48
+ @controller_class_name = 'Spec::Rails::DSL::HelperBehaviourController'
49
+ functional_setup
50
+ @controller.request = @request
51
+ @controller.url = ActionController::UrlRewriter.new @request, {} # url_for
52
+
53
+ @flash = ActionController::Flash::FlashHash.new
54
+ session['flash'] = @flash
55
+
56
+ # This is to fix the JavaScriptGenerator::GeneratorMethods issue
57
+ # TODO: Refactor me
58
+ @lines = []
59
+
60
+ ActionView::Helpers::AssetTagHelper::reset_javascript_include_default
61
+ end
62
+
63
+ def flash
64
+ @flash
65
+ end
66
+
67
+ def eval_erb(text)
68
+ ERB.new(text).result(binding)
69
+ end
70
+
71
+ Spec::DSL::BehaviourFactory.add_example_class(:helper, self)
72
+ end
73
+
74
+ class HelperBehaviourController < ApplicationController #:nodoc:
75
+ attr_accessor :request, :url
76
+
77
+ # Re-raise errors
78
+ def rescue_action(e); raise e; end
79
+ end
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,14 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ # Model examples live in $RAILS_ROOT/spec/models/.
5
+ #
6
+ # Model examples use Spec::Rails::DSL::ModelExample, which
7
+ # provides support for fixtures and some custom expectations via extensions
8
+ # to ActiveRecord::Base.
9
+ class ModelExample < RailsExample
10
+ Spec::DSL::BehaviourFactory.add_example_class(:model, self)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,93 @@
1
+ ActionView::Base.cache_template_extensions = false
2
+
3
+ module Spec
4
+ module Rails
5
+ module DSL
6
+ class RailsExample < ::Spec::Test::Unit::Example
7
+ cattr_accessor(
8
+ :fixture_path,
9
+ :use_transactional_fixtures,
10
+ :use_instantiated_fixtures,
11
+ :global_fixtures
12
+ )
13
+
14
+ class << self
15
+ def configure
16
+ self.fixture_table_names = []
17
+ self.fixture_class_names = {}
18
+ self.use_transactional_fixtures = Spec::Runner.configuration.use_transactional_fixtures
19
+ self.use_instantiated_fixtures = Spec::Runner.configuration.use_instantiated_fixtures
20
+ self.fixture_path = Spec::Runner.configuration.fixture_path
21
+ self.global_fixtures = Spec::Runner.configuration.global_fixtures
22
+ self.fixtures(self.global_fixtures) if self.global_fixtures
23
+ end
24
+
25
+ def before_eval #:nodoc:
26
+ super
27
+ prepend_before {setup}
28
+ append_after {teardown}
29
+ configure
30
+ end
31
+ end
32
+
33
+ include Spec::Rails::Matchers
34
+
35
+ def initialize(example) #:nodoc:
36
+ super
37
+ def self.method_missing(method_name, *args, &block)
38
+ return ::Spec::Matchers::Be.new(method_name, *args) if method_name.starts_with?("be_")
39
+ return ::Spec::Matchers::Has.new(method_name, *args) if method_name.starts_with?("have_")
40
+ return @test_case.send(method_name, *args, &block) if @test_case.respond_to?(method_name)
41
+ super
42
+ end
43
+ end
44
+
45
+ @@model_id = 1000
46
+ # Creates a mock object instance for a +model_class+ with common
47
+ # methods stubbed out.
48
+ # Additional methods may be easily stubbed (via add_stubs) if +stubs+ is passed.
49
+ def mock_model(model_class, options_and_stubs = {})
50
+ null = options_and_stubs.delete(:null_object)
51
+ stubs = options_and_stubs
52
+ id = @@model_id
53
+ @@model_id += 1
54
+ m = mock("#{model_class.name}_#{id}", :null_object => null)
55
+ m.stub!(:id).and_return(id)
56
+ m.stub!(:to_param).and_return(id.to_s)
57
+ m.stub!(:new_record?).and_return(false)
58
+ m.stub!(:errors).and_return(stub("errors", :count => 0))
59
+ m.send(:__mock_proxy).instance_eval <<-CODE
60
+ def @target.is_a?(other)
61
+ #{model_class}.ancestors.include?(other)
62
+ end
63
+ def @target.kind_of?(other)
64
+ #{model_class}.ancestors.include?(other)
65
+ end
66
+ def @target.instance_of?(other)
67
+ other == #{model_class}
68
+ end
69
+ def @target.class
70
+ #{model_class}
71
+ end
72
+ CODE
73
+ add_stubs(m, stubs)
74
+ yield m if block_given?
75
+ m
76
+ end
77
+
78
+ #--
79
+ # TODO - Shouldn't this just be an extension of stub! ??
80
+ # - object.stub!(:method => return_value, :method2 => return_value2, :etc => etc)
81
+ #++
82
+ # Stubs methods on +object+ (if +object+ is a symbol or string a new mock
83
+ # with that name will be created). +stubs+ is a Hash of <tt>method=>value</tt>
84
+ def add_stubs(object, stubs = {}) #:nodoc:
85
+ m = [String, Symbol].index(object.class) ? mock(object.to_s) : object
86
+ stubs.each {|k,v| m.stub!(k).and_return(v)}
87
+ m
88
+ end
89
+ Spec::DSL::BehaviourFactory.add_example_class(:default, self)
90
+ end
91
+ end
92
+ end
93
+ end
@@ -0,0 +1,90 @@
1
+ require 'spec/mocks'
2
+
3
+ module Spec
4
+ module Rails
5
+ module DSL
6
+ # Provides specialized mock-like behaviour for controller and view examples,
7
+ # allowing you to mock or stub calls to render with specific arguments while
8
+ # ignoring all other calls.
9
+ module RenderObserver
10
+
11
+ # Similar to mocking +render+ with the exception that calls to +render+ with
12
+ # any other options are passed on to the receiver (i.e. controller in
13
+ # controller examples, template in view examples).
14
+ #
15
+ # This is necessary because Rails uses the +render+ method on both
16
+ # controllers and templates as a dispatcher to render different kinds of
17
+ # things, sometimes resulting in many calls to the render method within one
18
+ # request. This approach makes it impossible to use a normal mock object, which
19
+ # is designed to observe all incoming messages with a given name.
20
+ #
21
+ # +expect_render+ is auto-verifying, so failures will be reported without
22
+ # requiring you to explicitly request verification.
23
+ #
24
+ # Also, +expect_render+ uses parts of RSpec's mock expectation framework. Because
25
+ # it wraps only a subset of the framework, using this will create no conflict with
26
+ # other mock frameworks if you choose to use them. Additionally, the object returned
27
+ # by expect_render is an RSpec mock object, which means that you can call any of the
28
+ # chained methods available in RSpec's mocks.
29
+ #
30
+ # == Controller Examples
31
+ #
32
+ # controller.expect_render(:partial => 'thing', :object => thing)
33
+ # controller.expect_render(:partial => 'thing', :collection => things).once
34
+ #
35
+ # controller.stub_render(:partial => 'thing', :object => thing)
36
+ # controller.stub_render(:partial => 'thing', :collection => things).twice
37
+ #
38
+ # == View Examples
39
+ #
40
+ # template.expect_render(:partial => 'thing', :object => thing)
41
+ # template.expect_render(:partial => 'thing', :collection => things)
42
+ #
43
+ # template.stub_render(:partial => 'thing', :object => thing)
44
+ # template.stub_render(:partial => 'thing', :collection => things)
45
+ #
46
+ def expect_render(opts={})
47
+ register_verify_after_each
48
+ expect_render_mock_proxy.should_receive(:render, :expected_from => caller(1)[0]).with(opts)
49
+ end
50
+
51
+ # This is exactly like expect_render, with the exception that the call to render will not
52
+ # be verified. Use this if you are trying to isolate your example from a complicated render
53
+ # operation but don't care whether it is called or not.
54
+ def stub_render(opts={})
55
+ register_verify_after_each
56
+ expect_render_mock_proxy.stub!(:render, :expected_from => caller(1)[0]).with(opts)
57
+ end
58
+
59
+ def verify_rendered # :nodoc:
60
+ expect_render_mock_proxy.rspec_verify
61
+ end
62
+
63
+ def unregister_verify_after_each #:nodoc:
64
+ proc = verify_rendered_proc
65
+ Spec::DSL::Example.remove_after(:each, &proc)
66
+ end
67
+
68
+ protected
69
+
70
+ def verify_rendered_proc #:nodoc:
71
+ template = self
72
+ @verify_rendered_proc ||= Proc.new do
73
+ template.verify_rendered
74
+ template.unregister_verify_after_each
75
+ end
76
+ end
77
+
78
+ def register_verify_after_each #:nodoc:
79
+ proc = verify_rendered_proc
80
+ Spec::DSL::Example.after(:each, &proc)
81
+ end
82
+
83
+ def expect_render_mock_proxy #:nodoc:
84
+ @expect_render_mock_proxy ||= Spec::Mocks::Mock.new("expect_render_mock_proxy")
85
+ end
86
+
87
+ end
88
+ end
89
+ end
90
+ end
@@ -0,0 +1,181 @@
1
+ module Spec
2
+ module Rails
3
+ module DSL
4
+ # View Examples live in $RAILS_ROOT/spec/views/.
5
+ #
6
+ # View Specs use Spec::Rails::DSL::ViewExample,
7
+ # which provides access to views without invoking any of your controllers.
8
+ # See Spec::Rails::Expectations::Matchers for information about specific
9
+ # expectations that you can set on views.
10
+ #
11
+ # == Example
12
+ #
13
+ # describe "login/login" do
14
+ # before do
15
+ # render 'login/login'
16
+ # end
17
+ #
18
+ # it "should display login form" do
19
+ # response.should have_tag("form[action=/login]") do
20
+ # with_tag("input[type=text][name=email]")
21
+ # with_tag("input[type=password][name=password]")
22
+ # with_tag("input[type=submit][value=Login]")
23
+ # end
24
+ # end
25
+ # end
26
+ class ViewExample < FunctionalExample
27
+ class << self
28
+ def before_eval # :nodoc:
29
+ prepend_before {view_setup}
30
+ append_after {teardown}
31
+ configure
32
+ end
33
+ end
34
+
35
+ def initialize(example) #:nodoc:
36
+ super
37
+ @controller_class_name = "Spec::Rails::DSL::ViewExampleController"
38
+ end
39
+
40
+ def view_setup #:nodoc:
41
+ functional_setup
42
+ ensure_that_flash_and_session_work_properly
43
+ end
44
+
45
+ def ensure_that_flash_and_session_work_properly #:nodoc:
46
+ @controller.send :initialize_template_class, @response
47
+ @controller.send :assign_shortcuts, @request, @response
48
+ @session = @controller.session
49
+ @controller.class.send :public, :flash
50
+ end
51
+
52
+ def teardown #:nodoc:
53
+ super
54
+ ensure_that_base_view_path_is_not_set_across_behaviours
55
+ end
56
+
57
+ def ensure_that_base_view_path_is_not_set_across_behaviours #:nodoc:
58
+ ActionView::Base.base_view_path = nil
59
+ end
60
+
61
+ def set_base_view_path(options) #:nodoc:
62
+ ActionView::Base.base_view_path = base_view_path(options)
63
+ end
64
+
65
+ def base_view_path(options) #:nodoc:
66
+ "/#{derived_controller_name(options)}/"
67
+ end
68
+
69
+ def derived_controller_name(options) #:nodoc:
70
+ parts = subject_of_render(options).split('/').reject { |part| part.empty? }
71
+ "#{parts[0..-2].join('/')}"
72
+ end
73
+
74
+ def derived_action_name(options) #:nodoc:
75
+ parts = subject_of_render(options).split('/').reject { |part| part.empty? }
76
+ "#{parts.last}"
77
+ end
78
+
79
+ def subject_of_render(options) #:nodoc:
80
+ [:template, :partial, :file].each do |render_type|
81
+ if options.has_key?(render_type)
82
+ return options[render_type]
83
+ end
84
+ end
85
+ raise Exception.new("Unhandled render type in view spec.")
86
+ end
87
+
88
+ def add_helpers(options) #:nodoc:
89
+ @controller.add_helper("application")
90
+ @controller.add_helper(derived_controller_name(options))
91
+ @controller.add_helper(options[:helper]) if options[:helper]
92
+ options[:helpers].each { |helper| @controller.add_helper(helper) } if options[:helpers]
93
+ end
94
+
95
+ # Renders a template for a View Spec, which then provides access to the result
96
+ # through the +response+.
97
+ #
98
+ # == Examples
99
+ #
100
+ # render('/people/list')
101
+ # render('/people/list', :helper => MyHelper)
102
+ # render('/people/list', :helpers => [MyHelper, MyOtherHelper])
103
+ # render(:partial => '/people/_address')
104
+ #
105
+ # See Spec::Rails::DSL::ViewExample for more information.
106
+ def render(*args)
107
+ options = Hash === args.last ? args.pop : {}
108
+ options[:template] = args.first.to_s unless args.empty?
109
+
110
+ set_base_view_path(options)
111
+ add_helpers(options)
112
+
113
+ assigns[:action_name] = @action_name
114
+
115
+ @request.path_parameters = {
116
+ :controller => derived_controller_name(options),
117
+ :action => derived_action_name(options)
118
+ }
119
+
120
+ defaults = { :layout => false }
121
+ options = defaults.merge options
122
+
123
+ @controller.instance_variable_set :@params, @request.parameters
124
+
125
+ @controller.send :initialize_current_url
126
+
127
+ @controller.class.instance_eval %{
128
+ def controller_path
129
+ "#{derived_controller_name(options)}"
130
+ end
131
+
132
+ def controller_name
133
+ "#{derived_controller_name(options).split('/').last}"
134
+ end
135
+ }
136
+
137
+ @controller.send :forget_variables_added_to_assigns
138
+ @controller.send :render, options
139
+ @controller.send :process_cleanup
140
+ end
141
+
142
+ # This provides the template. Use this to set mock
143
+ # expectations for dealing with partials
144
+ #
145
+ # == Example
146
+ #
147
+ # describe "/person/new" do
148
+ # it "should use the form partial" do
149
+ # template.should_receive(:render).with(:partial => 'form')
150
+ # render "/person/new"
151
+ # end
152
+ # end
153
+ def template
154
+ @controller.template
155
+ end
156
+
157
+ Spec::DSL::BehaviourFactory.add_example_class(:view, self)
158
+ end
159
+
160
+ class ViewExampleController < ApplicationController #:nodoc:
161
+ include Spec::Rails::DSL::RenderObserver
162
+ attr_reader :template
163
+
164
+ def add_helper_for(template_path)
165
+ add_helper(template_path.split('/')[0])
166
+ end
167
+
168
+ def add_helper(name)
169
+ begin
170
+ helper_module = "#{name}_helper".camelize.constantize
171
+ rescue
172
+ return
173
+ end
174
+ template.metaclass.class_eval do
175
+ include helper_module
176
+ end
177
+ end
178
+ end
179
+ end
180
+ end
181
+ end