resources_controller 1.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 (249) hide show
  1. data/LICENSE +22 -0
  2. data/README.rdoc +330 -0
  3. data/TODO +0 -0
  4. data/VERSION.yml +4 -0
  5. data/generators/scaffold_resource/USAGE +29 -0
  6. data/generators/scaffold_resource/scaffold_resource_generator.rb +179 -0
  7. data/generators/scaffold_resource/templates/controller.rb +2 -0
  8. data/generators/scaffold_resource/templates/fixtures.yml +10 -0
  9. data/generators/scaffold_resource/templates/functional_test.rb +57 -0
  10. data/generators/scaffold_resource/templates/helper.rb +2 -0
  11. data/generators/scaffold_resource/templates/migration.rb +15 -0
  12. data/generators/scaffold_resource/templates/model.rb +2 -0
  13. data/generators/scaffold_resource/templates/old_migration.rb +13 -0
  14. data/generators/scaffold_resource/templates/rspec/functional_spec.rb +255 -0
  15. data/generators/scaffold_resource/templates/rspec/helper_spec.rb +11 -0
  16. data/generators/scaffold_resource/templates/rspec/routing_spec.rb +61 -0
  17. data/generators/scaffold_resource/templates/rspec/unit_spec.rb +11 -0
  18. data/generators/scaffold_resource/templates/rspec/views/edit_spec.rb +28 -0
  19. data/generators/scaffold_resource/templates/rspec/views/index_spec.rb +26 -0
  20. data/generators/scaffold_resource/templates/rspec/views/new_spec.rb +30 -0
  21. data/generators/scaffold_resource/templates/rspec/views/show_spec.rb +25 -0
  22. data/generators/scaffold_resource/templates/shoulda_functional_test.rb +19 -0
  23. data/generators/scaffold_resource/templates/unit_test.rb +7 -0
  24. data/generators/scaffold_resource/templates/view__form.erb +6 -0
  25. data/generators/scaffold_resource/templates/view__form.haml +5 -0
  26. data/generators/scaffold_resource/templates/view_edit.erb +16 -0
  27. data/generators/scaffold_resource/templates/view_edit.haml +11 -0
  28. data/generators/scaffold_resource/templates/view_index.erb +22 -0
  29. data/generators/scaffold_resource/templates/view_index.haml +19 -0
  30. data/generators/scaffold_resource/templates/view_new.erb +12 -0
  31. data/generators/scaffold_resource/templates/view_new.haml +9 -0
  32. data/generators/scaffold_resource/templates/view_show.erb +9 -0
  33. data/generators/scaffold_resource/templates/view_show.haml +9 -0
  34. data/lib/resource_controller/accessors.rb +77 -0
  35. data/lib/resource_controller/action_options.rb +40 -0
  36. data/lib/resource_controller/actions.rb +75 -0
  37. data/lib/resource_controller/base.rb +15 -0
  38. data/lib/resource_controller/controller.rb +69 -0
  39. data/lib/resource_controller/failable_action_options.rb +25 -0
  40. data/lib/resource_controller/helpers/current_objects.rb +82 -0
  41. data/lib/resource_controller/helpers/internal.rb +80 -0
  42. data/lib/resource_controller/helpers/nested.rb +82 -0
  43. data/lib/resource_controller/helpers/singleton_customizations.rb +64 -0
  44. data/lib/resource_controller/helpers/urls.rb +132 -0
  45. data/lib/resource_controller/helpers.rb +34 -0
  46. data/lib/resource_controller/response_collector.rb +27 -0
  47. data/lib/resource_controller/singleton.rb +15 -0
  48. data/lib/resource_controller.rb +54 -0
  49. data/lib/urligence.rb +52 -0
  50. data/rails/init.rb +6 -0
  51. data/test/Gemfile +11 -0
  52. data/test/Rakefile +10 -0
  53. data/test/app/controllers/accounts_controller.rb +6 -0
  54. data/test/app/controllers/application_controller.rb +5 -0
  55. data/test/app/controllers/cms/options_controller.rb +3 -0
  56. data/test/app/controllers/cms/personnel_controller.rb +2 -0
  57. data/test/app/controllers/cms/photos_controller.rb +6 -0
  58. data/test/app/controllers/cms/products_controller.rb +3 -0
  59. data/test/app/controllers/comments_controller.rb +3 -0
  60. data/test/app/controllers/images_controller.rb +4 -0
  61. data/test/app/controllers/options_controller.rb +8 -0
  62. data/test/app/controllers/people_controller.rb +9 -0
  63. data/test/app/controllers/photos_controller.rb +12 -0
  64. data/test/app/controllers/posts_controller.rb +10 -0
  65. data/test/app/controllers/projects_controller.rb +3 -0
  66. data/test/app/controllers/somethings_controller.rb +3 -0
  67. data/test/app/controllers/tags_controller.rb +13 -0
  68. data/test/app/controllers/users_controller.rb +12 -0
  69. data/test/app/helpers/accounts_helper.rb +2 -0
  70. data/test/app/helpers/application_helper.rb +3 -0
  71. data/test/app/helpers/cms/products_helper.rb +2 -0
  72. data/test/app/helpers/comments_helper.rb +2 -0
  73. data/test/app/helpers/images_helper.rb +2 -0
  74. data/test/app/helpers/options_helper.rb +2 -0
  75. data/test/app/helpers/people_helper.rb +2 -0
  76. data/test/app/helpers/photos_helper.rb +2 -0
  77. data/test/app/helpers/posts_helper.rb +2 -0
  78. data/test/app/helpers/projects_helper.rb +2 -0
  79. data/test/app/helpers/somethings_helper.rb +2 -0
  80. data/test/app/helpers/tags_helper.rb +2 -0
  81. data/test/app/helpers/users_helper.rb +2 -0
  82. data/test/app/models/account.rb +4 -0
  83. data/test/app/models/comment.rb +3 -0
  84. data/test/app/models/image.rb +3 -0
  85. data/test/app/models/option.rb +3 -0
  86. data/test/app/models/personnel.rb +3 -0
  87. data/test/app/models/photo.rb +5 -0
  88. data/test/app/models/post.rb +3 -0
  89. data/test/app/models/product.rb +3 -0
  90. data/test/app/models/project.rb +2 -0
  91. data/test/app/models/something.rb +2 -0
  92. data/test/app/models/tag.rb +3 -0
  93. data/test/app/models/user.rb +3 -0
  94. data/test/app/views/accounts/_form.html.erb +4 -0
  95. data/test/app/views/accounts/edit.html.erb +14 -0
  96. data/test/app/views/accounts/new.html.erb +12 -0
  97. data/test/app/views/accounts/show.html.erb +5 -0
  98. data/test/app/views/cms/options/edit.rhtml +17 -0
  99. data/test/app/views/cms/options/index.rhtml +20 -0
  100. data/test/app/views/cms/options/new.rhtml +16 -0
  101. data/test/app/views/cms/options/show.rhtml +8 -0
  102. data/test/app/views/cms/photos/edit.rhtml +17 -0
  103. data/test/app/views/cms/photos/index.rhtml +20 -0
  104. data/test/app/views/cms/photos/new.rhtml +16 -0
  105. data/test/app/views/cms/photos/show.rhtml +8 -0
  106. data/test/app/views/cms/products/edit.rhtml +17 -0
  107. data/test/app/views/cms/products/index.rhtml +20 -0
  108. data/test/app/views/cms/products/new.rhtml +16 -0
  109. data/test/app/views/cms/products/show.rhtml +8 -0
  110. data/test/app/views/comments/edit.rhtml +27 -0
  111. data/test/app/views/comments/index.rhtml +24 -0
  112. data/test/app/views/comments/new.rhtml +26 -0
  113. data/test/app/views/comments/show.rhtml +18 -0
  114. data/test/app/views/images/_form.html.erb +4 -0
  115. data/test/app/views/images/edit.html.erb +14 -0
  116. data/test/app/views/images/new.html.erb +12 -0
  117. data/test/app/views/layouts/application.rhtml +17 -0
  118. data/test/app/views/layouts/comments.rhtml +17 -0
  119. data/test/app/views/layouts/options.rhtml +17 -0
  120. data/test/app/views/layouts/people.rhtml +17 -0
  121. data/test/app/views/layouts/photos.rhtml +17 -0
  122. data/test/app/views/layouts/projects.rhtml +17 -0
  123. data/test/app/views/layouts/somethings.rhtml +17 -0
  124. data/test/app/views/layouts/tags.rhtml +17 -0
  125. data/test/app/views/options/_form.html.erb +8 -0
  126. data/test/app/views/options/edit.html.erb +16 -0
  127. data/test/app/views/options/index.html.erb +21 -0
  128. data/test/app/views/options/new.html.erb +12 -0
  129. data/test/app/views/options/show.html.erb +10 -0
  130. data/test/app/views/people/edit.rhtml +17 -0
  131. data/test/app/views/people/index.rhtml +20 -0
  132. data/test/app/views/people/new.rhtml +16 -0
  133. data/test/app/views/people/show.rhtml +8 -0
  134. data/test/app/views/photos/edit.rhtml +17 -0
  135. data/test/app/views/photos/index.rhtml +20 -0
  136. data/test/app/views/photos/new.rhtml +16 -0
  137. data/test/app/views/photos/show.rhtml +8 -0
  138. data/test/app/views/posts/edit.rhtml +22 -0
  139. data/test/app/views/posts/index.rhtml +22 -0
  140. data/test/app/views/posts/new.rhtml +21 -0
  141. data/test/app/views/posts/show.rhtml +13 -0
  142. data/test/app/views/projects/edit.rhtml +17 -0
  143. data/test/app/views/projects/index.rhtml +20 -0
  144. data/test/app/views/projects/new.rhtml +16 -0
  145. data/test/app/views/projects/show.rhtml +8 -0
  146. data/test/app/views/somethings/edit.rhtml +17 -0
  147. data/test/app/views/somethings/index.rhtml +20 -0
  148. data/test/app/views/somethings/new.rhtml +16 -0
  149. data/test/app/views/somethings/show.rhtml +8 -0
  150. data/test/app/views/tags/edit.rhtml +17 -0
  151. data/test/app/views/tags/index.rhtml +20 -0
  152. data/test/app/views/tags/index.rjs +0 -0
  153. data/test/app/views/tags/new.rhtml +16 -0
  154. data/test/app/views/tags/show.rhtml +8 -0
  155. data/test/app/views/users/edit.rhtml +17 -0
  156. data/test/app/views/users/index.rhtml +20 -0
  157. data/test/app/views/users/new.rhtml +16 -0
  158. data/test/app/views/users/show.rhtml +8 -0
  159. data/test/config/application.rb +41 -0
  160. data/test/config/boot.rb +6 -0
  161. data/test/config/database.yml +9 -0
  162. data/test/config/environment.rb +5 -0
  163. data/test/config/environments/development.rb +19 -0
  164. data/test/config/environments/test.rb +32 -0
  165. data/test/config/initializers/inflections.rb +14 -0
  166. data/test/config/initializers/secret_token.rb +7 -0
  167. data/test/config/initializers/session_store.rb +8 -0
  168. data/test/config/routes.rb +35 -0
  169. data/test/config.ru +4 -0
  170. data/test/db/migrate/001_create_posts.rb +12 -0
  171. data/test/db/migrate/002_create_products.rb +11 -0
  172. data/test/db/migrate/003_create_comments.rb +13 -0
  173. data/test/db/migrate/004_create_options.rb +13 -0
  174. data/test/db/migrate/005_create_photos.rb +11 -0
  175. data/test/db/migrate/006_create_tags.rb +17 -0
  176. data/test/db/migrate/007_create_somethings.rb +11 -0
  177. data/test/db/migrate/008_create_accounts.rb +11 -0
  178. data/test/db/migrate/009_add_account_id_to_photos.rb +9 -0
  179. data/test/db/migrate/010_create_projects.rb +11 -0
  180. data/test/db/migrate/011_create_images.rb +12 -0
  181. data/test/db/migrate/012_create_users.rb +11 -0
  182. data/test/db/migrate/013_create_personnel.rb +11 -0
  183. data/test/db/migrate/014_add_personnel_id_to_photos.rb +9 -0
  184. data/test/db/schema.rb +78 -0
  185. data/test/script/console +3 -0
  186. data/test/script/destroy +3 -0
  187. data/test/script/generate +3 -0
  188. data/test/script/rails +6 -0
  189. data/test/script/server +3 -0
  190. data/test/test/fixtures/accounts.yml +7 -0
  191. data/test/test/fixtures/comments.yml +11 -0
  192. data/test/test/fixtures/images.yml +6 -0
  193. data/test/test/fixtures/options.yml +9 -0
  194. data/test/test/fixtures/personnel.yml +5 -0
  195. data/test/test/fixtures/photos.yml +9 -0
  196. data/test/test/fixtures/photos_tags.yml +3 -0
  197. data/test/test/fixtures/posts.yml +9 -0
  198. data/test/test/fixtures/products.yml +7 -0
  199. data/test/test/fixtures/projects.yml +7 -0
  200. data/test/test/fixtures/somethings.yml +7 -0
  201. data/test/test/fixtures/tags.yml +7 -0
  202. data/test/test/fixtures/users.yml +5 -0
  203. data/test/test/functional/cms/options_controller_test.rb +140 -0
  204. data/test/test/functional/cms/photos_controller_test.rb +37 -0
  205. data/test/test/functional/cms/products_controller_test.rb +37 -0
  206. data/test/test/functional/comments_controller_test.rb +140 -0
  207. data/test/test/functional/images_controller_test.rb +30 -0
  208. data/test/test/functional/people_controller_test.rb +147 -0
  209. data/test/test/functional/photos_controller_test.rb +199 -0
  210. data/test/test/functional/posts_controller_test.rb +21 -0
  211. data/test/test/functional/projects_controller_test.rb +137 -0
  212. data/test/test/functional/somethings_controller_test.rb +15 -0
  213. data/test/test/functional/tags_controller_test.rb +53 -0
  214. data/test/test/functional/users_controller_test.rb +137 -0
  215. data/test/test/test_helper.rb +14 -0
  216. data/test/test/unit/accessors_test.rb +110 -0
  217. data/test/test/unit/account_test.rb +7 -0
  218. data/test/test/unit/action_options_test.rb +109 -0
  219. data/test/test/unit/base_test.rb +11 -0
  220. data/test/test/unit/comment_test.rb +10 -0
  221. data/test/test/unit/failable_action_options_test.rb +77 -0
  222. data/test/test/unit/helpers/current_objects_test.rb +133 -0
  223. data/test/test/unit/helpers/internal_test.rb +106 -0
  224. data/test/test/unit/helpers/nested_test.rb +86 -0
  225. data/test/test/unit/helpers/singleton_current_objects_test.rb +68 -0
  226. data/test/test/unit/helpers/singleton_nested_test.rb +77 -0
  227. data/test/test/unit/helpers/singleton_urls_test.rb +67 -0
  228. data/test/test/unit/helpers/urls_test.rb +75 -0
  229. data/test/test/unit/helpers_test.rb +25 -0
  230. data/test/test/unit/image_test.rb +7 -0
  231. data/test/test/unit/option_test.rb +10 -0
  232. data/test/test/unit/photo_test.rb +10 -0
  233. data/test/test/unit/post_test.rb +10 -0
  234. data/test/test/unit/project_test.rb +10 -0
  235. data/test/test/unit/response_collector_test.rb +49 -0
  236. data/test/test/unit/something_test.rb +10 -0
  237. data/test/test/unit/tag_test.rb +10 -0
  238. data/test/test/unit/urligence_test.rb +205 -0
  239. data/test/vendor/plugins/d +1 -0
  240. data/test/vendor/plugins/dynamic_form/MIT-LICENSE +20 -0
  241. data/test/vendor/plugins/dynamic_form/README +13 -0
  242. data/test/vendor/plugins/dynamic_form/Rakefile +10 -0
  243. data/test/vendor/plugins/dynamic_form/init.rb +5 -0
  244. data/test/vendor/plugins/dynamic_form/lib/action_view/helpers/dynamic_form.rb +300 -0
  245. data/test/vendor/plugins/dynamic_form/lib/action_view/locale/en.yml +8 -0
  246. data/test/vendor/plugins/dynamic_form/test/dynamic_form_i18n_test.rb +42 -0
  247. data/test/vendor/plugins/dynamic_form/test/dynamic_form_test.rb +370 -0
  248. data/test/vendor/plugins/dynamic_form/test/test_helper.rb +9 -0
  249. metadata +403 -0
