typus 3.0.2 → 3.0.4

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 (343) hide show
  1. data/Gemfile +20 -9
  2. data/Gemfile.lock +93 -65
  3. data/MIT-LICENSE +1 -1
  4. data/README.md +61 -0
  5. data/Rakefile +5 -0
  6. data/app/controllers/admin/account_controller.rb +7 -10
  7. data/app/controllers/admin/base_controller.rb +16 -1
  8. data/app/controllers/admin/resources_controller.rb +270 -159
  9. data/app/controllers/admin/session_controller.rb +8 -9
  10. data/app/helpers/admin/base_helper.rb +13 -28
  11. data/app/helpers/admin/dashboard_helper.rb +4 -10
  12. data/app/helpers/admin/file_preview_helper.rb +70 -0
  13. data/app/helpers/admin/filters_helper.rb +64 -45
  14. data/app/helpers/admin/form_helper.rb +37 -62
  15. data/app/helpers/admin/relationships_helper.rb +63 -78
  16. data/app/helpers/admin/resources_helper.rb +10 -31
  17. data/app/helpers/admin/search_helper.rb +6 -9
  18. data/app/helpers/admin/sidebar_helper.rb +15 -20
  19. data/app/helpers/admin/table_helper.rb +79 -170
  20. data/app/mailers/admin/mailer.rb +1 -1
  21. data/app/views/admin/account/forgot_password.html.erb +2 -2
  22. data/app/views/admin/account/new.html.erb +8 -4
  23. data/app/views/admin/base/user_guide.html.erb +85 -0
  24. data/app/views/admin/dashboard/_sidebar.html.erb +3 -1
  25. data/app/views/admin/dashboard/show.html.erb +2 -2
  26. data/app/views/admin/dashboard/styles.html.erb +2 -2
  27. data/app/views/admin/helpers/_apps.html.erb +5 -4
  28. data/app/views/admin/helpers/_file_preview.html.erb +3 -0
  29. data/app/views/admin/helpers/_header.html.erb +3 -3
  30. data/app/views/admin/helpers/_login_info.html.erb +2 -2
  31. data/app/views/admin/helpers/dashboard/_applications.html.erb +6 -9
  32. data/app/views/admin/helpers/dashboard/_resources.html.erb +2 -3
  33. data/app/views/admin/helpers/filters/_filters.html.erb +1 -1
  34. data/app/views/admin/helpers/resources/_display_link_to_previous.html.erb +1 -1
  35. data/app/views/admin/helpers/resources/_errors.html.erb +10 -0
  36. data/app/views/admin/helpers/search/_search.html.erb +1 -1
  37. data/app/views/admin/helpers/sidebar/_sidebar.html.erb +6 -3
  38. data/app/views/admin/helpers/table/_table.html.erb +17 -5
  39. data/app/views/admin/mailer/reset_password_link.text.erb +2 -2
  40. data/app/views/admin/resources/_form.html.erb +3 -12
  41. data/app/views/admin/resources/edit.html.erb +7 -5
  42. data/app/views/admin/resources/index.html.erb +13 -18
  43. data/app/views/admin/resources/new.html.erb +4 -4
  44. data/app/views/admin/resources/show.html.erb +9 -13
  45. data/app/views/admin/session/new.html.erb +8 -4
  46. data/app/views/admin/templates/_belongs_to.html.erb +1 -1
  47. data/app/views/admin/templates/_boolean.html.erb +2 -2
  48. data/app/views/admin/templates/_date.html.erb +2 -2
  49. data/app/views/admin/templates/_datetime.html.erb +2 -2
  50. data/app/views/admin/templates/_file.html.erb +3 -19
  51. data/app/views/admin/templates/_has_n.html.erb +4 -4
  52. data/app/views/admin/templates/_has_one.html.erb +14 -0
  53. data/app/views/admin/templates/_password.html.erb +2 -2
  54. data/app/views/admin/templates/_profile_sidebar.html.erb +3 -0
  55. data/app/views/admin/templates/_relate_form.html.erb +2 -1
  56. data/app/views/admin/templates/_selector.html.erb +1 -1
  57. data/app/views/admin/templates/_string.html.erb +6 -6
  58. data/app/views/admin/templates/_text.html.erb +11 -4
  59. data/app/views/admin/templates/_time.html.erb +2 -2
  60. data/app/views/admin/templates/_tree.html.erb +1 -1
  61. data/app/views/layouts/admin/base.html.erb +7 -6
  62. data/app/views/layouts/admin/session.html.erb +4 -14
  63. data/config/{available_locales/ca_models.yml → locales/typus.ca.models.yml} +5 -4
  64. data/config/locales/typus.ca.yml +81 -0
  65. data/config/{available_locales/de_models.yml → locales/typus.de.models.yml} +6 -2
  66. data/config/locales/typus.de.yml +80 -0
  67. data/config/locales/typus.el.models.yml +17 -0
  68. data/config/locales/typus.el.yml +82 -0
  69. data/config/{available_locales/es_models.yml → locales/typus.es.models.yml} +9 -4
  70. data/config/locales/typus.es.yml +82 -0
  71. data/config/{available_locales/fr_models.yml → locales/typus.fr.models.yml} +8 -3
  72. data/config/locales/typus.fr.yml +87 -0
  73. data/config/{available_locales/hu_models.yml → locales/typus.hu.models.yml} +6 -2
  74. data/config/locales/typus.hu.yml +80 -0
  75. data/config/{available_locales/it_models.yml → locales/typus.it.models.yml} +7 -4
  76. data/config/locales/typus.it.yml +89 -0
  77. data/config/{available_locales/language_models.yml.template → locales/typus.locale.models.yml.template} +8 -4
  78. data/config/locales/typus.locale.yml.template +81 -0
  79. data/config/{available_locales/pt-BR_models.yml → locales/typus.pt-BR.models.yml} +6 -2
  80. data/config/locales/typus.pt-BR.yml +80 -0
  81. data/config/{available_locales/ru_models.yml → locales/typus.ru.models.yml} +6 -2
  82. data/config/locales/typus.ru.yml +80 -0
  83. data/config/locales/typus.zh-CN.models.yml +17 -0
  84. data/config/locales/typus.zh-CN.yml +79 -0
  85. data/config/routes.rb +11 -7
  86. data/lib/generators/templates/config/initializers/typus.rb +8 -5
  87. data/lib/generators/templates/config/initializers/typus_resources.rb +0 -3
  88. data/lib/generators/templates/config/typus/README +6 -6
  89. data/lib/generators/templates/config/typus/typus.yml +5 -5
  90. data/lib/generators/templates/controller.rb +1 -1
  91. data/lib/generators/templates/migration.rb +1 -0
  92. data/lib/generators/templates/public/admin/javascripts/application.js +0 -4
  93. data/lib/generators/templates/public/admin/javascripts/jquery-1.4.4.min.js +167 -0
  94. data/lib/generators/templates/public/admin/javascripts/jquery.application.js +16 -0
  95. data/lib/generators/templates/public/admin/javascripts/jquery.rails.js +50 -22
  96. data/lib/generators/templates/public/admin/stylesheets/screen.css +43 -34
  97. data/lib/generators/templates/public/admin/vendor/fancybox/fancy_loading.png +0 -0
  98. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.easing-1.3.pack.js +32 -32
  99. data/lib/generators/templates/public/admin/vendor/fancybox/{jquery.fancybox-1.3.1.css → jquery.fancybox-1.3.4.css} +359 -363
  100. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.4.js +1156 -0
  101. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.4.pack.js +46 -0
  102. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.mousewheel-3.0.4.pack.js +14 -0
  103. data/lib/generators/typus/assets_generator.rb +23 -0
  104. data/lib/generators/typus/controller_generator.rb +29 -0
  105. data/lib/generators/typus/migration_generator.rb +39 -20
  106. data/lib/generators/typus/typus_generator.rb +17 -57
  107. data/lib/generators/typus/views_generator.rb +2 -6
  108. data/lib/support/active_record.rb +8 -20
  109. data/lib/support/fake_user.rb +6 -1
  110. data/lib/support/hash.rb +1 -2
  111. data/lib/support/object.rb +4 -17
  112. data/lib/support/string.rb +34 -3
  113. data/lib/tasks/typus.rake +1 -1
  114. data/lib/typus.rb +60 -48
  115. data/lib/typus/actions.rb +27 -0
  116. data/lib/typus/authentication/base.rb +3 -4
  117. data/lib/typus/authentication/http_basic.rb +1 -1
  118. data/lib/typus/authentication/none.rb +1 -1
  119. data/lib/typus/authentication/session.rb +53 -108
  120. data/lib/typus/configuration.rb +13 -11
  121. data/lib/typus/filters.rb +12 -0
  122. data/lib/typus/format.rb +9 -13
  123. data/lib/typus/i18n.rb +30 -0
  124. data/lib/typus/orm/active_record.rb +97 -194
  125. data/lib/typus/orm/active_record/search.rb +91 -0
  126. data/lib/typus/resources.rb +6 -10
  127. data/lib/typus/user.rb +20 -40
  128. data/lib/typus/version.rb +1 -1
  129. metadata +77 -231
  130. data/CHANGELOG +0 -102
  131. data/README.rdoc +0 -48
  132. data/app/helpers/admin/preview_helper.rb +0 -46
  133. data/app/views/admin/helpers/_preview.html.erb +0 -13
  134. data/app/views/admin/templates/_has_many.html.erb +0 -22
  135. data/config/available_locales/ca.yml +0 -122
  136. data/config/available_locales/de.yml +0 -122
  137. data/config/available_locales/es.yml +0 -122
  138. data/config/available_locales/fr.yml +0 -127
  139. data/config/available_locales/hu.yml +0 -122
  140. data/config/available_locales/it.yml +0 -132
  141. data/config/available_locales/language.yml.template +0 -120
  142. data/config/available_locales/pt-BR.yml +0 -122
  143. data/config/available_locales/ru.yml +0 -122
  144. data/lib/generators/templates/functional_test.rb +0 -10
  145. data/lib/generators/templates/model.rb +0 -8
  146. data/lib/generators/templates/public/admin/images/ui-icons.png +0 -0
  147. data/lib/generators/templates/public/admin/javascripts/jquery-1.4.2.min.js +0 -154
  148. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.js +0 -1077
  149. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.fancybox-1.3.1.pack.js +0 -44
  150. data/lib/generators/templates/public/admin/vendor/fancybox/jquery.mousewheel-3.0.2.pack.js +0 -13
  151. data/lib/typus/pagination.rb +0 -18
  152. data/test/factories.rb +0 -43
  153. data/test/fixtures/config/broken/application.yml +0 -68
  154. data/test/fixtures/config/broken/application_roles.yml +0 -20
  155. data/test/fixtures/config/broken/empty.yml +0 -0
  156. data/test/fixtures/config/broken/empty_roles.yml +0 -0
  157. data/test/fixtures/config/broken/undefined.yml +0 -3
  158. data/test/fixtures/config/broken/undefined_roles.yml +0 -6
  159. data/test/fixtures/config/default/typus.yml +0 -13
  160. data/test/fixtures/config/default/typus_roles.yml +0 -2
  161. data/test/fixtures/config/empty/empty_01.yml +0 -0
  162. data/test/fixtures/config/empty/empty_01_roles.yml +0 -0
  163. data/test/fixtures/config/empty/empty_02.yml +0 -0
  164. data/test/fixtures/config/empty/empty_02_roles.yml +0 -0
  165. data/test/fixtures/config/locales/es.yml +0 -10
  166. data/test/fixtures/config/namespaced/application.yml +0 -5
  167. data/test/fixtures/config/namespaced/application_roles.yml +0 -2
  168. data/test/fixtures/config/ordered/001_roles.yml +0 -2
  169. data/test/fixtures/config/ordered/002_roles.yml +0 -2
  170. data/test/fixtures/config/unordered/app_one_roles.yml +0 -2
  171. data/test/fixtures/config/unordered/app_two_roles.yml +0 -2
  172. data/test/fixtures/config/working/application.yml +0 -73
  173. data/test/fixtures/config/working/application_roles.yml +0 -24
  174. data/test/fixtures/config/working/typus.yml +0 -13
  175. data/test/fixtures/config/working/typus_roles.yml +0 -2
  176. data/test/fixtures/rails_app/Rakefile +0 -7
  177. data/test/fixtures/rails_app/app/controllers/admin/assets_controller.rb +0 -2
  178. data/test/fixtures/rails_app/app/controllers/admin/categories_controller.rb +0 -2
  179. data/test/fixtures/rails_app/app/controllers/admin/comments_controller.rb +0 -2
  180. data/test/fixtures/rails_app/app/controllers/admin/pages_controller.rb +0 -2
  181. data/test/fixtures/rails_app/app/controllers/admin/pictures_controller.rb +0 -2
  182. data/test/fixtures/rails_app/app/controllers/admin/posts_controller.rb +0 -2
  183. data/test/fixtures/rails_app/app/controllers/admin/status_controller.rb +0 -2
  184. data/test/fixtures/rails_app/app/controllers/admin/typus_users_controller.rb +0 -2
  185. data/test/fixtures/rails_app/app/controllers/admin/watch_dog_controller.rb +0 -2
  186. data/test/fixtures/rails_app/app/controllers/application_controller.rb +0 -3
  187. data/test/fixtures/rails_app/app/models/asset.rb +0 -5
  188. data/test/fixtures/rails_app/app/models/category.rb +0 -11
  189. data/test/fixtures/rails_app/app/models/comment.rb +0 -6
  190. data/test/fixtures/rails_app/app/models/custom_user.rb +0 -2
  191. data/test/fixtures/rails_app/app/models/delayed/task.rb +0 -5
  192. data/test/fixtures/rails_app/app/models/page.rb +0 -5
  193. data/test/fixtures/rails_app/app/models/picture.rb +0 -6
  194. data/test/fixtures/rails_app/app/models/post.rb +0 -21
  195. data/test/fixtures/rails_app/app/models/typus_user.rb +0 -8
  196. data/test/fixtures/rails_app/app/models/view.rb +0 -5
  197. data/test/fixtures/rails_app/app/views/admin/categories/_form.html.erb +0 -1
  198. data/test/fixtures/rails_app/app/views/admin/dashboard/_sidebar.html.erb +0 -1
  199. data/test/fixtures/rails_app/app/views/admin/mailer/reset_password_link.text.erb +0 -6
  200. data/test/fixtures/rails_app/app/views/admin/posts/_edit.html.erb +0 -1
  201. data/test/fixtures/rails_app/app/views/admin/posts/_index.html.erb +0 -1
  202. data/test/fixtures/rails_app/app/views/admin/posts/_new.html.erb +0 -1
  203. data/test/fixtures/rails_app/app/views/admin/posts/_show.html.erb +0 -1
  204. data/test/fixtures/rails_app/app/views/admin/posts/_sidebar.html.erb +0 -1
  205. data/test/fixtures/rails_app/app/views/admin/resources/_sidebar.html.erb +0 -1
  206. data/test/fixtures/rails_app/app/views/admin/status/index.html.erb +0 -1
  207. data/test/fixtures/rails_app/app/views/admin/templates/_datepicker.html.erb +0 -1
  208. data/test/fixtures/rails_app/config.ru +0 -4
  209. data/test/fixtures/rails_app/config/application.rb +0 -53
  210. data/test/fixtures/rails_app/config/boot.rb +0 -13
  211. data/test/fixtures/rails_app/config/database.yml +0 -14
  212. data/test/fixtures/rails_app/config/environment.rb +0 -5
  213. data/test/fixtures/rails_app/config/environments/test.rb +0 -34
  214. data/test/fixtures/rails_app/config/initializers/secret_token.rb +0 -7
  215. data/test/fixtures/rails_app/config/initializers/session_store.rb +0 -8
  216. data/test/fixtures/rails_app/config/initializers/typus.rb +0 -6
  217. data/test/fixtures/rails_app/config/routes.rb +0 -5
  218. data/test/fixtures/rails_app/config/typus/application.yml +0 -79
  219. data/test/fixtures/rails_app/config/typus/application_roles.yml +0 -25
  220. data/test/fixtures/rails_app/config/typus/typus.yml +0 -12
  221. data/test/fixtures/rails_app/config/typus/typus_roles.yml +0 -2
  222. data/test/fixtures/rails_app/db/test.sqlite3 +0 -0
  223. data/test/fixtures/rails_app/tmp/export-posts-20101012213057.csv +0 -2
  224. data/test/fixtures/rails_app/tmp/export-posts-20101012213132.csv +0 -2
  225. data/test/fixtures/rails_app/tmp/export-posts-20101012213234.csv +0 -2
  226. data/test/fixtures/rails_app/tmp/export-posts-20101012213506.csv +0 -2
  227. data/test/fixtures/rails_app/tmp/export-posts-20101012215057.csv +0 -2
  228. data/test/fixtures/rails_app/tmp/export-posts-20101012215217.csv +0 -2
  229. data/test/fixtures/rails_app/tmp/export-posts-20101012215415.csv +0 -2
  230. data/test/fixtures/rails_app/tmp/export-posts-20101012215443.csv +0 -2
  231. data/test/fixtures/rails_app/tmp/export-posts-20101012215509.csv +0 -2
  232. data/test/fixtures/rails_app/tmp/export-posts-20101012215528.csv +0 -2
  233. data/test/fixtures/rails_app/tmp/export-posts-20101012215551.csv +0 -2
  234. data/test/fixtures/rails_app/tmp/export-posts-20101012215615.csv +0 -2
  235. data/test/fixtures/rails_app/tmp/export-posts-20101012215640.csv +0 -2
  236. data/test/fixtures/rails_app/tmp/export-posts-20101012215714.csv +0 -2
  237. data/test/fixtures/rails_app/tmp/export-posts-20101012215744.csv +0 -2
  238. data/test/fixtures/rails_app/tmp/export-posts-20101012215814.csv +0 -2
  239. data/test/fixtures/rails_app/tmp/export-posts-20101012215836.csv +0 -2
  240. data/test/fixtures/rails_app/tmp/export-posts-20101012215906.csv +0 -2
  241. data/test/fixtures/rails_app/tmp/export-posts-20101012220659.csv +0 -2
  242. data/test/fixtures/rails_app/tmp/export-posts-20101012221043.csv +0 -2
  243. data/test/fixtures/rails_app/tmp/export-posts-20101012221258.csv +0 -2
  244. data/test/fixtures/rails_app/tmp/export-posts-20101012222558.csv +0 -2
  245. data/test/fixtures/rails_app/tmp/export-posts-20101012222752.csv +0 -2
  246. data/test/fixtures/rails_app/tmp/export-posts-20101012222848.csv +0 -2
  247. data/test/fixtures/rails_app/tmp/export-posts-20101012223433.csv +0 -2
  248. data/test/fixtures/rails_app/tmp/export-posts-20101012223535.csv +0 -2
  249. data/test/fixtures/rails_app/tmp/export-posts-20101012224003.csv +0 -2
  250. data/test/fixtures/rails_app/tmp/export-posts-20101012224052.csv +0 -2
  251. data/test/fixtures/rails_app/tmp/export-posts-20101012224109.csv +0 -2
  252. data/test/fixtures/rails_app/tmp/export-posts-20101012224139.csv +0 -2
  253. data/test/fixtures/rails_app/tmp/export-posts-20101012224205.csv +0 -2
  254. data/test/fixtures/rails_app/tmp/export-posts-20101012224243.csv +0 -2
  255. data/test/fixtures/rails_app/tmp/export-posts-20101012225119.csv +0 -2
  256. data/test/fixtures/rails_app/tmp/export-posts-20101013063215.csv +0 -2
  257. data/test/fixtures/rails_app/tmp/export-posts-20101013063300.csv +0 -2
  258. data/test/fixtures/rails_app/tmp/export-posts-20101013063352.csv +0 -2
  259. data/test/fixtures/rails_app/tmp/export-posts-20101013063427.csv +0 -2
  260. data/test/fixtures/rails_app/tmp/export-posts-20101013063448.csv +0 -2
  261. data/test/fixtures/rails_app/tmp/export-posts-20101013063530.csv +0 -2
  262. data/test/fixtures/rails_app/tmp/export-posts-20101013063559.csv +0 -2
  263. data/test/fixtures/rails_app/tmp/export-posts-20101013063646.csv +0 -2
  264. data/test/fixtures/rails_app/tmp/export-posts-20101013063737.csv +0 -2
  265. data/test/fixtures/rails_app/tmp/export-posts-20101013063822.csv +0 -2
  266. data/test/fixtures/rails_app/tmp/export-posts-20101013063837.csv +0 -2
  267. data/test/fixtures/rails_app/tmp/export-posts-20101013063919.csv +0 -2
  268. data/test/fixtures/rails_app/tmp/export-posts-20101013063939.csv +0 -2
  269. data/test/fixtures/rails_app/tmp/export-posts-20101013063952.csv +0 -2
  270. data/test/fixtures/rails_app/tmp/export-posts-20101013064220.csv +0 -2
  271. data/test/fixtures/rails_app/tmp/export-posts-20101013064253.csv +0 -2
  272. data/test/fixtures/rails_app/tmp/export-posts-20101013064318.csv +0 -2
  273. data/test/fixtures/rails_app/tmp/export-posts-20101013064404.csv +0 -2
  274. data/test/fixtures/rails_app/tmp/export-posts-20101013064452.csv +0 -2
  275. data/test/fixtures/rails_app/tmp/export-posts-20101013064536.csv +0 -2
  276. data/test/fixtures/rails_app/tmp/export-posts-20101013064652.csv +0 -2
  277. data/test/fixtures/rails_app/tmp/export-posts-20101013064845.csv +0 -2
  278. data/test/fixtures/rails_app/tmp/export-posts-20101013065023.csv +0 -2
  279. data/test/fixtures/rails_app/tmp/export-posts-20101013065137.csv +0 -2
  280. data/test/fixtures/rails_app/tmp/export-posts-20101013065713.csv +0 -2
  281. data/test/fixtures/rails_app/tmp/export-posts-20101013065954.csv +0 -2
  282. data/test/fixtures/rails_app/tmp/export-posts-20101013070057.csv +0 -2
  283. data/test/fixtures/rails_app/tmp/export-posts-20101013070116.csv +0 -2
  284. data/test/fixtures/rails_app/tmp/export-posts-20101013070156.csv +0 -2
  285. data/test/fixtures/rails_app/tmp/export-posts-20101013070349.csv +0 -2
  286. data/test/fixtures/rails_app/tmp/export-posts-20101013070429.csv +0 -2
  287. data/test/fixtures/rails_app/tmp/export-posts-20101013070448.csv +0 -2
  288. data/test/fixtures/rails_app/tmp/export-posts-20101013070514.csv +0 -2
  289. data/test/fixtures/rails_app/tmp/export-posts-20101013070709.csv +0 -2
  290. data/test/fixtures/rails_app/tmp/export-posts-20101013070745.csv +0 -2
  291. data/test/fixtures/rails_app/tmp/export-posts-20101013070809.csv +0 -2
  292. data/test/fixtures/rails_app/tmp/export-posts-20101013070905.csv +0 -2
  293. data/test/fixtures/rails_app/tmp/export-posts-20101013070955.csv +0 -2
  294. data/test/fixtures/rails_app/tmp/export-posts-20101013071116.csv +0 -2
  295. data/test/fixtures/rails_app/tmp/export-posts-20101013071209.csv +0 -2
  296. data/test/fixtures/rails_app/tmp/export-posts-20101013071335.csv +0 -2
  297. data/test/fixtures/rails_app/tmp/export-posts-20101013071632.csv +0 -2
  298. data/test/fixtures/rails_app/tmp/export-posts-20101013071643.csv +0 -2
  299. data/test/fixtures/rails_app/tmp/export-posts-20101013071735.csv +0 -2
  300. data/test/fixtures/rails_app/tmp/export-posts-20101013071749.csv +0 -2
  301. data/test/fixtures/rails_app/tmp/export-posts-20101013072030.csv +0 -2
  302. data/test/fixtures/rails_app/tmp/export-posts-20101013072050.csv +0 -2
  303. data/test/fixtures/rails_app/tmp/export-posts-20101013072108.csv +0 -2
  304. data/test/fixtures/rails_app/tmp/export-posts-20101013072713.csv +0 -2
  305. data/test/fixtures/rails_app/tmp/export-posts-20101013072751.csv +0 -2
  306. data/test/fixtures/rails_app/tmp/export-posts-20101013072912.csv +0 -2
  307. data/test/fixtures/rails_app/tmp/export-posts-20101013074546.csv +0 -2
  308. data/test/fixtures/rails_app/tmp/export-posts-20101018180512.csv +0 -2
  309. data/test/fixtures/rails_app/tmp/export-posts-20101018183359.csv +0 -2
  310. data/test/fixtures/rails_app/tmp/export-posts-20101018183608.csv +0 -2
  311. data/test/fixtures/rails_app/tmp/export-posts-20101018183759.csv +0 -2
  312. data/test/functional/admin/account_controller_test.rb +0 -90
  313. data/test/functional/admin/assets_controller_test.rb +0 -55
  314. data/test/functional/admin/categories_controller_test.rb +0 -62
  315. data/test/functional/admin/comments_controller_test.rb +0 -21
  316. data/test/functional/admin/dashboard_controller_test.rb +0 -138
  317. data/test/functional/admin/posts_controller_test.rb +0 -548
  318. data/test/functional/admin/session_controller_test.rb +0 -85
  319. data/test/functional/admin/status_controller_test.rb +0 -46
  320. data/test/functional/admin/typus_users_controller_test.rb +0 -159
  321. data/test/helpers/admin/base_helper_test.rb +0 -67
  322. data/test/helpers/admin/dashboard_helper_test.rb +0 -19
  323. data/test/helpers/admin/form_helper_test.rb +0 -117
  324. data/test/helpers/admin/resources_helper_test.rb +0 -64
  325. data/test/helpers/admin/sidebar_helper_test.rb +0 -274
  326. data/test/helpers/admin/table_helper_test.rb +0 -219
  327. data/test/integration/login_test.rb +0 -13
  328. data/test/integration_test_helper.rb +0 -21
  329. data/test/lib/support/active_record_test.rb +0 -86
  330. data/test/lib/support/array_test.rb +0 -11
  331. data/test/lib/support/hash_test.rb +0 -11
  332. data/test/lib/support/string_test.rb +0 -39
  333. data/test/lib/typus/active_record_test.rb +0 -451
  334. data/test/lib/typus/configuration_test.rb +0 -52
  335. data/test/lib/typus/resource_test.rb +0 -17
  336. data/test/lib/typus/routes_test.rb +0 -29
  337. data/test/lib/typus_test.rb +0 -107
  338. data/test/schema.rb +0 -100
  339. data/test/test_helper.rb +0 -16
  340. data/test/unit/admin/mailer_test.rb +0 -32
  341. data/test/unit/typus_user_roles_test.rb +0 -105
  342. data/test/unit/typus_user_test.rb +0 -142
  343. data/typus.gemspec +0 -25
