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
@@ -1,377 +0,0 @@
1
- require 'test/helper'
2
-
3
- class ActiveRecordTest < ActiveSupport::TestCase
4
-
5
- def test_should_verify_model_fields_is_an_instance_of_active_support_ordered_hash
6
- assert TypusUser.model_fields.instance_of?(ActiveSupport::OrderedHash)
7
- end
8
-
9
- def test_should_return_model_fields_for_typus_user
10
- expected_fields = [[:id, :integer],
11
- [:first_name, :string],
12
- [:last_name, :string],
13
- [:role, :string],
14
- [:email, :string],
15
- [:status, :boolean],
16
- [:token, :string],
17
- [:salt, :string],
18
- [:crypted_password, :string],
19
- [:preferences, :string],
20
- [:created_at, :datetime],
21
- [:updated_at, :datetime]]
22
- assert_equal expected_fields.map { |i| i.first }, TypusUser.model_fields.keys
23
- assert_equal expected_fields.map { |i| i.last }, TypusUser.model_fields.values
24
- end
25
-
26
- def test_should_return_model_fields_for_post
27
- expected_fields = [[:id, :integer],
28
- [:title, :string],
29
- [:body, :text],
30
- [:status, :boolean],
31
- [:favorite_comment_id, :integer],
32
- [:created_at, :datetime],
33
- [:updated_at, :datetime],
34
- [:published_at, :datetime],
35
- [:typus_user_id, :integer]]
36
- assert_equal expected_fields.map { |i| i.first }, Post.model_fields.keys
37
- assert_equal expected_fields.map { |i| i.last }, Post.model_fields.values
38
- end
39
-
40
- def test_should_verify_model_relationships_is_an_instance_of_active_support_ordered_hash
41
- assert TypusUser.model_relationships.instance_of?(ActiveSupport::OrderedHash)
42
- end
43
-
44
- def test_should_return_model_relationships_for_post
45
- expected = [[:comments, :has_many],
46
- [:categories, :has_and_belongs_to_many],
47
- [:user, nil],
48
- [:assets, :has_many]]
49
- expected.each do |i|
50
- assert_equal i.last, Post.model_relationships[i.first]
51
- end
52
- end
53
-
54
- def test_should_return_description_of_a_model
55
- assert TypusUser.respond_to?(:typus_description)
56
- assert_equal "System Users Administration", TypusUser.typus_description
57
- end
58
-
59
- def test_should_return_typus_fields_for_list_for_typus_user
60
- expected_fields = [['email', :string],
61
- ['role', :selector],
62
- ['status', :boolean]]
63
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for('list').keys
64
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for('list').values
65
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for(:list).keys
66
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for(:list).values
67
- end
68
-
69
- def test_should_return_typus_fields_for_list_for_post
70
- expected_fields = [['title', :string],
71
- ['created_at', :datetime],
72
- ['status', :selector]]
73
- assert_equal expected_fields.map { |i| i.first }, Post.typus_fields_for('list').keys
74
- assert_equal expected_fields.map { |i| i.last }, Post.typus_fields_for('list').values
75
- assert_equal expected_fields.map { |i| i.first }, Post.typus_fields_for(:list).keys
76
- assert_equal expected_fields.map { |i| i.last }, Post.typus_fields_for(:list).values
77
- end
78
-
79
- def test_should_return_typus_fields_for_form_for_typus_user
80
- expected_fields = [['first_name', :string],
81
- ['last_name', :string],
82
- ['role', :selector],
83
- ['email', :string],
84
- ['password', :password],
85
- ['password_confirmation', :password]]
86
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for('form').keys
87
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for('form').values
88
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for(:form).keys
89
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for(:form).values
90
- end
91
-
92
- def test_should_return_typus_fields_for_a_model_without_configuration
93
- expected_fields = []
94
- klass = Class.new(ActiveRecord::Base)
95
- assert_equal expected_fields, klass.typus_fields_for(:form)
96
- assert_equal expected_fields, klass.typus_fields_for(:list)
97
- end
98
-
99
- def test_should_return_typus_fields_for_relationship_for_typus_user
100
- expected_fields = [['email', :string],
101
- ['role', :selector],
102
- ['status', :boolean]]
103
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for('relationship').keys
104
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for('relationship').values
105
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for(:relationship).keys
106
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for(:relationship).values
107
- end
108
-
109
- def test_should_return_all_fields_for_undefined_field_type_on_typus_user
110
- expected_fields = [['email', :string],
111
- ['role', :selector],
112
- ['status', :boolean]]
113
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for('undefined').keys
114
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for('undefined').values
115
- assert_equal expected_fields.map { |i| i.first }, TypusUser.typus_fields_for(:undefined).keys
116
- assert_equal expected_fields.map { |i| i.last }, TypusUser.typus_fields_for(:undefined).values
117
- end
118
-
119
- def test_should_return_filters_for_typus_user
120
- expected = [['status', :boolean],
121
- ['role', :string]]
122
- assert_equal 'status, role', Typus::Configuration.config['TypusUser']['filters']
123
- assert_equal expected.map { |i| i.first }, TypusUser.typus_filters.keys
124
- assert_equal expected.map { |i| i.last }, TypusUser.typus_filters.values
125
- end
126
-
127
- def test_should_return_post_typus_filters
128
- expected = [['status', :boolean],
129
- ['created_at', :datetime],
130
- ['user', nil],
131
- ['user_id', nil]]
132
- assert_equal expected.map { |i| i.first }.join(', '), Typus::Configuration.config['Post']['filters']
133
- assert_equal expected.map { |i| i.first }, Post.typus_filters.keys
134
- assert_equal expected.map { |i| i.last }, Post.typus_filters.values
135
- end
136
-
137
- def test_should_return_actions_on_list_for_typus_user
138
- assert TypusUser.typus_actions_for('list').empty?
139
- assert TypusUser.typus_actions_for(:list).empty?
140
- end
141
-
142
- def test_should_return_post_actions_on_index
143
- assert_equal %w( cleanup ), Post.typus_actions_for('index')
144
- assert_equal %w( cleanup ), Post.typus_actions_for(:index)
145
- end
146
-
147
- def test_should_return_post_actions_on_edit
148
- assert_equal %w( send_as_newsletter preview ), Post.typus_actions_for('edit')
149
- assert_equal %w( send_as_newsletter preview ), Post.typus_actions_for(:edit)
150
- end
151
-
152
- def test_should_return_field_options_for_post
153
- assert_equal [ :status ], Post.typus_field_options_for('selectors')
154
- assert_equal [ :status ], Post.typus_field_options_for(:selectors)
155
- assert_equal [ :permalink ], Post.typus_field_options_for('read_only')
156
- assert_equal [ :permalink ], Post.typus_field_options_for(:read_only)
157
- assert_equal [ :created_at ], Post.typus_field_options_for('auto_generated')
158
- assert_equal [ :created_at ], Post.typus_field_options_for(:auto_generated)
159
- end
160
-
161
- def test_should_return_options_for_post_and_page
162
-
163
- assert_equal 15, Post.typus_options_for(:form_rows)
164
- assert_equal 15, Post.typus_options_for('form_rows')
165
-
166
- assert_equal 25, Page.typus_options_for(:form_rows)
167
- assert_equal 25, Page.typus_options_for('form_rows')
168
-
169
- assert_equal 15, Asset.typus_options_for(:form_rows)
170
- assert_equal 15, Asset.typus_options_for('form_rows')
171
-
172
- assert_equal 15, TypusUser.typus_options_for(:form_rows)
173
- assert_equal 15, TypusUser.typus_options_for('form_rows')
174
-
175
- assert Page.typus_options_for(:on_header)
176
- assert !TypusUser.typus_options_for(:on_header)
177
-
178
- assert_nil TypusUser.typus_options_for(:unexisting)
179
-
180
- end
181
-
182
- def test_should_verify_typus_boolean_is_an_instance_of_active_support_ordered_hash
183
- assert TypusUser.typus_boolean.instance_of?(ActiveSupport::OrderedHash)
184
- end
185
-
186
- def test_should_return_booleans_for_typus_users
187
- assert_equal [ :true, :false ], TypusUser.typus_boolean('status').keys
188
- assert_equal [ "Active", "Inactive" ], TypusUser.typus_boolean('status').values
189
- assert_equal [ :true, :false ], TypusUser.typus_boolean(:status).keys
190
- assert_equal [ "Active", "Inactive" ], TypusUser.typus_boolean(:status).values
191
- end
192
-
193
- def test_should_return_default_booleans_for_typus_users
194
- assert_equal [ :true, :false ], TypusUser.typus_boolean.keys
195
- assert_equal [ "True", "False" ], TypusUser.typus_boolean.values
196
- end
197
-
198
- def test_should_return_booleans_for_post
199
- assert_equal [ :true, :false ], Post.typus_boolean('status').keys
200
- assert_equal [ "True", "False" ], Post.typus_boolean('status').values
201
- assert_equal [ :true, :false ], Post.typus_boolean(:status).keys
202
- assert_equal [ "True", "False" ], Post.typus_boolean(:status).values
203
- end
204
-
205
- def test_should_return_date_formats_for_post
206
- assert_equal :post_short, Post.typus_date_format('created_at')
207
- assert_equal :post_short, Post.typus_date_format(:created_at)
208
- assert_equal :db, Post.typus_date_format
209
- assert_equal :db, Post.typus_date_format('unknown')
210
- assert_equal :db, Post.typus_date_format(:unknown)
211
- end
212
-
213
- def test_should_return_defaults_for_post
214
- assert_equal %w( title ), Post.typus_defaults_for('search')
215
- assert_equal %w( title ), Post.typus_defaults_for(:search)
216
- assert_equal %w( title -created_at ), Post.typus_defaults_for('order_by')
217
- assert_equal %w( title -created_at ), Post.typus_defaults_for(:order_by)
218
- end
219
-
220
- def test_should_return_relationships_for_post
221
- assert_equal %w( assets categories comments views ), Post.typus_defaults_for('relationships')
222
- assert_equal %w( assets categories comments views ), Post.typus_defaults_for(:relationships)
223
- assert !Post.typus_defaults_for('relationships').empty?
224
- assert !Post.typus_defaults_for(:relationships).empty?
225
- end
226
-
227
- def test_should_return_order_by_for_model
228
- assert_equal "posts.title ASC, posts.created_at DESC", Post.typus_order_by
229
- assert_equal %w( title -created_at ), Post.typus_defaults_for('order_by')
230
- assert_equal %w( title -created_at ), Post.typus_defaults_for(:order_by)
231
- end
232
-
233
- def test_should_return_sql_conditions_on_search_for_typus_user
234
- expected = "(LOWER(first_name) LIKE '%francesc%' OR LOWER(last_name) LIKE '%francesc%' OR LOWER(email) LIKE '%francesc%' OR LOWER(role) LIKE '%francesc%')"
235
- params = { :search => 'francesc' }
236
- assert_equal expected, TypusUser.build_conditions(params).first
237
- params = { :search => 'Francesc' }
238
- assert_equal expected, TypusUser.build_conditions(params).first
239
- end
240
-
241
- def test_should_return_sql_conditions_on_search_and_filter_for_typus_user
242
-
243
- case ENV['DB']
244
- when /mysql/
245
- boolean_true = "(`typus_users`.`status` = 1)"
246
- boolean_false = "(`typus_users`.`status` = 0)"
247
- else
248
- boolean_true = "(\"typus_users\".\"status\" = 't')"
249
- boolean_false = "(\"typus_users\".\"status\" = 'f')"
250
- end
251
-
252
- expected = "((LOWER(first_name) LIKE '%francesc%' OR LOWER(last_name) LIKE '%francesc%' OR LOWER(email) LIKE '%francesc%' OR LOWER(role) LIKE '%francesc%')) AND #{boolean_true}"
253
- params = { :search => 'francesc', :status => 'true' }
254
- assert_equal expected, TypusUser.build_conditions(params).first
255
- params = { :search => 'francesc', :status => 'false' }
256
- assert_match /#{boolean_false}/, TypusUser.build_conditions(params).first
257
-
258
- end
259
-
260
- def test_should_return_sql_conditions_on_filtering_typus_users_by_status
261
-
262
- case ENV['DB']
263
- when /mysql/
264
- boolean_true = "(`typus_users`.`status` = 1)"
265
- boolean_false = "(`typus_users`.`status` = 0)"
266
- else
267
- boolean_true = "(\"typus_users\".\"status\" = 't')"
268
- boolean_false = "(\"typus_users\".\"status\" = 'f')"
269
- end
270
-
271
- params = { :status => 'true' }
272
- assert_equal boolean_true, TypusUser.build_conditions(params).first
273
- params = { :status => 'false' }
274
- assert_equal boolean_false, TypusUser.build_conditions(params).first
275
-
276
- end
277
-
278
- def test_should_return_sql_conditions_on_filtering_typus_users_by_created_at
279
-
280
- expected = case ENV['DB']
281
- when /postgresql/
282
- "(created_at BETWEEN E'#{Time.new.midnight.to_s(:db)}' AND E'#{Time.new.midnight.tomorrow.to_s(:db)}')"
283
- else
284
- "(created_at BETWEEN '#{Time.new.midnight.to_s(:db)}' AND '#{Time.new.midnight.tomorrow.to_s(:db)}')"
285
- end
286
- params = { :created_at => 'today' }
287
- assert_equal expected, TypusUser.build_conditions(params).first
288
-
289
- expected = case ENV['DB']
290
- when /postgresql/
291
- "(created_at BETWEEN E'#{3.days.ago.midnight.to_s(:db)}' AND E'#{Time.new.midnight.tomorrow.to_s(:db)}')"
292
- else
293
- "(created_at BETWEEN '#{3.days.ago.midnight.to_s(:db)}' AND '#{Time.new.midnight.tomorrow.to_s(:db)}')"
294
- end
295
- params = { :created_at => 'last_few_days' }
296
- assert_equal expected, TypusUser.build_conditions(params).first
297
-
298
- expected = case ENV['DB']
299
- when /postgresql/
300
- "(created_at BETWEEN E'#{6.days.ago.midnight.to_s(:db)}' AND E'#{Time.new.midnight.tomorrow.to_s(:db)}')"
301
- else
302
- "(created_at BETWEEN '#{6.days.ago.midnight.to_s(:db)}' AND '#{Time.new.midnight.tomorrow.to_s(:db)}')"
303
- end
304
- params = { :created_at => 'last_7_days' }
305
- assert_equal expected, TypusUser.build_conditions(params).first
306
-
307
-
308
- expected = case ENV['DB']
309
- when /postgresql/
310
- "(created_at BETWEEN E'#{Time.new.midnight.last_month.to_s(:db)}' AND E'#{Time.new.midnight.tomorrow.to_s(:db)}')"
311
- else
312
- "(created_at BETWEEN '#{Time.new.midnight.last_month.to_s(:db)}' AND '#{Time.new.midnight.tomorrow.to_s(:db)}')"
313
- end
314
- params = { :created_at => 'last_30_days' }
315
- assert_equal expected, TypusUser.build_conditions(params).first
316
-
317
- end
318
-
319
- def test_should_return_sql_conditions_on_filtering_posts_by_published_at
320
- expected = case ENV['DB']
321
- when /postgresql/
322
- "(published_at BETWEEN E'#{Time.new.midnight.to_s(:db)}' AND E'#{Time.new.midnight.tomorrow.to_s(:db)}')"
323
- else
324
- "(published_at BETWEEN '#{Time.new.midnight.to_s(:db)}' AND '#{Time.new.midnight.tomorrow.to_s(:db)}')"
325
- end
326
- params = { :published_at => 'today' }
327
- assert_equal expected, Post.build_conditions(params).first
328
- end
329
-
330
- def test_should_return_sql_conditions_on_filtering_posts_by_string
331
- expected = case ENV['DB']
332
- when /postgresql/
333
- "(\"typus_users\".\"role\" = E'admin')"
334
- when /mysql/
335
- "(`typus_users`.`role` = 'admin')"
336
- else
337
- "(\"typus_users\".\"role\" = 'admin')"
338
- end
339
- params = { :role => 'admin' }
340
- assert_equal expected, TypusUser.build_conditions(params).first
341
- end
342
-
343
- def test_should_verify_previous_and_next
344
- assert TypusUser.instance_methods.map { |i| i.to_sym }.include?(:previous_and_next)
345
- assert typus_users(:admin).previous_and_next.kind_of?(Array)
346
- end
347
-
348
- def test_should_verify_previous_and_next_works_without_conditions
349
- expected = [ typus_users(:admin), typus_users(:disabled_user) ]
350
- assert_equal expected, typus_users(:editor).previous_and_next
351
- end
352
-
353
- def test_should_verify_previous_and_next_works_with_conditions
354
- expected = [ typus_users(:editor), typus_users(:removed_role) ]
355
- conditions = { 'status' => 'true' }
356
- assert_equal expected, typus_users(:designer).previous_and_next(conditions)
357
- end
358
-
359
- def test_should_verify_typus_name_is_working_properly
360
-
361
- assert Category.new.respond_to?(:name)
362
- assert_equal 'First Category', categories(:first).typus_name
363
-
364
- assert !Page.new.respond_to?(:name)
365
- assert_equal 'Page#1', pages(:published).typus_name
366
-
367
- assert Comment.new.respond_to?(:name)
368
- assert_equal "John", comments(:first).typus_name
369
-
370
- end
371
-
372
- def test_should_verify_typus_user_id
373
- assert Post.typus_user_id?
374
- assert !TypusUser.typus_user_id?
375
- end
376
-
377
- end
@@ -1,95 +0,0 @@
1
- require 'test/helper'
2
-
3
- class ConfigurationTest < ActiveSupport::TestCase
4
-
5
- def test_should_verify_configuration_responds_to_options
6
- assert Typus::Configuration.respond_to?(:options)
7
- end
8
-
9
- def test_should_verify_application_wide_configuration_options
10
- initializer = "#{Rails.root}/config/initializers/typus.rb"
11
- return if File.exist?(initializer)
12
- assert_equal 'Typus', Typus::Configuration.options[:app_name]
13
- assert_equal 'vendor/plugins/typus/test/config/working', Typus::Configuration.options[:config_folder]
14
- assert_equal :en, Typus::Configuration.options[:default_locale]
15
- assert_equal 'admin@example.com', Typus::Configuration.options[:email]
16
- assert_equal :typus_preview, Typus::Configuration.options[:file_preview]
17
- assert_equal :typus_thumbnail, Typus::Configuration.options[:file_thumbnail]
18
- assert_equal false, Typus::Configuration.options[:recover_password]
19
- assert_equal 'typus_users', Typus::Configuration.options[:relationship]
20
- assert_equal 'admin', Typus::Configuration.options[:root]
21
- assert_equal false, Typus::Configuration.options[:ssl]
22
- assert_equal 'TypusUser', Typus::Configuration.options[:user_class_name]
23
- assert_equal 'typus_user_id', Typus::Configuration.options[:user_fk]
24
- end
25
-
26
- def test_should_verify_model_configuration_options
27
- initializer = "#{Rails.root}/config/initializers/typus.rb"
28
- return if File.exist?(initializer)
29
- assert_equal 'edit', Typus::Configuration.options[:default_action_on_item]
30
- assert_nil Typus::Configuration.options[:end_year]
31
- assert_equal 15, Typus::Configuration.options[:form_rows]
32
- assert_equal false, Typus::Configuration.options[:index_after_save]
33
- assert_equal 5, Typus::Configuration.options[:minute_step]
34
- assert_equal 'nil', Typus::Configuration.options[:nil]
35
- assert_equal false, Typus::Configuration.options[:on_header]
36
- assert_equal false, Typus::Configuration.options[:only_user_items]
37
- assert_equal 15, Typus::Configuration.options[:per_page]
38
- assert_equal 5, Typus::Configuration.options[:sidebar_selector]
39
- assert_nil Typus::Configuration.options[:start_year]
40
- assert_equal true, Typus::Configuration.options[:toggle]
41
- end
42
-
43
- def test_should_verify_typus_roles_is_loaded
44
- assert Typus::Configuration.respond_to?(:roles!)
45
- assert Typus::Configuration.roles!.kind_of?(Hash)
46
- end
47
-
48
- def test_should_verify_typus_config_file_is_loaded
49
- assert Typus::Configuration.respond_to?(:config!)
50
- assert Typus::Configuration.config!.kind_of?(Hash)
51
- end
52
-
53
- def test_should_load_configuration_files_from_config_broken
54
- options = { :config_folder => 'vendor/plugins/typus/test/config/broken' }
55
- Typus::Configuration.stubs(:options).returns(options)
56
- assert_not_equal Hash.new, Typus::Configuration.roles!
57
- assert_not_equal Hash.new, Typus::Configuration.config!
58
- end
59
-
60
- def test_should_load_configuration_files_from_config_empty
61
- options = { :config_folder => 'vendor/plugins/typus/test/config/empty' }
62
- Typus::Configuration.stubs(:options).returns(options)
63
- assert_equal Hash.new, Typus::Configuration.roles!
64
- assert_equal Hash.new, Typus::Configuration.config!
65
- end
66
-
67
- def test_should_load_configuration_files_from_config_ordered
68
- options = { :config_folder => 'vendor/plugins/typus/test/config/ordered' }
69
- Typus::Configuration.stubs(:options).returns(options)
70
- files = Dir["#{Rails.root}/#{Typus::Configuration.options[:config_folder]}/*_roles.yml"]
71
- expected = files.collect { |file| File.basename(file) }.sort
72
- assert_equal expected, ['001_roles.yml', '002_roles.yml']
73
- expected = { 'admin' => { 'categories' => 'read' } }
74
- assert_equal expected, Typus::Configuration.roles!
75
- end
76
-
77
- def test_should_load_configuration_files_from_config_unordered
78
- options = { :config_folder => 'vendor/plugins/typus/test/config/unordered' }
79
- Typus::Configuration.stubs(:options).returns(options)
80
- files = Dir["#{Rails.root}/#{Typus::Configuration.options[:config_folder]}/*_roles.yml"]
81
- expected = files.collect { |file| File.basename(file) }
82
- assert_equal expected, ['app_one_roles.yml', 'app_two_roles.yml']
83
- expected = { 'admin' => { 'categories' => 'read, update' } }
84
- assert_equal expected, Typus::Configuration.roles!
85
- end
86
-
87
- def test_should_load_configuration_files_from_config_default
88
- options = { :config_folder => 'vendor/plugins/typus/test/config/default' }
89
- Typus::Configuration.stubs(:options).returns(options)
90
- assert_not_equal Hash.new, Typus::Configuration.roles!
91
- assert_not_equal Hash.new, Typus::Configuration.config!
92
- assert Typus.resources.empty?
93
- end
94
-
95
- end
@@ -1,11 +0,0 @@
1
- require 'test/helper'
2
-
3
- class HashTest < ActiveSupport::TestCase
4
-
5
- def test_should_verify_compact
6
- hash = { 'a' => '', 'b'=> nil, 'c' => 'hello' }
7
- hash_compacted = { 'c' => 'hello' }
8
- assert_equal hash_compacted, hash.compact
9
- end
10
-
11
- end
@@ -1,71 +0,0 @@
1
- require 'test/helper'
2
-
3
- class RoutesTest < ActiveSupport::TestCase
4
-
5
- include ActionController::TestCase::Assertions
6
-
7
- def test_should_verify_admin_named_routes
8
-
9
- routes = ActionController::Routing::Routes.named_routes.routes.keys
10
-
11
- expected = [ :admin_sign_up, :admin_sign_in, :admin_sign_out,
12
- :admin_recover_password, :admin_reset_password,
13
- :admin_dashboard,
14
- :admin_quick_edit ]
15
-
16
- expected.each { |route| assert routes.include?(route) }
17
-
18
- end
19
-
20
- def test_should_verify_admin_named_routes_for_typus_users
21
-
22
- routes = ActionController::Routing::Routes.named_routes.routes.keys
23
-
24
- expected = [ :admin_typus_users,
25
- :admin_typus_user ]
26
-
27
- expected.each { |route| assert !routes.include?(route) }
28
-
29
- expected = [ :relate_admin_typus_user,
30
- :unrelate_admin_typus_user ]
31
-
32
- expected.each { |route| assert !routes.include?(route) }
33
-
34
- end
35
-
36
- def test_should_verify_default_admin_named_routes_for_posts
37
-
38
- routes = ActionController::Routing::Routes.named_routes.routes.keys
39
-
40
- expected = [ :admin_posts,
41
- :admin_post ]
42
-
43
- expected.each { |route| assert !routes.include?(route) }
44
-
45
- end
46
-
47
- def test_should_verify_custom_admin_named_routes_for_posts
48
-
49
- routes = ActionController::Routing::Routes.named_routes.routes.keys
50
-
51
- expected = [ :cleanup_admin_posts,
52
- :send_as_newsletter_admin_post,
53
- :preview_admin_post ]
54
-
55
- expected.each { |route| assert !routes.include?(route) }
56
-
57
- end
58
-
59
- def test_should_verify_generated_routes_for_typus_controller
60
-
61
- assert_routing '/admin', :controller => 'typus', :action => 'dashboard'
62
-
63
- actions = [ 'sign_up', 'sign_in', 'sign_out',
64
- 'recover_password', 'reset_password',
65
- 'quick_edit' ]
66
-
67
- actions.each { |a| assert_routing "/admin/#{a}", :controller => 'typus', :action => a }
68
-
69
- end
70
-
71
- end
@@ -1,55 +0,0 @@
1
- require 'test/helper'
2
-
3
- class StringTest < ActiveSupport::TestCase
4
-
5
- def test_extract_controller
6
-
7
- assert_equal ['posts'], 'admin/posts'.extract_controller
8
- assert_equal ['typus_users'], 'admin/typus_users'.extract_controller
9
- assert_equal ['delayed', 'jobs'], 'admin/delayed/jobs'.extract_controller
10
-
11
- assert_equal ['posts'], 'typus/posts'.extract_controller('typus')
12
- assert_equal ['typus_users'], 'typus/typus_users'.extract_controller('typus')
13
- assert_equal ['delayed', 'tasks'], 'typus/delayed/tasks'.extract_controller('typus')
14
-
15
- end
16
-
17
- def test_extract_resource
18
- assert_equal 'posts', 'admin/posts'.extract_resource
19
- assert_equal 'typus_users', 'admin/typus_users'.extract_resource
20
- assert_equal 'delayed/tasks', 'admin/delayed/tasks'.extract_resource
21
- end
22
-
23
- def test_extract_class
24
- assert_equal Post, 'admin/posts'.extract_class
25
- assert_equal TypusUser, 'admin/typus_users'.extract_class
26
- assert_equal Delayed::Task, 'admin/delayed/tasks'.extract_class
27
- end
28
-
29
- def test_extract_human_name
30
- assert_equal 'Post', 'admin/posts'.extract_human_name
31
- assert_equal 'Typus user', 'admin/typus_users'.extract_human_name
32
- assert_equal 'Delayed task', 'admin/delayed/tasks'.extract_human_name
33
- end
34
-
35
- def test_should_return_post_actions_for_index
36
- assert_equal %w( cleanup ), 'Post'.typus_actions_for('index')
37
- assert_equal %w( cleanup ), 'Post'.typus_actions_for(:index)
38
- end
39
-
40
- def test_should_return_post_actions_for_edit
41
- assert_equal %w( send_as_newsletter preview ), 'Post'.typus_actions_for('edit')
42
- assert_equal %w( send_as_newsletter preview ), 'Post'.typus_actions_for(:edit)
43
- end
44
-
45
- def test_should_verify_typus_actions_for_unexisting_returns_is_empty
46
- assert 'TypusUser'.typus_actions_for('unexisting').empty?
47
- assert 'TypusUser'.typus_actions_for(:unexisting).empty?
48
- end
49
-
50
- def test_should_verify_typus_actions_for_index_returns_an_array
51
- assert 'Post'.typus_actions_for('index').kind_of?(Array)
52
- assert 'Post'.typus_actions_for(:index).kind_of?(Array)
53
- end
54
-
55
- end
@@ -1,29 +0,0 @@
1
- require 'test/helper'
2
-
3
- class TypusMailerTest < ActiveSupport::TestCase
4
-
5
- def setup
6
- @user = typus_users(:admin)
7
- ActionMailer::Base.default_url_options[:host] = 'test.host'
8
- @response = TypusMailer.deliver_reset_password_link(@user)
9
- end
10
-
11
- def test_should_verify_email_from_is_defined_by_typus_options
12
- assert_equal [ Typus::Configuration.options[:email] ], @response.from
13
- end
14
-
15
- def test_should_verify_email_to_is_typus_user_email
16
- assert_equal [ @user.email ], @response.to
17
- end
18
-
19
- def test_should_verify_email_subject
20
- expected = "[#{Typus::Configuration.options[:app_name]}] Reset password"
21
- assert_equal expected, @response.subject
22
- end
23
-
24
- def test_should_verify_email_contains_reset_password_link_with_token
25
- expected = "http://test.host/admin/reset_password?token=1A2B3C4D5E6F"
26
- assert_match expected, @response.body
27
- end
28
-
29
- end
@@ -1,17 +0,0 @@
1
- require 'test/helper'
2
-
3
- class TypusTest < ActiveSupport::TestCase
4
-
5
- def test_should_verify_models
6
- models = [ Category, Comment, Post, TypusUser ]
7
- models.each { |m| assert m.superclass.equal?(ActiveRecord::Base) }
8
- end
9
-
10
- def test_should_verify_fixtures_are_loaded
11
- assert_equal 3, Category.count
12
- assert_equal 4, Comment.count
13
- assert_equal 4, Post.count
14
- assert_equal 5, TypusUser.count
15
- end
16
-
17
- end
@@ -1,18 +0,0 @@
1
- require 'test/helper'
2
-
3
- class ActiveRecordTest < ActiveSupport::TestCase
4
-
5
- def test_should_verify_to_dom
6
-
7
- assert_equal "typus_user_new", TypusUser.new.to_dom
8
-
9
- typus_user = typus_users(:admin)
10
- assert_equal "typus_user_#{typus_user.id}", typus_user.to_dom
11
-
12
- assert_equal "prefix_typus_user_#{typus_user.id}", typus_user.to_dom(:prefix => 'prefix')
13
- assert_equal "typus_user_#{typus_user.id}_suffix", typus_user.to_dom(:suffix => 'suffix')
14
- assert_equal "prefix_typus_user_#{typus_user.id}_suffix", typus_user.to_dom(:prefix => 'prefix', :suffix => 'suffix')
15
-
16
- end
17
-
18
- end