typus 0.9.39 → 1.0.0.pre

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 (424) hide show
  1. data/CHANGELOG +104 -0
  2. data/Gemfile +17 -0
  3. data/Gemfile.lock +96 -0
  4. data/MIT-LICENSE +1 -1
  5. data/README.rdoc +45 -0
  6. data/Rakefile +19 -48
  7. data/app/controllers/admin/account_controller.rb +54 -0
  8. data/app/controllers/admin/dashboard_controller.rb +7 -0
  9. data/app/controllers/admin/resource_controller.rb +8 -0
  10. data/app/controllers/admin/resources_controller.rb +307 -0
  11. data/app/controllers/admin/session_controller.rb +38 -0
  12. data/app/controllers/admin_controller.rb +26 -0
  13. data/app/helpers/admin/dashboard_helper.rb +38 -0
  14. data/app/helpers/admin/filters_helper.rb +81 -0
  15. data/app/helpers/admin/form_helper.rb +68 -261
  16. data/app/helpers/admin/preview_helper.rb +48 -0
  17. data/app/helpers/admin/relationships_helper.rb +192 -0
  18. data/app/helpers/admin/resources_helper.rb +80 -0
  19. data/app/helpers/admin/search_helper.rb +19 -0
  20. data/app/helpers/admin/sidebar_helper.rb +32 -210
  21. data/app/helpers/admin/table_helper.rb +207 -200
  22. data/app/helpers/admin_helper.rb +56 -0
  23. data/app/mailers/admin/mailer.rb +13 -0
  24. data/app/models/admin/fake_user.rb +38 -0
  25. data/app/views/admin/account/forgot_password.html.erb +21 -0
  26. data/app/views/admin/account/new.html.erb +21 -0
  27. data/app/views/admin/dashboard/_sidebar.html.erb +3 -3
  28. data/app/views/admin/dashboard/show.html.erb +16 -0
  29. data/app/views/admin/dashboard/styles.html.erb +154 -0
  30. data/app/views/admin/helpers/_apps.html.erb +6 -0
  31. data/app/views/admin/helpers/_flash_message.html.erb +3 -0
  32. data/app/views/admin/helpers/_header.html.erb +7 -0
  33. data/app/views/admin/helpers/_login_info.html.erb +4 -0
  34. data/app/views/admin/helpers/_preview.html.erb +13 -0
  35. data/app/views/admin/helpers/dashboard/_applications.html.erb +32 -0
  36. data/app/views/admin/helpers/dashboard/_resources.html.erb +16 -0
  37. data/app/views/admin/helpers/filters/_filters.html.erb +31 -0
  38. data/app/views/admin/helpers/resources/_display_link_to_previous.html.erb +3 -0
  39. data/app/views/admin/helpers/resources/_pagination.html.erb +28 -0
  40. data/app/views/admin/helpers/search/_search.html.erb +12 -0
  41. data/app/views/admin/helpers/sidebar/_sidebar.html.erb +17 -0
  42. data/app/views/admin/helpers/table/_table.html.erb +22 -0
  43. data/app/views/{typus_mailer/reset_password_link.erb → admin/mailer/reset_password_link.text.erb} +2 -2
  44. data/{test/config/broken/empty.yml → app/views/admin/resources/_edit.html.erb} +0 -0
  45. data/app/views/admin/resources/_form.html.erb +26 -0
  46. data/{test/config/broken/empty_roles.yml → app/views/admin/resources/_index.html.erb} +0 -0
  47. data/{test/config/empty/empty_01.yml → app/views/admin/resources/_new.html.erb} +0 -0
  48. data/{test/config/empty/empty_01_roles.yml → app/views/admin/resources/_show.html.erb} +0 -0
  49. data/app/views/admin/resources/edit.html.erb +23 -21
  50. data/app/views/admin/resources/index.html.erb +31 -18
  51. data/app/views/admin/resources/new.html.erb +20 -18
  52. data/app/views/admin/resources/show.html.erb +29 -20
  53. data/app/views/admin/session/new.html.erb +26 -0
  54. data/app/views/admin/templates/_belongs_to.html.erb +4 -0
  55. data/app/views/admin/templates/_boolean.html.erb +4 -8
  56. data/app/views/admin/templates/_date.html.erb +9 -2
  57. data/app/views/admin/templates/_datetime.html.erb +9 -2
  58. data/app/views/admin/templates/_file.html.erb +20 -5
  59. data/app/views/admin/templates/_has_many.html.erb +24 -0
  60. data/app/views/admin/templates/_has_n.html.erb +17 -0
  61. data/{test/config/empty/empty_02.yml → app/views/admin/templates/_has_one.html.erb} +0 -0
  62. data/app/views/admin/templates/_password.html.erb +4 -2
  63. data/app/views/admin/templates/_relate_form.html.erb +4 -0
  64. data/app/views/admin/templates/_selector.html.erb +6 -18
  65. data/app/views/admin/templates/_string.html.erb +11 -10
  66. data/app/views/admin/templates/_text.html.erb +9 -2
  67. data/app/views/admin/templates/_time.html.erb +9 -2
  68. data/app/views/admin/templates/_tree.html.erb +4 -0
  69. data/app/views/layouts/admin/session.html.erb +44 -0
  70. data/app/views/layouts/admin.html.erb +45 -39
  71. data/config/available_locales/ca.yml +124 -0
  72. data/config/available_locales/ca_models.yml +16 -0
  73. data/config/{locales → available_locales}/de.yml +108 -89
  74. data/config/available_locales/de_models.yml +13 -0
  75. data/config/available_locales/es.yml +124 -0
  76. data/config/available_locales/es_models.yml +13 -0
  77. data/config/available_locales/fr.yml +124 -0
  78. data/config/available_locales/fr_models.yml +13 -0
  79. data/config/available_locales/hu.yml +124 -0
  80. data/config/available_locales/hu_models.yml +13 -0
  81. data/config/available_locales/it.yml +136 -0
  82. data/config/available_locales/it_models.yml +15 -0
  83. data/config/available_locales/language.yml.template +122 -0
  84. data/config/available_locales/language_models.yml.template +13 -0
  85. data/config/{locales → available_locales}/pt-BR.yml +97 -74
  86. data/config/available_locales/pt-BR_models.yml +13 -0
  87. data/config/{locales → available_locales}/ru.yml +107 -85
  88. data/config/available_locales/ru_models.yml +13 -0
  89. data/config/routes.rb +18 -11
  90. data/lib/generators/templates/config/initializers/typus.rb +26 -0
  91. data/lib/generators/templates/config/initializers/typus_authentication.rb +18 -0
  92. data/lib/generators/templates/config/initializers/typus_resources.rb +30 -0
  93. data/{generators/typus → lib/generators}/templates/config/typus/README +34 -16
  94. data/lib/generators/templates/config/typus/application.yml +5 -0
  95. data/lib/generators/templates/config/typus/application_roles.yml +6 -0
  96. data/lib/generators/templates/config/typus/typus.yml +17 -0
  97. data/lib/generators/templates/config/typus/typus_roles.yml +6 -0
  98. data/lib/generators/templates/controller.rb +4 -0
  99. data/lib/generators/templates/functional_test.rb +21 -0
  100. data/{generators/typus/templates/db/create_typus_users.rb → lib/generators/templates/migration.rb} +4 -4
  101. data/lib/generators/templates/model.rb +8 -0
  102. data/lib/generators/templates/model.yml +10 -0
  103. data/{generators/typus/templates/public/images/admin → lib/generators/templates/public/admin/images}/ui-icons.png +0 -0
  104. data/lib/generators/templates/public/admin/javascripts/application.js +6 -0
  105. data/lib/generators/templates/public/admin/javascripts/jquery-1.4.2.min.js +154 -0
  106. data/lib/generators/templates/public/admin/javascripts/jquery.rails.js +126 -0
  107. data/lib/generators/templates/public/admin/javascripts/jquery.searchField.js +91 -0
  108. data/lib/generators/templates/public/admin/stylesheets/application.css +11 -0
  109. data/lib/generators/templates/public/admin/stylesheets/screen.css +356 -0
  110. data/lib/generators/templates/public/admin/vendor/fancybox/blank.gif +0 -0
  111. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_close.png +0 -0
  112. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_loading.png +0 -0
  113. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_nav_left.png +0 -0
  114. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_nav_right.png +0 -0
  115. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_e.png +0 -0
  116. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_n.png +0 -0
  117. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_ne.png +0 -0
  118. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_nw.png +0 -0
  119. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_s.png +0 -0
  120. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_se.png +0 -0
  121. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_sw.png +0 -0
  122. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_shadow_w.png +0 -0
  123. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_left.png +0 -0
  124. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_main.png +0 -0
  125. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_title_over.png +0 -0
  126. data/{generators/typus/templates/public/images/admin → lib/generators/templates/public/admin/vendor}/fancybox/fancy_title_right.png +0 -0
  127. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox-x.png +0 -0
  128. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox-y.png +0 -0
  129. data/lib/generators/templates/public/admin/vendor/fancybox/fancybox.png +0 -0
  130. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.easing-1.3.pack.js +72 -0
  131. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.css +363 -0
  132. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.js +1077 -0
  133. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.pack.js +44 -0
  134. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.mousewheel-3.0.2.pack.js +13 -0
  135. data/lib/generators/templates/view.html.erb +9 -0
  136. data/lib/generators/typus/migration_generator.rb +85 -0
  137. data/lib/generators/typus/typus_generator.rb +190 -0
  138. data/lib/generators/typus/views_generator.rb +27 -0
  139. data/lib/support/active_record.rb +60 -0
  140. data/lib/support/array.rb +13 -0
  141. data/lib/{typus → support}/hash.rb +2 -2
  142. data/lib/{typus → support}/object.rb +2 -2
  143. data/lib/support/string.rb +47 -0
  144. data/lib/tasks/typus.rake +19 -0
  145. data/lib/typus/authentication.rb +146 -40
  146. data/lib/typus/configuration.rb +14 -49
  147. data/lib/typus/engine.rb +6 -0
  148. data/lib/typus/format.rb +41 -18
  149. data/lib/typus/orm/active_record.rb +378 -0
  150. data/lib/typus/resources.rb +57 -0
  151. data/lib/typus/user.rb +54 -37
  152. data/lib/typus/version.rb +3 -0
  153. data/lib/typus.rb +118 -80
  154. data/lib/vendor/paginator.rb +2 -2
  155. data/test/factories/assets.rb +5 -0
  156. data/test/factories/categories.rb +3 -0
  157. data/test/factories/comments.rb +6 -0
  158. data/test/factories/pages.rb +5 -0
  159. data/test/factories/pictures.rb +7 -0
  160. data/test/factories/posts.rb +6 -0
  161. data/test/factories/typus_users.rb +8 -0
  162. data/test/{config → fixtures/config}/broken/application.yml +0 -0
  163. data/test/{config → fixtures/config}/broken/application_roles.yml +0 -0
  164. data/test/{config/empty/empty_02_roles.yml → fixtures/config/broken/empty.yml} +0 -0
  165. data/test/fixtures/config/broken/empty_roles.yml +0 -0
  166. data/test/{config → fixtures/config}/broken/undefined.yml +0 -0
  167. data/test/{config → fixtures/config}/broken/undefined_roles.yml +0 -0
  168. data/test/{config → fixtures/config}/default/typus.yml +2 -1
  169. data/{generators/typus/templates/config/typus → test/fixtures/config/default}/typus_roles.yml +0 -0
  170. data/test/fixtures/config/empty/empty_01.yml +0 -0
  171. data/test/fixtures/config/empty/empty_01_roles.yml +0 -0
  172. data/test/fixtures/config/empty/empty_02.yml +0 -0
  173. data/test/fixtures/config/empty/empty_02_roles.yml +0 -0
  174. data/test/{config → fixtures/config}/locales/es.yml +0 -0
  175. data/test/fixtures/config/namespaced/application.yml +5 -0
  176. data/test/fixtures/config/namespaced/application_roles.yml +2 -0
  177. data/test/{config → fixtures/config}/ordered/001_roles.yml +0 -0
  178. data/test/{config → fixtures/config}/ordered/002_roles.yml +0 -0
  179. data/test/{config → fixtures/config}/unordered/app_one_roles.yml +0 -0
  180. data/test/{config → fixtures/config}/unordered/app_two_roles.yml +0 -0
  181. data/test/fixtures/config/working/application.yml +73 -0
  182. data/test/fixtures/config/working/application_roles.yml +24 -0
  183. data/{generators/typus/templates/config/typus → test/fixtures/config/working}/typus.yml +2 -1
  184. data/test/{config/default → fixtures/config/working}/typus_roles.yml +0 -0
  185. data/test/fixtures/rails_app/README +244 -0
  186. data/test/fixtures/rails_app/Rakefile +7 -0
  187. data/test/fixtures/rails_app/app/controllers/admin/assets_controller.rb +2 -0
  188. data/test/fixtures/rails_app/app/controllers/admin/categories_controller.rb +2 -0
  189. data/test/fixtures/rails_app/app/controllers/admin/comments_controller.rb +2 -0
  190. data/test/fixtures/rails_app/app/controllers/admin/pages_controller.rb +2 -0
  191. data/test/fixtures/rails_app/app/controllers/admin/pictures_controller.rb +2 -0
  192. data/test/fixtures/rails_app/app/controllers/admin/posts_controller.rb +2 -0
  193. data/test/fixtures/rails_app/app/controllers/admin/status_controller.rb +2 -0
  194. data/test/fixtures/rails_app/app/controllers/admin/typus_users_controller.rb +2 -0
  195. data/test/fixtures/rails_app/app/controllers/admin/watch_dog_controller.rb +2 -0
  196. data/test/fixtures/rails_app/app/controllers/application_controller.rb +4 -0
  197. data/test/fixtures/rails_app/app/helpers/application_helper.rb +2 -0
  198. data/test/fixtures/{app → rails_app/app}/models/asset.rb +1 -1
  199. data/test/fixtures/{app → rails_app/app}/models/category.rb +2 -2
  200. data/test/fixtures/{app → rails_app/app}/models/comment.rb +1 -1
  201. data/test/fixtures/{app → rails_app/app}/models/custom_user.rb +1 -1
  202. data/test/fixtures/{app → rails_app/app}/models/delayed/task.rb +2 -2
  203. data/test/fixtures/rails_app/app/models/page.rb +9 -0
  204. data/test/fixtures/rails_app/app/models/picture.rb +6 -0
  205. data/test/fixtures/{app → rails_app/app}/models/post.rb +6 -6
  206. data/test/fixtures/rails_app/app/models/typus_user.rb +8 -0
  207. data/test/fixtures/{app → rails_app/app}/models/view.rb +1 -1
  208. data/test/fixtures/rails_app/app/views/admin/categories/_form.html.erb +1 -0
  209. data/test/fixtures/rails_app/app/views/admin/dashboard/_sidebar.html.erb +1 -0
  210. data/test/fixtures/rails_app/app/views/admin/mailer/reset_password_link.text.erb +6 -0
  211. data/test/fixtures/rails_app/app/views/admin/posts/_edit.html.erb +1 -0
  212. data/test/fixtures/rails_app/app/views/admin/posts/_index.html.erb +1 -0
  213. data/test/fixtures/rails_app/app/views/admin/posts/_new.html.erb +1 -0
  214. data/test/fixtures/rails_app/app/views/admin/posts/_show.html.erb +1 -0
  215. data/test/fixtures/rails_app/app/views/admin/posts/_sidebar.html.erb +1 -0
  216. data/test/fixtures/rails_app/app/views/admin/resources/_sidebar.html.erb +1 -0
  217. data/test/fixtures/rails_app/app/views/admin/status/index.html.erb +1 -0
  218. data/test/fixtures/rails_app/app/views/admin/templates/_datepicker.html.erb +1 -0
  219. data/test/fixtures/rails_app/app/views/layouts/application.html.erb +14 -0
  220. data/test/fixtures/rails_app/config/application.rb +50 -0
  221. data/test/fixtures/rails_app/config/boot.rb +13 -0
  222. data/test/fixtures/rails_app/config/database.yml +22 -0
  223. data/test/fixtures/rails_app/config/environment.rb +5 -0
  224. data/test/fixtures/rails_app/config/environments/development.rb +19 -0
  225. data/test/fixtures/rails_app/config/environments/production.rb +42 -0
  226. data/test/fixtures/rails_app/config/environments/test.rb +34 -0
  227. data/test/fixtures/rails_app/config/initializers/acts_as_list.rb +258 -0
  228. data/test/fixtures/rails_app/config/initializers/acts_as_tree.rb +98 -0
  229. data/test/fixtures/rails_app/config/initializers/backtrace_silencers.rb +7 -0
  230. data/test/fixtures/rails_app/config/initializers/inflections.rb +10 -0
  231. data/test/fixtures/rails_app/config/initializers/mime_types.rb +5 -0
  232. data/test/fixtures/rails_app/config/initializers/secret_token.rb +7 -0
  233. data/test/fixtures/rails_app/config/initializers/session_store.rb +8 -0
  234. data/test/fixtures/rails_app/config/initializers/typus.rb +6 -0
  235. data/test/fixtures/rails_app/config/locales/en.yml +5 -0
  236. data/test/fixtures/rails_app/config/routes.rb +8 -0
  237. data/test/{config/working → fixtures/rails_app/config/typus}/application.yml +11 -9
  238. data/test/{config/working → fixtures/rails_app/config/typus}/application_roles.yml +0 -0
  239. data/{generators/typus_update_schema_to_01/templates/config → test/fixtures/rails_app/config/typus}/typus.yml +0 -0
  240. data/test/{config/working → fixtures/rails_app/config/typus}/typus_roles.yml +0 -0
  241. data/test/fixtures/rails_app/config.ru +4 -0
  242. data/test/fixtures/rails_app/db/seeds.rb +7 -0
  243. data/test/fixtures/rails_app/db/test.sqlite3 +0 -0
  244. data/test/fixtures/rails_app/log/test.log +4268 -0
  245. data/test/fixtures/rails_app/public/404.html +26 -0
  246. data/test/fixtures/rails_app/public/422.html +26 -0
  247. data/test/fixtures/rails_app/public/500.html +26 -0
  248. data/test/fixtures/rails_app/public/favicon.ico +0 -0
  249. data/test/fixtures/rails_app/public/images/rails.png +0 -0
  250. data/test/fixtures/rails_app/public/index.html +279 -0
  251. data/test/fixtures/rails_app/public/javascripts/application.js +2 -0
  252. data/test/fixtures/rails_app/public/javascripts/controls.js +965 -0
  253. data/test/fixtures/rails_app/public/javascripts/dragdrop.js +974 -0
  254. data/test/fixtures/rails_app/public/javascripts/effects.js +1123 -0
  255. data/test/fixtures/rails_app/public/javascripts/prototype.js +4874 -0
  256. data/test/fixtures/rails_app/public/javascripts/rails.js +118 -0
  257. data/test/fixtures/rails_app/public/robots.txt +5 -0
  258. data/test/fixtures/rails_app/script/rails +9 -0
  259. data/test/fixtures/rails_app/tmp/export-posts-20100902120447.csv +2 -0
  260. data/test/fixtures/rails_app/tmp/export-posts-20100902120700.csv +2 -0
  261. data/test/functional/admin/account_controller_test.rb +90 -0
  262. data/test/functional/admin/dashboard_controller_http_basic_test.rb +24 -0
  263. data/test/functional/admin/dashboard_controller_none_test.rb +18 -0
  264. data/test/functional/admin/dashboard_controller_test.rb +106 -0
  265. data/test/functional/admin/resources_controller_assets_relationships.rb +59 -0
  266. data/test/functional/admin/resources_controller_categories_before_test.rb +10 -0
  267. data/test/functional/admin/resources_controller_categories_lists_test.rb +44 -0
  268. data/test/functional/admin/resources_controller_categories_views_test.rb +10 -0
  269. data/test/functional/admin/resources_controller_comments_toggle_test.rb +21 -0
  270. data/test/functional/admin/{master_controller_posts_before_test.rb → resources_controller_posts_before_test.rb} +3 -3
  271. data/test/functional/admin/resources_controller_posts_crud_custom_test.rb +27 -0
  272. data/test/functional/admin/resources_controller_posts_crud_test.rb +44 -0
  273. data/test/functional/admin/resources_controller_posts_formats_test.rb +39 -0
  274. data/test/functional/admin/resources_controller_posts_forms_test.rb +58 -0
  275. data/test/functional/admin/resources_controller_posts_permissions_test.rb +100 -0
  276. data/test/functional/admin/{master_controller_posts_relationships_test.rb → resources_controller_posts_relationships_test.rb} +25 -20
  277. data/test/functional/admin/resources_controller_posts_roles.rb +52 -0
  278. data/test/functional/admin/resources_controller_posts_views_test.rb +143 -0
  279. data/test/functional/admin/resources_controller_tableless_resource_test.rb +51 -0
  280. data/test/functional/admin/resources_controller_typus_users_test.rb +159 -0
  281. data/test/functional/admin/session_controller_test.rb +85 -0
  282. data/test/helpers/admin/dashboard_helper_test.rb +42 -0
  283. data/test/helpers/admin/form_helper_test.rb +52 -276
  284. data/test/helpers/admin/resources_helper_test.rb +52 -0
  285. data/test/helpers/admin/sidebar_helper_test.rb +133 -224
  286. data/test/helpers/admin/table_helper_test.rb +136 -144
  287. data/test/helpers/admin_helper_test.rb +69 -0
  288. data/test/lib/support/active_record_test.rb +35 -0
  289. data/test/lib/support/array_test.rb +15 -0
  290. data/test/lib/support/hash_test.rb +11 -0
  291. data/test/lib/support/string_test.rb +48 -0
  292. data/test/lib/typus/active_record_test.rb +385 -0
  293. data/test/lib/typus/configuration_test.rb +52 -0
  294. data/test/lib/typus/resource_test.rb +17 -0
  295. data/test/lib/typus/routes_test.rb +29 -0
  296. data/test/lib/typus_test.rb +72 -40
  297. data/test/{vendor → lib/vendor}/paginator_test.rb +7 -4
  298. data/test/schema.rb +28 -3
  299. data/test/test_helper.rb +29 -0
  300. data/test/unit/admin/mailer_test.rb +32 -0
  301. data/test/unit/typus_user_roles_test.rb +69 -61
  302. data/test/unit/typus_user_test.rb +56 -143
  303. data/typus.gemspec +18 -276
  304. metadata +305 -231
  305. data/.gitignore +0 -1
  306. data/AUTHORS.md +0 -34
  307. data/CHANGES +0 -3
  308. data/README.md +0 -75
  309. data/VERSION +0 -1
  310. data/app/controllers/admin/master_controller.rb +0 -394
  311. data/app/controllers/typus_controller.rb +0 -152
  312. data/app/helpers/admin/master_helper.rb +0 -104
  313. data/app/helpers/admin/public_helper.rb +0 -27
  314. data/app/helpers/typus_helper.rb +0 -181
  315. data/app/models/typus_mailer.rb +0 -14
  316. data/app/models/typus_user.rb +0 -5
  317. data/app/views/admin/shared/_feedback.html.erb +0 -6
  318. data/app/views/admin/shared/_footer.html.erb +0 -2
  319. data/app/views/admin/shared/_pagination.html.erb +0 -28
  320. data/app/views/admin/templates/_tiny_mce.html.erb +0 -2
  321. data/app/views/layouts/typus.html.erb +0 -29
  322. data/app/views/typus/dashboard.html.erb +0 -9
  323. data/app/views/typus/recover_password.html.erb +0 -7
  324. data/app/views/typus/reset_password.html.erb +0 -15
  325. data/app/views/typus/sign_in.html.erb +0 -9
  326. data/app/views/typus/sign_up.html.erb +0 -7
  327. data/config/locales/es.yml +0 -105
  328. data/config/locales/fr.yml +0 -98
  329. data/config/locales/language.yml.template +0 -106
  330. data/generators/typus/templates/auto/index.html.erb +0 -11
  331. data/generators/typus/templates/auto/resource_controller.rb.erb +0 -15
  332. data/generators/typus/templates/auto/resource_controller_test.rb.erb +0 -11
  333. data/generators/typus/templates/auto/resources_controller.rb.erb +0 -37
  334. data/generators/typus/templates/config/initializers/typus.rb +0 -34
  335. data/generators/typus/templates/config/typus/application.yml +0 -6
  336. data/generators/typus/templates/config/typus/application_roles.yml +0 -23
  337. data/generators/typus/templates/lib/tasks/typus_tasks.rake +0 -32
  338. data/generators/typus/templates/public/images/admin/fancybox/fancy_closebox.png +0 -0
  339. data/generators/typus/templates/public/images/admin/fancybox/fancy_left.png +0 -0
  340. data/generators/typus/templates/public/images/admin/fancybox/fancy_progress.png +0 -0
  341. data/generators/typus/templates/public/images/admin/fancybox/fancy_right.png +0 -0
  342. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_e.png +0 -0
  343. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_n.png +0 -0
  344. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_ne.png +0 -0
  345. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_nw.png +0 -0
  346. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_s.png +0 -0
  347. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_se.png +0 -0
  348. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_sw.png +0 -0
  349. data/generators/typus/templates/public/images/admin/fancybox/fancy_shadow_w.png +0 -0
  350. data/generators/typus/templates/public/images/admin/fancybox/fancy_title_left.png +0 -0
  351. data/generators/typus/templates/public/images/admin/fancybox/fancy_title_main.png +0 -0
  352. data/generators/typus/templates/public/javascripts/admin/application.js +0 -14
  353. data/generators/typus/templates/public/javascripts/admin/jquery-1.3.2.min.js +0 -19
  354. data/generators/typus/templates/public/javascripts/admin/jquery.fancybox-1.2.1.min.js +0 -9
  355. data/generators/typus/templates/public/stylesheets/admin/jquery.fancybox.css +0 -315
  356. data/generators/typus/templates/public/stylesheets/admin/reset.css +0 -68
  357. data/generators/typus/templates/public/stylesheets/admin/screen.css +0 -361
  358. data/generators/typus/typus_generator.rb +0 -191
  359. data/generators/typus_update_schema_to_01/templates/migration.rb +0 -11
  360. data/generators/typus_update_schema_to_01/typus_update_schema_to_01_generator.rb +0 -19
  361. data/generators/typus_update_schema_to_02/templates/migration.rb +0 -11
  362. data/generators/typus_update_schema_to_02/typus_update_schema_to_02_generator.rb +0 -11
  363. data/lib/typus/active_record.rb +0 -323
  364. data/lib/typus/extensions/routes.rb +0 -15
  365. data/lib/typus/extensions/routes_hack.rb +0 -15
  366. data/lib/typus/preferences.rb +0 -11
  367. data/lib/typus/preview.rb +0 -76
  368. data/lib/typus/quick_edit.rb +0 -40
  369. data/lib/typus/reloader.rb +0 -14
  370. data/lib/typus/string.rb +0 -27
  371. data/lib/vendor/active_record.rb +0 -15
  372. data/lib/vendor/rss_parser.rb +0 -20
  373. data/rails/init.rb +0 -3
  374. data/tasks/typus_tasks.rake +0 -32
  375. data/test/config/working/typus.yml +0 -12
  376. data/test/fixtures/app/controllers/admin/assets_controller.rb +0 -2
  377. data/test/fixtures/app/controllers/admin/categories_controller.rb +0 -2
  378. data/test/fixtures/app/controllers/admin/comments_controller.rb +0 -2
  379. data/test/fixtures/app/controllers/admin/pages_controller.rb +0 -2
  380. data/test/fixtures/app/controllers/admin/posts_controller.rb +0 -2
  381. data/test/fixtures/app/controllers/admin/status_controller.rb +0 -6
  382. data/test/fixtures/app/controllers/admin/typus_users_controller.rb +0 -2
  383. data/test/fixtures/app/controllers/admin/watch_dog_controller.rb +0 -6
  384. data/test/fixtures/app/models/page.rb +0 -5
  385. data/test/fixtures/app/views/admin/dashboard/_content.html.erb +0 -1
  386. data/test/fixtures/app/views/admin/dashboard/_sidebar.html.erb +0 -1
  387. data/test/fixtures/app/views/admin/posts/_edit.html.erb +0 -1
  388. data/test/fixtures/app/views/admin/posts/_index.html.erb +0 -1
  389. data/test/fixtures/app/views/admin/posts/_new.html.erb +0 -1
  390. data/test/fixtures/app/views/admin/posts/_show.html.erb +0 -1
  391. data/test/fixtures/app/views/admin/posts/_sidebar.html.erb +0 -1
  392. data/test/fixtures/app/views/admin/resources/_sidebar.html.erb +0 -1
  393. data/test/fixtures/app/views/admin/shared/_footer.html.erb +0 -1
  394. data/test/fixtures/app/views/admin/status/index.html.erb +0 -1
  395. data/test/fixtures/app/views/admin/templates/_datepicker.html.erb +0 -1
  396. data/test/fixtures/assets.yml +0 -11
  397. data/test/fixtures/categories.yml +0 -14
  398. data/test/fixtures/comments.yml +0 -27
  399. data/test/fixtures/pages.yml +0 -41
  400. data/test/fixtures/posts.yml +0 -37
  401. data/test/fixtures/typus_users.yml +0 -59
  402. data/test/functional/admin/master_controller_assets_relationships.rb +0 -66
  403. data/test/functional/admin/master_controller_categories_lists_test.rb +0 -64
  404. data/test/functional/admin/master_controller_posts_crud_test.rb +0 -97
  405. data/test/functional/admin/master_controller_posts_formats_test.rb +0 -53
  406. data/test/functional/admin/master_controller_posts_permissions_test.rb +0 -127
  407. data/test/functional/admin/master_controller_posts_roles.rb +0 -50
  408. data/test/functional/admin/master_controller_posts_toggle_test.rb +0 -35
  409. data/test/functional/admin/master_controller_posts_views_test.rb +0 -209
  410. data/test/functional/admin/master_controller_tableless_resource_test.rb +0 -36
  411. data/test/functional/admin/master_controller_typus_users_test.rb +0 -211
  412. data/test/functional/typus_controller_test.rb +0 -342
  413. data/test/helper.rb +0 -51
  414. data/test/helpers/admin/master_helper_test.rb +0 -70
  415. data/test/helpers/admin/public_helper_test.rb +0 -26
  416. data/test/helpers/typus_helper_test.rb +0 -96
  417. data/test/lib/active_record_test.rb +0 -377
  418. data/test/lib/configuration_test.rb +0 -95
  419. data/test/lib/hash_test.rb +0 -11
  420. data/test/lib/routes_test.rb +0 -71
  421. data/test/lib/string_test.rb +0 -55
  422. data/test/unit/typus_mailer_test.rb +0 -29
  423. data/test/unit/typus_test.rb +0 -17
  424. data/test/vendor/active_record_test.rb +0 -18