@@ -0,0 +1,11 @@
1
+ class CreatePhotos < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :photos do |t|
4
+ t.column :title, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :photos
10
+ end
11
+ end
@@ -0,0 +1,17 @@
1
+ class CreateTags < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :tags do |t|
4
+ t.column :name, :string
5
+ end
6
+
7
+ create_table :photos_tags, :id => false do |t|
8
+ t.column :photo_id, :integer
9
+ t.column :tag_id, :integer
10
+ end
11
+ end
12
+
13
+ def self.down
14
+ drop_table :tags
15
+ drop_table :photos_tags
16
+ end
17
+ end
@@ -0,0 +1,11 @@
1
+ class CreateSomethings < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :somethings do |t|
4
+ t.column :title, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :somethings
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreateAccounts < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :accounts do |t|
4
+ t.column :name, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :accounts
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ class AddAccountIdToPhotos < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :photos, :account_id, :integer
4
+ end
5
+
6
+ def self.down
7
+ remove_column :photos, :account_id
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ class CreateProjects < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :projects do |t|
4
+ t.column :title, :string
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :projects
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ class CreateImages < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :images, :force => true do |t|
4
+ t.references :user
5
+ t.timestamps
6
+ end
7
+ end
8
+
9
+ def self.down
10
+ drop_table :images
11
+ end
12
+ end
@@ -0,0 +1,11 @@
1
+ class CreateUsers < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :users, :force => true do |t|
4
+ t.timestamps
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :users
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ class CreatePersonnel < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :personnel, :force => true do |t|
4
+ t.timestamps
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :personnel
10
+ end
11
+ end
@@ -0,0 +1,9 @@
1
+ class AddPersonnelIdToPhotos < ActiveRecord::Migration
2
+ def self.up
3
+ add_column :photos, :personnel_id, :integer
4
+ end
5
+
6
+ def self.down
7
+ remove_column :photos, :personnel_id
8
+ end
9
+ end
data/test/db/schema.rb ADDED
@@ -0,0 +1,78 @@
1
+ # This file is auto-generated from the current state of the database. Instead of editing this file,
2
+ # please use the migrations feature of Active Record to incrementally modify your database, and
3
+ # then regenerate this schema definition.
4
+ #
5
+ # Note that this schema.rb definition is the authoritative source for your database schema. If you need
6
+ # to create the application database on another system, you should be using db:schema:load, not running
7
+ # all the migrations from scratch. The latter is a flawed and unsustainable approach (the more migrations
8
+ # you'll amass, the slower it'll run and the greater likelihood for issues).
9
+ #
10
+ # It's strongly recommended to check this file into your version control system.
11
+
12
+ ActiveRecord::Schema.define(:version => 14) do
13
+
14
+ create_table "accounts", :force => true do |t|
15
+ t.string "name"
16
+ end
17
+
18
+ create_table "comments", :force => true do |t|
19
+ t.integer "post_id"
20
+ t.string "author"
21
+ t.text "body"
22
+ end
23
+
24
+ create_table "images", :force => true do |t|
25
+ t.integer "user_id"
26
+ t.datetime "created_at"
27
+ t.datetime "updated_at"
28
+ end
29
+
30
+ create_table "options", :force => true do |t|
31
+ t.integer "product_id"
32
+ t.integer "account_id"
33
+ t.string "title"
34
+ end
35
+
36
+ create_table "personnel", :force => true do |t|
37
+ t.datetime "created_at"
38
+ t.datetime "updated_at"
39
+ end
40
+
41
+ create_table "photos", :force => true do |t|
42
+ t.string "title"
43
+ t.integer "account_id"
44
+ t.integer "personnel_id"
45
+ end
46
+
47
+ create_table "photos_tags", :id => false, :force => true do |t|
48
+ t.integer "photo_id"
49
+ t.integer "tag_id"
50
+ end
51
+
52
+ create_table "posts", :force => true do |t|
53
+ t.string "title", :default => ""
54
+ t.text "body", :default => ""
55
+ end
56
+
57
+ create_table "products", :force => true do |t|
58
+ t.string "name"
59
+ end
60
+
61
+ create_table "projects", :force => true do |t|
62
+ t.string "title"
63
+ end
64
+
65
+ create_table "somethings", :force => true do |t|
66
+ t.string "title"
67
+ end
68
+
69
+ create_table "tags", :force => true do |t|
70
+ t.string "name"
71
+ end
72
+
73
+ create_table "users", :force => true do |t|
74
+ t.datetime "created_at"
75
+ t.datetime "updated_at"
76
+ end
77
+
78
+ end
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/console'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/destroy'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/generate'
data/test/script/rails ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env ruby
2
+ # This command will automatically be run when you run "rails" with Rails 3 gems installed from the root of your application.
3
+
4
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
5
+ require File.expand_path('../../config/boot', __FILE__)
6
+ require 'rails/commands'
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+ require File.dirname(__FILE__) + '/../config/boot'
3
+ require 'commands/server'
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ name: MyString
5
+ two:
6
+ id: 2
7
+ name: MyString
@@ -0,0 +1,11 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ post_id: 1
5
+ author: MyString
6
+ body: MyText
7
+ two:
8
+ id: 2
9
+ post_id: 1
10
+ author: MyString
11
+ body: MyText
@@ -0,0 +1,6 @@
1
+ one:
2
+ id: 1
3
+ user_id: 1
4
+ two:
5
+ id: 2
6
+ user_id: 1
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ product_id: 1
5
+ title: MyString
6
+ two:
7
+ id: 2
8
+ product_id: 2
9
+ title: MyString
@@ -0,0 +1,5 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ two:
5
+ id: 2
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ title: MyString
5
+ account_id: 1
6
+ two:
7
+ id: 2
8
+ title: MyString
9
+ account_id: 2
@@ -0,0 +1,3 @@
1
+ one_one:
2
+ photo_id: 1
3
+ tag_id: 1
@@ -0,0 +1,9 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ title: MyString
5
+ body: MyText
6
+ two:
7
+ id: 2
8
+ title: MyString
9
+ body: MyText
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ name: MyString
5
+ two:
6
+ id: 2
7
+ name: MyString
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ title: MyString
5
+ two:
6
+ id: 2
7
+ title: MyString
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ title: MyString
5
+ two:
6
+ id: 2
7
+ title: MyString
@@ -0,0 +1,7 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ name: MyString
5
+ two:
6
+ id: 2
7
+ name: MyString
@@ -0,0 +1,5 @@
1
+ # Read about fixtures at http://ar.rubyonrails.org/classes/Fixtures.html
2
+ one:
3
+ id: 1
4
+ two:
5
+ id: 2
@@ -0,0 +1,140 @@
1
+ require 'test_helper'
2
+
3
+ class Cms::OptionsControllerTest < ActionController::TestCase
4
+ def setup
5
+ @product = products :one
6
+ @option = options :one
7
+ end
8
+
9
+ context "on GET to index" do
10
+ setup do
11
+ get :index, :product_id => 1
12
+ end
13
+
14
+ should assign_to(:options).with_kind_of(Array)
15
+ should assign_to(:product).with_kind_of(Product)
16
+ should respond_with :success
17
+ should render_with_layout
18
+ should render_template :index
19
+ should_not set_the_flash
20
+ end
21
+
22
+ context "on GET to :show" do
23
+ setup do
24
+ get :show, :id => 1, :product_id => 1
25
+ end
26
+
27
+ should assign_to(:option).with_kind_of(Option)
28
+ should assign_to(:product).with_kind_of(Product)
29
+ should respond_with(:success)
30
+ should render_template(:show)
31
+ should_not set_the_flash
32
+ end
33
+
34
+ context "on GET to :new" do
35
+ setup do
36
+ get :new, :product_id => 1
37
+ end
38
+
39
+ should assign_to(:option).with_kind_of(Option)
40
+ should assign_to(:product).with_kind_of(Product)
41
+ should respond_with :success
42
+ should render_with_layout :application
43
+ should render_template :new
44
+ should_not set_the_flash
45
+ end
46
+
47
+ context "on POST to :create" do
48
+ context "that succeeds" do
49
+ setup do
50
+ post :create, :product_id => @product.id, :option => {:title => "My option"}, :product_id => 1
51
+ end
52
+
53
+ should assign_to(:option).with_kind_of(Option)
54
+ should redirect_to("product options index") { cms_product_option_url(@product, assigns(:option)) }
55
+ should set_the_flash.to "Successfully created!"
56
+
57
+ should "create the record" do
58
+ assert Option.find_by_title("My option")
59
+ end
60
+ end
61
+
62
+ context "that fails" do
63
+ setup do
64
+ Option.any_instance.stubs(:save).returns(false)
65
+ post :create, :product_id => @product.id, :option => {}
66
+ end
67
+
68
+ should assign_to(:option).with_kind_of(Option)
69
+ should respond_with :success
70
+ should render_with_layout :application
71
+ should render_template :new
72
+ should_not set_the_flash
73
+ end
74
+ end
75
+
76
+ context "on GET to :edit" do
77
+ setup do
78
+ get :edit, :product_id => @product.id, :id => @option.id
79
+ end
80
+
81
+ should assign_to(:option).with(@option)
82
+ should respond_with :success
83
+ should render_with_layout :application
84
+ should render_template :edit
85
+ should_not set_the_flash
86
+ end
87
+
88
+ context "on PUT to :update" do
89
+ context "that succeeds" do
90
+ setup do
91
+ put :update, :product_id => @product.id, :id => @option.id, :option => {:title => 'My new option'}
92
+ end
93
+
94
+ should assign_to(:option){ @option }
95
+ should redirect_to("option page") { cms_product_option_path(assigns(:option)) }
96
+ should set_the_flash.to "Successfully updated!"
97
+
98
+ should "update the record" do
99
+ @option.reload
100
+ assert_equal 'My new option', @option.title
101
+ end
102
+ end
103
+
104
+ context "that fails" do
105
+ setup do
106
+ Option.any_instance.stubs(:update_attributes).returns(false)
107
+ put :update, :product_id => @product.id, :id => @option.id, :option => {:title => 'My new option'}
108
+ end
109
+
110
+ should assign_to(:object).with_kind_of(Option)
111
+ should assign_to(:option).with_kind_of(Option)
112
+ should respond_with :success
113
+ should render_with_layout :application
114
+ should render_template :edit
115
+ should_not set_the_flash
116
+ end
117
+ end
118
+
119
+ context "on DELETE to :destroy" do
120
+ context "that succeeds" do
121
+ setup do
122
+ delete :destroy, :product_id => @product.id, :id => @option.id
123
+ end
124
+
125
+ should assign_to(:option){ @option }
126
+ should redirect_to("options index"){ cms_product_options_url }
127
+ should set_the_flash.to "Successfully removed!"
128
+ end
129
+
130
+ context "that fails" do
131
+ setup do
132
+ Option.any_instance.stubs(:destroy).returns(false)
133
+ delete :destroy, :product_id => @product.id, :id => @option.to_param
134
+ end
135
+
136
+ should respond_with(:redirect)
137
+ should redirect_to("option url") { cms_product_option_url @option }
138
+ end
139
+ end
140
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ class Cms::PhotosControllerTest < ActionController::TestCase
4
+ def setup
5
+ @person = personnel :one
6
+ @photo = photos :one
7
+ end
8
+
9
+ context "with personnel as parent" do
10
+ context "on get to :index" do
11
+ setup do
12
+ get :index, :personnel_id => 1
13
+ end
14
+
15
+ should respond_with :success
16
+ should render_template "index"
17
+ should assign_to :photos
18
+ should assign_to :personnel
19
+ should "scope photos to personnel" do
20
+ assert assigns(:photos).all? { |photo| photo.personnel.id == 1 }
21
+ end
22
+ end
23
+
24
+ context "on post to :create" do
25
+ setup do
26
+ post :create, :personnel_id => 1, :photo => {}
27
+ end
28
+
29
+ should redirect_to('cms_personnel_photo_path') { cms_personnel_photo_path(@person, assigns(:photo)) }
30
+ should assign_to :photo
31
+ should assign_to :personnel
32
+ should "scope photo to personel" do
33
+ assert personnel(:one), assigns(:photo).personnel
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ require 'test_helper'
2
+
3
+ class Cms::ProductsControllerTest < ActionController::TestCase
4
+ def setup
5
+ @product = products :one
6
+ end
7
+
8
+ context "on POST to :create" do
9
+ context "that succeeds" do
10
+ setup do
11
+ post :create, :product => {:name => "My Product"}
12
+ end
13
+
14
+ should assign_to(:product).with_kind_of(Product)
15
+ should redirect_to("products page") { cms_product_url(assigns(:product)) }
16
+ should set_the_flash.to "something"
17
+
18
+ should "create the record" do
19
+ assert Product.find_by_name("My Product")
20
+ end
21
+ end
22
+
23
+ context "that fails" do
24
+ setup do
25
+ Product.any_instance.stubs(:save).returns(false)
26
+ post :create, :product => {}
27
+ end
28
+
29
+ should assign_to(:product).with_kind_of(Product)
30
+ should respond_with :success
31
+ should render_with_layout :application
32
+ should render_template :new
33
+ should_not set_the_flash
34
+ end
35
+ end
36
+
37
+ end