@@ -1,85 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::SessionControllerTest < ActionController::TestCase
4
-
5
- context "Setup" do
6
-
7
- should "redirect_to_new_admin_account_when_no_admin_users" do
8
- get :new
9
- assert_response :redirect
10
- assert_redirected_to new_admin_account_path
11
- end
12
-
13
- end
14
-
15
- context "With users" do
16
-
17
- setup do
18
- @typus_user = Factory(:typus_user)
19
- end
20
-
21
- should "render new" do
22
- get :new
23
- assert_response :success
24
- end
25
-
26
- should "render new and verify title and header" do
27
- get :new
28
- assert_select "title", "Sign in"
29
- assert_select "h1", "Typus"
30
- end
31
-
32
- should "render new inside account layout" do
33
- get :new
34
- assert_match "layouts/admin/session", @controller.inspect
35
- end
36
-
37
- should "verify_typus_sign_in_layout_does_not_include_recover_password_link" do
38
- get :new
39
- assert !@response.body.include?("Recover password")
40
- end
41
-
42
- should "verify new includes recover_password_link when mailer_sender is set" do
43
- Typus.expects(:mailer_sender).returns("john@example.com")
44
- get :new
45
- assert @response.body.include?("Recover password")
46
- end
47
-
48
- should "not_create_session_for_invalid_users" do
49
- post :create, { :typus_user => { :email => "john@example.com", :password => "XXXXXXXX" } }
50
-
51
- assert_response :redirect
52
- assert_redirected_to new_admin_session_path
53
- assert_equal "The email and/or password you entered is invalid.", flash[:alert]
54
- end
55
-
56
- should "not_create_session_for_a_disabled_user" do
57
- typus_user = Factory(:typus_user, :email => "disabled@example.com", :status => false)
58
-
59
- post :create, { :typus_user => { :email => typus_user.email, :password => "12345678" } }
60
-
61
- assert_nil @request.session[:typus_user_id]
62
- assert_response :redirect
63
- assert_redirected_to new_admin_session_path
64
- end
65
-
66
- should "create_session_for_an_enabled_user" do
67
- post :create, { :typus_user => { :email => @typus_user.email, :password => "12345678" } }
68
-
69
- assert_equal @typus_user.id, @request.session[:typus_user_id]
70
- assert_response :redirect
71
- assert_redirected_to admin_dashboard_path
72
- end
73
-
74
- should "destroy" do
75
- delete :destroy
76
-
77
- assert_nil @request.session[:typus_user_id]
78
- assert_response :redirect
79
- assert_redirected_to new_admin_session_path
80
- assert flash.empty?
81
- end
82
-
83
- end
84
-
85
- end
@@ -1,46 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::StatusControllerTest < ActionController::TestCase
4
-
5
- context "Admin" do
6
-
7
- setup do
8
- @request.session[:typus_user_id] = Factory(:typus_user).id
9
- end
10
-
11
- should "render index" do
12
- get :index
13
- assert_response :success
14
- assert_template 'index'
15
- end
16
-
17
- end
18
-
19
- context "Editor" do
20
-
21
- setup do
22
- @request.session[:typus_user_id] = Factory(:typus_user, :role => "editor").id
23
- end
24
-
25
- should "not render index" do
26
- get :index
27
- assert_response :unprocessable_entity
28
- end
29
-
30
- end
31
-
32
- context "Not logged user" do
33
-
34
- setup do
35
- @request.session[:typus_user_id] = nil
36
- end
37
-
38
- should "not render index and redirect to new_admin_session_path with back_to" do
39
- get :index
40
- assert_response :redirect
41
- assert_redirected_to new_admin_session_path(:back_to => '/admin/status')
42
- end
43
-
44
- end
45
-
46
- end
@@ -1,159 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::TypusUsersControllerTest < ActionController::TestCase
4
-
5
- context "Master role" do
6
-
7
- setup do
8
- Typus.master_role = 'admin'
9
- @typus_user = Factory(:typus_user)
10
- @typus_user_editor = Factory(:typus_user, :email => "editor@example.com", :role => "editor")
11
- @request.session[:typus_user_id] = @typus_user.id
12
- @request.env['HTTP_REFERER'] = '/admin/typus_users'
13
- end
14
-
15
- should "allow_admin_to_create_typus_users" do
16
- get :new
17
- assert_response :success
18
- end
19
-
20
- should "not allow admin to toogle her status" do
21
- get :toggle, { :id => @typus_user.id, :field => 'status' }
22
-
23
- assert_response :redirect
24
- assert_redirected_to @request.env['HTTP_REFERER']
25
- assert_equal "You can't toggle your status.", flash[:notice]
26
- end
27
-
28
- should "allow_admin_to_toggle_other_users_status" do
29
-
30
- get :toggle, { :id => @typus_user_editor.id, :field => 'status' }
31
-
32
- assert_response :redirect
33
- assert_redirected_to @request.env['HTTP_REFERER']
34
- assert_equal "Typus user status changed.", flash[:notice]
35
- end
36
-
37
- should "not be able to destroy herself" do
38
- assert_no_difference('TypusUser.count') do
39
- delete :destroy, :id => @typus_user.id
40
- end
41
-
42
- assert_response :redirect
43
- assert_redirected_to @request.env['HTTP_REFERER']
44
- assert_equal "You can't remove yourself.", flash[:notice]
45
- end
46
-
47
- should "verify_admin_can_destroy_others" do
48
- assert_difference('TypusUser.count', -1) do
49
- delete :destroy, :id => @typus_user_editor.id
50
- end
51
-
52
- assert_response :redirect
53
- assert_redirected_to @request.env['HTTP_REFERER']
54
- assert_equal "Typus user successfully removed.", flash[:notice]
55
- end
56
-
57
- end
58
-
59
- context "No master role" do
60
-
61
- setup do
62
- @typus_user = Factory(:typus_user, :role => "editor")
63
- @request.session[:typus_user_id] = @typus_user.id
64
- @request.env['HTTP_REFERER'] = '/admin/typus_users'
65
- end
66
-
67
- should "not_allow_non_root_typus_user_to_toggle_status" do
68
- get :toggle, { :id => @typus_user.id, :field => 'status' }
69
-
70
- assert_response :redirect
71
- assert_redirected_to @request.env['HTTP_REFERER']
72
- assert_equal "You're not allowed to toggle status.", flash[:notice]
73
- end
74
-
75
- should "not_allow_editor_to_create_typus_users" do
76
- get :new
77
-
78
- assert_response :redirect
79
- assert_redirected_to @request.env['HTTP_REFERER']
80
- assert_equal "Editor can't perform action. (new)", flash[:notice]
81
- end
82
-
83
- end
84
-
85
- context "Editor" do
86
-
87
- setup do
88
- @request.env['HTTP_REFERER'] = '/admin/typus_users'
89
- @typus_user = Factory(:typus_user, :email => "editor@example.com", :role => "editor")
90
- @request.session[:typus_user_id] = @typus_user.id
91
- end
92
-
93
- should "allow_editor_to_update_himself" do
94
- post :update, { :id => @typus_user.id, :typus_user => { :role => 'editor' } }
95
-
96
- assert_response :redirect
97
- assert_redirected_to "/admin/typus_users/edit/#{@typus_user.id}"
98
- assert_equal "Typus user successfully updated.", flash[:notice]
99
- end
100
-
101
- should "not_allow_editor_to_update_himself_to_become_admin" do
102
- post :update, { :id => @typus_user.id, :typus_user => { :role => 'admin' } }
103
-
104
- assert_response :redirect
105
- assert_redirected_to @request.env['HTTP_REFERER']
106
- assert_equal "You can't change your role.", flash[:notice]
107
- end
108
-
109
- should "not_allow_editor_to_edit_other_users_profiles" do
110
- get :edit, { :id => Factory(:typus_user).id }
111
-
112
- assert_response :redirect
113
- assert_redirected_to @request.env['HTTP_REFERER']
114
- assert_equal "As you're not the admin or the owner of this record you cannot edit it.", flash[:notice]
115
- end
116
-
117
- should "not_allow_editor_to_destroy_users" do
118
- delete :destroy, :id => Factory(:typus_user).id
119
-
120
- assert_response :redirect
121
- assert_redirected_to @request.env['HTTP_REFERER']
122
- assert_equal "You're not allowed to remove Typus Users.", flash[:notice]
123
- end
124
-
125
- should "not_allow_editor_to_destroy_herself" do
126
- delete :destroy, :id => @typus_user.id
127
-
128
- assert_response :redirect
129
- assert_redirected_to @request.env['HTTP_REFERER']
130
- assert_equal "You're not allowed to remove Typus Users.", flash[:notice]
131
- end
132
-
133
- should "change_root_to_editor_so_editor_can_edit_others_content" do
134
- Typus.expects(:master_role).at_least_once.returns("editor")
135
- get :edit, { :id => Factory(:typus_user).id }
136
- assert_response :success
137
- end
138
-
139
- end
140
-
141
- context "Designer" do
142
-
143
- setup do
144
- @request.env['HTTP_REFERER'] = '/admin'
145
- @typus_user = Factory(:typus_user, :role => "designer")
146
- @request.session[:typus_user_id] = @typus_user.id
147
- end
148
-
149
- should "redirect_to_admin_dashboard_if_user_does_not_have_privileges" do
150
- get :index
151
-
152
- assert_response :redirect
153
- assert_redirected_to @request.env['HTTP_REFERER']
154
- assert_equal "Designer can't display items.", flash[:notice]
155
- end
156
-
157
- end
158
-
159
- end
@@ -1,67 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::BaseHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::BaseHelper
6
-
7
- include ActionView::Helpers::UrlHelper
8
- include ActionView::Helpers::TextHelper
9
-
10
- def render(*args); args; end
11
- # include ActionView::Rendering
12
- # include ActionView::Partials
13
-
14
- context "header" do
15
-
16
- should_eventually "render with root_path" do
17
-
18
- # ActionView::Helpers::UrlHelper does not support strings, which are
19
- # returned by named routes link root_path
20
- self.stubs(:link_to).returns(%(<a href="/">View site</a>))
21
- self.stubs(:link_to_unless_current).returns(%(<a href="/admin/dashboard">Dashboard</a>))
22
-
23
- output = header
24
-
25
- partial = "admin/helpers/header"
26
- options = { :links => [ %(<a href="/admin/dashboard">Dashboard</a>),
27
- %(<a href="/admin/dashboard">Dashboard</a>),
28
- %(<a href="/">View site</a>) ] }
29
-
30
- assert_equal [ partial, options ], output
31
-
32
- end
33
-
34
- should_eventually "render without root_path" do
35
-
36
- Rails.application.routes.named_routes.routes.reject! { |key, route| key == :root }
37
-
38
- self.stubs(:link_to_unless_current).returns(%(<a href="/admin/dashboard">Dashboard</a>))
39
-
40
- output = header
41
- partial = "admin/helpers/header"
42
- options = { :links => [ %(<a href="/admin/dashboard">Dashboard</a>),
43
- %(<a href="/admin/dashboard">Dashboard</a>) ] }
44
-
45
- assert_equal [ partial, options ], output
46
-
47
- end
48
-
49
- end
50
-
51
- context "display_flash_message" do
52
-
53
- should "be displayed" do
54
- message = { :test => "This is the message." }
55
- output = display_flash_message(message)
56
- expected = ["admin/helpers/flash_message",
57
- { :flash_type => :test, :message => { :test => "This is the message." } }]
58
- assert_equal expected, output
59
- end
60
-
61
- should "not be displayed when message is empty" do
62
- assert_nil display_flash_message(Hash.new)
63
- end
64
-
65
- end
66
-
67
- end
@@ -1,19 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::DashboardHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::DashboardHelper
6
-
7
- include ActionView::Helpers::UrlHelper
8
- include ActionView::Helpers::TextHelper
9
-
10
- def render(*args); args; end
11
-
12
- should "render resources" do
13
- current_user = Factory(:typus_user)
14
- output = resources(current_user)
15
- expected = ["admin/helpers/dashboard/resources", { :resources => ["Git", "Status", "WatchDog"] }]
16
- assert_equal expected, output
17
- end
18
-
19
- end
@@ -1,117 +0,0 @@
1
- require "test_helper"
2
-
3
- class Admin::FormHelperTest < ActiveSupport::TestCase
4
-
5
- include Admin::FormHelper
6
- include Admin::ResourcesHelper
7
-
8
- should_eventually "verify_belongs_to_field" do
9
-
10
- params = { :controller => 'admin/post', :id => 1, :action => :create }
11
- self.stubs(:params).returns(params)
12
-
13
- current_user = mock()
14
- current_user.stubs(:can?).with('create', Post).returns(false)
15
- @resource = Comment
16
-
17
- expected = <<-HTML
18
- <li><label for="comment_post">Post
19
- <small></small>
20
- </label>
21
- <select id="comment_post_id" name="comment[post_id]"><option value=""></option>
22
- <option value="3">Post#3</option>
23
- <option value="4">Post#4</option>
24
- <option value="1">Post#1</option>
25
- <option value="2">Post#2</option></select></li>
26
- HTML
27
-
28
- assert_equal expected, typus_belongs_to_field('post')
29
-
30
- end
31
-
32
- should_eventually "test_typus_belongs_to_field_with_different_attribute_name" do
33
-
34
- params = { :controller => 'admin/post', :id => 1, :action => :edit }
35
- self.stubs(:params).returns(params)
36
-
37
- current_user = mock()
38
- current_user.stubs(:can?).with('create', Comment).returns(true)
39
- @resource = Post
40
-
41
- expected = <<-HTML
42
- <li><label for="post_favorite_comment">Favorite comment
43
- <small><a href="http://test.host/admin/comments/new?back_to=%2Fadmin%2Fpost%2Fedit%2F1&selected=favorite_comment_id" onclick="return confirm('Are you sure you want to leave this page?\\n\\nIf you have made any changes to the fields without clicking the Save/Update entry button, your changes will be lost.\\n\\nClick OK to continue, or click Cancel to stay on this page.');">Add</a></small>
44
- </label>
45
- <select id="post_favorite_comment_id" name="post[favorite_comment_id]"><option value=""></option>
46
- <option value="1">John</option>
47
- <option value="2">Me</option>
48
- <option value="3">John</option>
49
- <option value="4">Me</option></select></li>
50
- HTML
51
-
52
- assert_equal expected, typus_belongs_to_field('favorite_comment')
53
-
54
- end
55
-
56
- should_eventually "test_typus_tree_field" do
57
-
58
- self.stubs(:expand_tree_into_select_field).returns('expand_tree_into_select_field')
59
-
60
- @resource = Page
61
-
62
- expected = <<-HTML
63
- <li><label for="page_parent">Parent</label>
64
- <select id="page_parent" name="page[parent]">
65
- <option value=""></option>
66
- expand_tree_into_select_field
67
- </select></li>
68
- HTML
69
-
70
- assert_equal expected, typus_tree_field('parent')
71
-
72
- end
73
-
74
- should_eventually "verify_attribute_disabled" do
75
- @resource = Post
76
- assert !attribute_disabled?('test')
77
- Post.expects(:accessible_attributes).returns(['test'])
78
- assert !attribute_disabled?('test')
79
- Post.expects(:accessible_attributes).returns(['no_test'])
80
- assert attribute_disabled?('test')
81
- end
82
-
83
- should_eventually "test_expand_tree_into_select_field" do
84
-
85
- items = Page.roots
86
-
87
- # Page#1 is a root.
88
-
89
- @item = Page.find(1)
90
- output = expand_tree_into_select_field(items, 'parent_id')
91
- expected = <<-HTML
92
- <option value="1"> &#8627; Page#1</option>
93
- <option value="2">&nbsp;&nbsp; &#8627; Page#2</option>
94
- <option value="3"> &#8627; Page#3</option>
95
- <option value="4">&nbsp;&nbsp; &#8627; Page#4</option>
96
- <option value="5">&nbsp;&nbsp; &#8627; Page#5</option>
97
- <option value="6">&nbsp;&nbsp;&nbsp;&nbsp; &#8627; Page#6</option>
98
- HTML
99
- assert_equal expected, output
100
-
101
- # Page#4 is a children.
102
-
103
- @item = Page.find(4)
104
- output = expand_tree_into_select_field(items, 'parent_id')
105
- expected = <<-HTML
106
- <option value="1"> &#8627; Page#1</option>
107
- <option value="2">&nbsp;&nbsp; &#8627; Page#2</option>
108
- <option selected value="3"> &#8627; Page#3</option>
109
- <option value="4">&nbsp;&nbsp; &#8627; Page#4</option>
110
- <option value="5">&nbsp;&nbsp; &#8627; Page#5</option>
111
- <option value="6">&nbsp;&nbsp;&nbsp;&nbsp; &#8627; Page#6</option>
112
- HTML
113
- assert_equal expected, output
114
-
115
- end
116
-
117
- end