@@ -0,0 +1,118 @@
1
+ document.observe("dom:loaded", function() {
2
+ function handleRemote(element) {
3
+ var method, url, params;
4
+
5
+ if (element.tagName.toLowerCase() === 'form') {
6
+ method = element.readAttribute('method') || 'post';
7
+ url = element.readAttribute('action');
8
+ params = element.serialize(true);
9
+ } else {
10
+ method = element.readAttribute('data-method') || 'get';
11
+ url = element.readAttribute('href');
12
+ params = {};
13
+ }
14
+
15
+ var event = element.fire("ajax:before");
16
+ if (event.stopped) return false;
17
+
18
+ new Ajax.Request(url, {
19
+ method: method,
20
+ parameters: params,
21
+ asynchronous: true,
22
+ evalScripts: true,
23
+
24
+ onLoading: function(request) { element.fire("ajax:loading", {request: request}); },
25
+ onLoaded: function(request) { element.fire("ajax:loaded", {request: request}); },
26
+ onInteractive: function(request) { element.fire("ajax:interactive", {request: request}); },
27
+ onComplete: function(request) { element.fire("ajax:complete", {request: request}); },
28
+ onSuccess: function(request) { element.fire("ajax:success", {request: request}); },
29
+ onFailure: function(request) { element.fire("ajax:failure", {request: request}); }
30
+ });
31
+
32
+ element.fire("ajax:after");
33
+ }
34
+
35
+ function handleMethod(element) {
36
+ var method, url, token_name, token;
37
+
38
+ method = element.readAttribute('data-method');
39
+ url = element.readAttribute('href');
40
+ csrf_param = $$('meta[name=csrf-param]').first();
41
+ csrf_token = $$('meta[name=csrf-token]').first();
42
+
43
+ var form = new Element('form', { method: "POST", action: url, style: "display: none;" });
44
+ element.parentNode.appendChild(form);
45
+
46
+ if (method != 'post') {
47
+ var field = new Element('input', { type: 'hidden', name: '_method', value: method });
48
+ form.appendChild(field);
49
+ }
50
+
51
+ if (csrf_param) {
52
+ var param = csrf_param.readAttribute('content');
53
+ var token = csrf_token.readAttribute('content');
54
+ var field = new Element('input', { type: 'hidden', name: param, value: token });
55
+ form.appendChild(field);
56
+ }
57
+
58
+ form.submit();
59
+ }
60
+
61
+ $(document.body).observe("click", function(event) {
62
+ var message = event.findElement().readAttribute('data-confirm');
63
+ if (message && !confirm(message)) {
64
+ event.stop();
65
+ return false;
66
+ }
67
+
68
+ var element = event.findElement("a[data-remote]");
69
+ if (element) {
70
+ handleRemote(element);
71
+ event.stop();
72
+ return true;
73
+ }
74
+
75
+ var element = event.findElement("a[data-method]");
76
+ if (element) {
77
+ handleMethod(element);
78
+ event.stop();
79
+ return true;
80
+ }
81
+ });
82
+
83
+ // TODO: I don't think submit bubbles in IE
84
+ $(document.body).observe("submit", function(event) {
85
+ var element = event.findElement(),
86
+ message = element.readAttribute('data-confirm');
87
+ if (message && !confirm(message)) {
88
+ event.stop();
89
+ return false;
90
+ }
91
+
92
+ var inputs = element.select("input[type=submit][data-disable-with]");
93
+ inputs.each(function(input) {
94
+ input.disabled = true;
95
+ input.writeAttribute('data-original-value', input.value);
96
+ input.value = input.readAttribute('data-disable-with');
97
+ });
98
+
99
+ var element = event.findElement("form[data-remote]");
100
+ if (element) {
101
+ handleRemote(element);
102
+ event.stop();
103
+ }
104
+ });
105
+
106
+ $(document.body).observe("ajax:after", function(event) {
107
+ var element = event.findElement();
108
+
109
+ if (element.tagName.toLowerCase() === 'form') {
110
+ var inputs = element.select("input[type=submit][disabled=true][data-disable-with]");
111
+ inputs.each(function(input) {
112
+ input.value = input.readAttribute('data-original-value');
113
+ input.writeAttribute('data-original-value', null);
114
+ input.disabled = false;
115
+ });
116
+ }
117
+ });
118
+ });
@@ -0,0 +1,5 @@
1
+ # See http://www.robotstxt.org/wc/norobots.html for documentation on how to use the robots.txt file
2
+ #
3
+ # To ban all spiders from the entire site uncomment the next two lines:
4
+ # User-Agent: *
5
+ # Disallow: /
@@ -0,0 +1,9 @@
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
+ ENV_PATH = File.expand_path('../../config/environment', __FILE__)
5
+ BOOT_PATH = File.expand_path('../../config/boot', __FILE__)
6
+ APP_PATH = File.expand_path('../../config/application', __FILE__)
7
+
8
+ require BOOT_PATH
9
+ require 'rails/commands'
@@ -0,0 +1,2 @@
1
+ title;status
2
+ Post;published
@@ -0,0 +1,2 @@
1
+ title;status
2
+ Post;published
@@ -0,0 +1,90 @@
1
+ require "test_helper"
2
+
3
+ class Admin::AccountControllerTest < ActionController::TestCase
4
+
5
+ context "No users" do
6
+
7
+ should "render new when there are not admin users" do
8
+ get :new
9
+
10
+ assert_response :success
11
+ assert_template "new"
12
+ assert_match "layouts/admin/session", @controller.inspect
13
+ assert_equal "Enter your email below to create the first user.", flash[:notice]
14
+ end
15
+
16
+ should "verify forgot_password redirects to new when there are no admin users" do
17
+ get :forgot_password
18
+
19
+ assert_response :redirect
20
+ assert_redirected_to new_admin_account_path
21
+ end
22
+
23
+ should "not sign_up invalid emails" do
24
+ post :create, :typus_user => { :email => "example.com" }
25
+
26
+ assert_response :redirect
27
+ assert_redirected_to :action => :new
28
+ assert flash.empty?
29
+ end
30
+
31
+ should "sign_up a valid email" do
32
+ assert_difference "TypusUser.count" do
33
+ post :create, :typus_user => { :email => "john@example.com" }
34
+ end
35
+
36
+ assert_response :redirect
37
+ assert_redirected_to :action => "show", :id => TypusUser.find_by_email("john@example.com").token
38
+ end
39
+
40
+ end
41
+
42
+ context "There are users" do
43
+
44
+ setup do
45
+ @typus_user = Factory(:typus_user)
46
+ end
47
+
48
+ should "new redirect new admin session when there are admin users" do
49
+ get :new
50
+ assert_response :redirect
51
+ assert_redirected_to new_admin_session_path
52
+ end
53
+
54
+ should "verify forgot_password is rendered when there are admin users" do
55
+ get :forgot_password
56
+
57
+ assert_response :success
58
+ assert_template "forgot_password"
59
+ end
60
+
61
+ should "not_send_recovery_password_link_to_unexisting_user" do
62
+ post :forgot_password, { :typus_user => { :email => "unexisting" } }
63
+
64
+ assert_response :success
65
+ assert flash.empty?
66
+ end
67
+
68
+ should "test_should_send_recovery_password_link_to_existing_user" do
69
+ post :forgot_password, { :typus_user => { :email => @typus_user.email } }
70
+
71
+ assert_response :redirect
72
+ assert_redirected_to new_admin_session_path
73
+ assert_equal "Password recovery link sent to your email.", flash[:notice]
74
+ end
75
+
76
+ should "test_should_create_admin_user_session_and_redirect_user_to_its_details" do
77
+ get :show, { :id => @typus_user.token }
78
+
79
+ assert_equal @typus_user.id, @request.session[:typus_user_id]
80
+ assert_response :redirect
81
+ assert_redirected_to :controller => "admin/typus_users", :action => "edit", :id => @typus_user.id
82
+ end
83
+
84
+ should "test_should_return_404_on_reset_passsword_if_token_is_not_valid" do
85
+ assert_raise(ActiveRecord::RecordNotFound) { get :show, { :id => "unexisting" } }
86
+ end
87
+
88
+ end
89
+
90
+ end
@@ -0,0 +1,24 @@
1
+ require "test_helper"
2
+
3
+ class Admin::DashboardControllerTest < ActionController::TestCase
4
+
5
+ context "When authentication is http_basic" do
6
+
7
+ setup do
8
+ Typus.stubs(:authentication).returns(:http_basic)
9
+ end
10
+
11
+ should "return a 401 message when no credentials sent" do
12
+ get :show
13
+ assert_response 401
14
+ end
15
+
16
+ should "authenticate user" do
17
+ @request.env['HTTP_AUTHORIZATION'] = 'Basic ' + Base64::encode64("admin:columbia")
18
+ get :show
19
+ assert_response :success
20
+ end
21
+
22
+ end
23
+
24
+ end
@@ -0,0 +1,18 @@
1
+ require "test_helper"
2
+
3
+ class Admin::DashboardControllerTest < ActionController::TestCase
4
+
5
+ context "When authentication is none" do
6
+
7
+ setup do
8
+ Typus.stubs(:authentication).returns(:none)
9
+ end
10
+
11
+ should "render dashboard" do
12
+ get :show
13
+ assert_response :success
14
+ end
15
+
16
+ end
17
+
18
+ end
@@ -0,0 +1,106 @@
1
+ require "test_helper"
2
+
3
+ class Admin::DashboardControllerTest < ActionController::TestCase
4
+
5
+ context "Not logged" do
6
+
7
+ setup do
8
+ @request.session[:typus_user_id] = nil
9
+ end
10
+
11
+ should "redirect to sign in when not signed in" do
12
+ get :show
13
+ assert_response :redirect
14
+ assert_redirected_to new_admin_session_path
15
+ end
16
+
17
+ end
18
+
19
+ should "verify_a_removed_role_cannot_sign_in" do
20
+ typus_user = Factory(:typus_user, :role => "removed")
21
+ @request.session[:typus_user_id] = typus_user.id
22
+
23
+ get :show
24
+
25
+ assert_response :redirect
26
+ assert_redirected_to new_admin_session_path
27
+ assert @request.session[:typus_user_id].nil?
28
+ assert_equal "Role does no longer exists.", flash[:notice]
29
+ end
30
+
31
+ context "Admin is logged and gets dashboard" do
32
+
33
+ setup do
34
+ @typus_user = Factory(:typus_user)
35
+ @request.session[:typus_user_id] = @typus_user.id
36
+ get :show
37
+ end
38
+
39
+ should "render dashboard" do
40
+ assert_response :success
41
+ assert_template "show"
42
+ end
43
+
44
+ should "render admin layout" do
45
+ assert_match "layouts/admin", @controller.inspect
46
+ end
47
+
48
+ should "verify title" do
49
+ assert_select "title", "Dashboard"
50
+ end
51
+
52
+ should "verify link to session sign out" do
53
+ link = %(href="/admin/session")
54
+ assert_match link, @response.body
55
+ end
56
+
57
+ should "verify link to edit user" do
58
+ link = %(href="/admin/typus_users/edit/#{@request.session[:typus_user_id]})
59
+ assert_match link, @response.body
60
+ end
61
+
62
+ should "verify resources have a link to new" do
63
+ %w( typus_users posts pages assets ).each { |r| assert_match "/admin/#{r}/new", @response.body }
64
+ end
65
+
66
+ should "verify tableless resources do have link to new" do
67
+ %w( statuses orders ).each { |r| assert_no_match /\/admin\/#{r}\n/, @response.body }
68
+ end
69
+
70
+ should "verify we can set our own partials" do
71
+ partials = %w( _sidebar.html.erb )
72
+ partials.each { |p| assert_match p, @response.body }
73
+ end
74
+
75
+ should "block users_on_the_fly" do
76
+ @typus_user.status = false
77
+ @typus_user.save
78
+
79
+ get :show
80
+
81
+ assert_response :redirect
82
+ assert_redirected_to new_admin_session_path
83
+ assert_equal "Typus user has been disabled.", flash[:notice]
84
+ assert @request.session[:typus_user_id].nil?
85
+ end
86
+
87
+ end
88
+
89
+ context "When designer is logged in" do
90
+
91
+ setup do
92
+ @request.session[:typus_user_id] = Factory(:typus_user, :role => "designer").id
93
+ get :show
94
+ end
95
+
96
+ should "not have links to new posts" do
97
+ assert_no_match /\/admin\/posts\/new/, @response.body
98
+ end
99
+
100
+ should "not have links to new typus_users" do
101
+ assert_no_match /\/admin\/typus_users\/new/, @response.body
102
+ end
103
+
104
+ end
105
+
106
+ end
@@ -0,0 +1,59 @@
1
+ require "test_helper"
2
+
3
+ class Admin::AssetsControllerTest < ActionController::TestCase
4
+
5
+ setup do
6
+ @request.session[:typus_user_id] = Factory(:typus_user).id
7
+ @post = Factory(:post)
8
+ end
9
+
10
+ should "verify polymorphic relationship message" do
11
+ get :new, { :back_to => "/admin/posts/#{@post.id}/edit",
12
+ :resource => @post.class.name, :resource_id => @post.id }
13
+
14
+ assert_select 'body div#flash' do
15
+ assert_select 'p', "You're adding a new Asset to Post. Do you want to cancel it?"
16
+ assert_select 'a', "Do you want to cancel it?"
17
+ end
18
+ end
19
+
20
+ should "create a polymorphic relationship" do
21
+ assert_difference('post_.assets.count') do
22
+ post :create, { :back_to => "/admin/posts/edit/#{@post.id}",
23
+ :resource => @post.class.name,
24
+ :resource_id => @post.id }
25
+ end
26
+
27
+ assert_response :redirect
28
+ assert_redirected_to '/admin/posts/edit/1#assets'
29
+ assert_equal "Asset successfully assigned to Post.", flash[:notice]
30
+ end
31
+
32
+ should "render edit and verify message on polymorphic relationship" do
33
+ asset = Factory(:asset)
34
+
35
+ get :edit, { :id => asset.id,
36
+ :back_to => "/admin/posts/#{@post.id}/edit",
37
+ :resource => @post.class.name, :resource_id => @post.id }
38
+
39
+ assert_select 'body div#flash' do
40
+ assert_select 'p', "You're updating a Asset for Post. Do you want to cancel it?"
41
+ assert_select 'a', "Do you want to cancel it?"
42
+ end
43
+ end
44
+
45
+ should "return to back_to url" do
46
+ Typus::Resources.expects(:action_after_save).returns(:edit)
47
+ asset = assets(:first)
48
+
49
+ post :update, { :back_to => "/admin/posts/#{@post.id}/edit",
50
+ :resource => @post.class.name,
51
+ :resource_id => @post.id,
52
+ :id => asset.id }
53
+
54
+ assert_response :redirect
55
+ assert_redirected_to '/admin/posts/1/edit#assets'
56
+ assert_equal "Asset successfully updated.", flash[:notice]
57
+ end
58
+
59
+ end
@@ -0,0 +1,10 @@
1
+ require "test/test_helper"
2
+
3
+ class Admin::CategoriesControllerTest < ActionController::TestCase
4
+
5
+ setup do
6
+ @request.session[:typus_user_id] = Factory(:typus_user).id
7
+ @request.env['HTTP_REFERER'] = '/admin/categories'
8
+ end
9
+
10
+ end
@@ -0,0 +1,44 @@
1
+ require "test_helper"
2
+
3
+ class Admin::CategoriesControllerTest < ActionController::TestCase
4
+
5
+ setup do
6
+ @first_category = Factory(:category, :position => 1)
7
+ @second_category = Factory(:category, :position => 2)
8
+ end
9
+
10
+ should "verify referer" do
11
+ get :position, { :id => @first_category.id, :go => 'move_lower' }
12
+ assert_response :redirect
13
+ assert_redirected_to @request.env['HTTP_REFERER']
14
+ end
15
+
16
+ should "position item one step down" do
17
+ get :position, { :id => @first_category.id, :go => 'move_lower' }
18
+
19
+ assert_equal "Record moved lower.", flash[:notice]
20
+ assert_equal 2, @first_category.reload.position
21
+ assert_equal 1, @second_category.reload.position
22
+ end
23
+
24
+ should "position item one step up" do
25
+ get :position, { :id => @second_category.id, :go => 'move_higher' }
26
+
27
+ assert_equal "Record moved higher.", flash[:notice]
28
+ assert_equal 2, @first_category.reload.position
29
+ assert_equal 1, @second_category.reload.position
30
+ end
31
+
32
+ should "position top item to bottom" do
33
+ get :position, { :id => @first_category.id, :go => 'move_to_bottom' }
34
+ assert_equal "Record moved to bottom.", flash[:notice]
35
+ assert_equal 2, @first_category.reload.position
36
+ end
37
+
38
+ should "position bottom item to top" do
39
+ get :position, { :id => @second_category.id, :go => 'move_to_top' }
40
+ assert_equal "Record moved to top.", flash[:notice]
41
+ assert_equal 1, @second_category.reload.position
42
+ end
43
+
44
+ end
@@ -0,0 +1,10 @@
1
+ require "test_helper"
2
+
3
+ class Admin::CategoriesControllerTest < ActionController::TestCase
4
+
5
+ should "verify form partial can overwrited by model" do
6
+ get :new
7
+ assert_match "categories#_form.html.erb", @response.body
8
+ end
9
+
10
+ end
@@ -0,0 +1,21 @@
1
+ require "test_helper"
2
+
3
+ class Admin::CommentsControllerTest < ActionController::TestCase
4
+
5
+ setup do
6
+ @typus_user = Factory(:typus_user)
7
+ @request.session[:typus_user_id] = @typus_user.id
8
+ @comment = Factory(:comment)
9
+ @request.env['HTTP_REFERER'] = "/admin/comments"
10
+ end
11
+
12
+ should "toggle" do
13
+ get :toggle, { :id => @comment.id, :field => "spam" }
14
+
15
+ assert_response :redirect
16
+ assert_redirected_to @request.env["HTTP_REFERER"]
17
+ assert_equal "Comment spam changed.", flash[:notice]
18
+ assert @comment.reload.spam
19
+ end
20
+
21
+ end
@@ -1,9 +1,9 @@
1
- require 'test/helper'
1
+ require "test/test_helper"
2
2
 
3
3
  class Admin::PostsControllerTest < ActionController::TestCase
4
4
 
5
- def setup
6
- @typus_user = typus_users(:admin)
5
+ setup do
6
+ @typus_user = Factory(:typus_user)
7
7
  @request.session[:typus_user_id] = @typus_user.id
8
8
  end
9
9
 
@@ -0,0 +1,27 @@
1
+ require "test_helper"
2
+
3
+ class Admin::PostsControllerTest < ActionController::TestCase
4
+
5
+ context "Overwrite action_after_save" do
6
+
7
+ setup do
8
+ Typus::Resources.expects(:action_after_save).returns("index")
9
+ end
10
+
11
+ should "create an item and redirect to index" do
12
+ assert_difference 'Post.count' do
13
+ post :create, { :post => { :title => 'This is another title', :body => 'Body' } }
14
+ assert_response :redirect
15
+ assert_redirected_to :action => 'index'
16
+ end
17
+ end
18
+
19
+ should "update an item and redirect to index" do
20
+ post :update, { :id => Factory(:post).id, :title => 'Updated' }
21
+ assert_response :redirect
22
+ assert_redirected_to :action => 'index'
23
+ end
24
+
25
+ end
26
+
27
+ end
@@ -0,0 +1,44 @@
1
+ require "test_helper"
2
+
3
+ class Admin::PostsControllerTest < ActionController::TestCase
4
+
5
+ should "render index" do
6
+ get :index
7
+ assert_response :success
8
+ assert_template 'index'
9
+ end
10
+
11
+ should "render new" do
12
+ get :new
13
+ assert_response :success
14
+ assert_template 'new'
15
+ end
16
+
17
+ should "create" do
18
+ assert_difference 'Post.count' do
19
+ post :create, { :post => { :title => 'This is another title', :body => 'Body' } }
20
+ assert_response :redirect
21
+ assert_redirected_to :controller => 'admin/posts', :action => 'edit', :id => Post.last
22
+ end
23
+ end
24
+
25
+ should "render show" do
26
+ get :show, { :id => Factory(:post).id }
27
+ assert_response :success
28
+ assert_template 'show'
29
+ end
30
+
31
+ should "render edit" do
32
+ get :edit, { :id => Factory(:post).id }
33
+ assert_response :success
34
+ assert_template 'edit'
35
+ end
36
+
37
+ should "update" do
38
+ _post = Factory(:post)
39
+ post :update, { :id => _post.id, :title => 'Updated' }
40
+ assert_response :redirect
41
+ assert_redirected_to :controller => 'admin/posts', :action => 'edit', :id => _post.id
42
+ end
43
+
44
+ end
@@ -0,0 +1,39 @@
1
+ require "test_helper"
2
+
3
+ class Admin::PostsControllerTest < ActionController::TestCase
4
+
5
+ setup do
6
+ Post.delete_all
7
+ @post = Factory(:post)
8
+ end
9
+
10
+ should "render index and return xml" do
11
+ expected = <<-RAW
12
+ <?xml version="1.0" encoding="UTF-8"?>
13
+ <posts type="array">
14
+ <post>
15
+ <title>#{@post.title}</title>
16
+ <status>#{@post.status}</status>
17
+ </post>
18
+ </posts>
19
+ RAW
20
+
21
+ get :index, :format => "xml"
22
+
23
+ assert_response :success
24
+ assert_equal expected, @response.body
25
+ end
26
+
27
+ should "render index and return csv" do
28
+ expected = <<-RAW
29
+ title;status
30
+ #{@post.title};#{@post.status}
31
+ RAW
32
+
33
+ get :index, :format => "csv"
34
+
35
+ assert_response :success
36
+ assert_equal expected, @response.body
37
+ end
38
+
39
+ end