jinda_mind 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (383) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +4 -0
  4. data/Rakefile +3 -0
  5. data/app/assets/config/manifest.js +4 -0
  6. data/app/assets/images/4dcity-old.ico +0 -0
  7. data/app/assets/images/4dcity.ico +0 -0
  8. data/app/assets/images/account.png +0 -0
  9. data/app/assets/images/add.png +0 -0
  10. data/app/assets/images/ajax-loader-circle.gif +0 -0
  11. data/app/assets/images/ajax-loader.gif +0 -0
  12. data/app/assets/images/anchor.png +0 -0
  13. data/app/assets/images/application_double.png +0 -0
  14. data/app/assets/images/application_form_edit.png +0 -0
  15. data/app/assets/images/arrow_left.png +0 -0
  16. data/app/assets/images/arrow_right.png +0 -0
  17. data/app/assets/images/arrow_turn_left.png +0 -0
  18. data/app/assets/images/arrow_turn_right.png +0 -0
  19. data/app/assets/images/calendar.png +0 -0
  20. data/app/assets/images/cancel.png +0 -0
  21. data/app/assets/images/chart_bar.png +0 -0
  22. data/app/assets/images/clock.png +0 -0
  23. data/app/assets/images/cog.png +0 -0
  24. data/app/assets/images/control_fastforward.png +0 -0
  25. data/app/assets/images/control_play.png +0 -0
  26. data/app/assets/images/cross.png +0 -0
  27. data/app/assets/images/delete.png +0 -0
  28. data/app/assets/images/external-link.png +0 -0
  29. data/app/assets/images/facebook-continue-button.png +0 -0
  30. data/app/assets/images/facebooksmall.png +0 -0
  31. data/app/assets/images/favicon.ico +0 -0
  32. data/app/assets/images/freemind(mm).png +0 -0
  33. data/app/assets/images/google-continue-button.png +0 -0
  34. data/app/assets/images/help.png +0 -0
  35. data/app/assets/images/highway-menu.png +0 -0
  36. data/app/assets/images/highway.png +0 -0
  37. data/app/assets/images/house.png +0 -0
  38. data/app/assets/images/icons-18-black.png +0 -0
  39. data/app/assets/images/icons-18-white.png +0 -0
  40. data/app/assets/images/icons-36-black.png +0 -0
  41. data/app/assets/images/icons-36-white.png +0 -0
  42. data/app/assets/images/logo.png +0 -0
  43. data/app/assets/images/logo_jinda.png +0 -0
  44. data/app/assets/images/logout.png +0 -0
  45. data/app/assets/images/new.gif +0 -0
  46. data/app/assets/images/new.png +0 -0
  47. data/app/assets/images/page.png +0 -0
  48. data/app/assets/images/page_attach.png +0 -0
  49. data/app/assets/images/page_green.png +0 -0
  50. data/app/assets/images/page_output.png +0 -0
  51. data/app/assets/images/page_pdf.png +0 -0
  52. data/app/assets/images/pencil.png +0 -0
  53. data/app/assets/images/printer.png +0 -0
  54. data/app/assets/images/refresh.png +0 -0
  55. data/app/assets/images/report.png +0 -0
  56. data/app/assets/images/rssmall.png +0 -0
  57. data/app/assets/images/tick.png +0 -0
  58. data/app/assets/images/twittersmall.png +0 -0
  59. data/app/assets/images/user.png +0 -0
  60. data/app/assets/images/user_admin_gear.png +0 -0
  61. data/app/assets/images/view_code.png +0 -0
  62. data/app/assets/javascripts/application.js-org +24 -0
  63. data/app/assets/javascripts/cable.js +13 -0
  64. data/app/assets/javascripts/disable_enter_key.js +10 -0
  65. data/app/assets/javascripts/iscroll-wrapper.js +32 -0
  66. data/app/assets/javascripts/iscroll.js +1084 -0
  67. data/app/assets/javascripts/jinda.js +14 -0
  68. data/app/assets/javascripts/jinda_jqm.js +24 -0
  69. data/app/assets/javascripts/jquery.mobile-1.2.1.js +9272 -0
  70. data/app/assets/javascripts/jquery.mobile.datebox.js +1778 -0
  71. data/app/assets/javascripts/jquery.mobile.splitview.js +695 -0
  72. data/app/assets/stylesheets/app.scss +90 -0
  73. data/app/assets/stylesheets/articles.scss +94 -0
  74. data/app/assets/stylesheets/fonts/sarabun.eot +0 -0
  75. data/app/assets/stylesheets/fonts/sarabun.ttf +0 -0
  76. data/app/assets/stylesheets/fonts/sarabun.woff +0 -0
  77. data/app/assets/stylesheets/fonts/sarabun_bold.ttf +0 -0
  78. data/app/assets/stylesheets/fonts/sarabun_bolditalic.ttf +0 -0
  79. data/app/assets/stylesheets/fonts/sarabun_italic.ttf +0 -0
  80. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.eot +0 -0
  81. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.ttf +0 -0
  82. data/app/assets/stylesheets/fonts/thsarabunnew-webfont.woff +0 -0
  83. data/app/assets/stylesheets/fonts/thsarabunnew.css +47 -0
  84. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.eot +0 -0
  85. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.ttf +0 -0
  86. data/app/assets/stylesheets/fonts/thsarabunnew_bold-webfont.woff +0 -0
  87. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.eot +0 -0
  88. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.ttf +0 -0
  89. data/app/assets/stylesheets/fonts/thsarabunnew_bolditalic-webfont.woff +0 -0
  90. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.eot +0 -0
  91. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.ttf +0 -0
  92. data/app/assets/stylesheets/fonts/thsarabunnew_italic-webfont.woff +0 -0
  93. data/app/assets/stylesheets/images/ajax-loader.gif +0 -0
  94. data/app/assets/stylesheets/images/button_black.png +0 -0
  95. data/app/assets/stylesheets/images/button_blue.png +0 -0
  96. data/app/assets/stylesheets/images/button_red.png +0 -0
  97. data/app/assets/stylesheets/images/gears.png +0 -0
  98. data/app/assets/stylesheets/images/icons-18-black.png +0 -0
  99. data/app/assets/stylesheets/images/icons-18-white.png +0 -0
  100. data/app/assets/stylesheets/images/icons-36-black.png +0 -0
  101. data/app/assets/stylesheets/images/icons-36-white.png +0 -0
  102. data/app/assets/stylesheets/images/indicator.gif +0 -0
  103. data/app/assets/stylesheets/jinda.scss +185 -0
  104. data/app/assets/stylesheets/jinda_jqm.css.scss +32 -0
  105. data/app/assets/stylesheets/jquery.mobile-1.2.1.css +2339 -0
  106. data/app/assets/stylesheets/jquery.mobile.datebox.css +65 -0
  107. data/app/assets/stylesheets/jquery.mobile.grids.collapsible.css +122 -0
  108. data/app/assets/stylesheets/jquery.mobile.splitview.css +128 -0
  109. data/app/assets/stylesheets/kul-4.2.css +1516 -0
  110. data/app/assets/stylesheets/kul-4.2.min.css +11 -0
  111. data/app/assets/stylesheets/modules.scss +84 -0
  112. data/app/assets/stylesheets/sarabun.css +37 -0
  113. data/app/assets/stylesheets/social.scss +133 -0
  114. data/app/controllers/concerns/jinda_general_concern.rb +179 -0
  115. data/app/controllers/concerns/jinda_run_concern.rb +368 -0
  116. data/app/controllers/jinda_controller.rb +66 -0
  117. data/bin/console +14 -0
  118. data/bin/setup +8 -0
  119. data/config/mongoid.yml +19 -0
  120. data/config/routes.rb +44 -0
  121. data/lib/generators/jinda/USAGE +2 -0
  122. data/lib/generators/jinda/config_generator.rb +102 -0
  123. data/lib/generators/jinda/install_generator.rb +269 -0
  124. data/lib/generators/jinda/installer/gems_install.rb +132 -0
  125. data/lib/generators/jinda/installer/test.rb +6 -0
  126. data/lib/generators/jinda/minitest_generator.rb +30 -0
  127. data/lib/generators/jinda/rspec_generator.rb +30 -0
  128. data/lib/generators/jinda/templates/Dockerfile +26 -0
  129. data/lib/generators/jinda/templates/README.md +173 -0
  130. data/lib/generators/jinda/templates/app/assets/config/manifest.js +4 -0
  131. data/lib/generators/jinda/templates/app/assets/javascripts/application.js +15 -0
  132. data/lib/generators/jinda/templates/app/assets/stylesheets/application.css.scss +15 -0
  133. data/lib/generators/jinda/templates/app/channels/application_cable/channel.rb +4 -0
  134. data/lib/generators/jinda/templates/app/channels/application_cable/connection.rb +4 -0
  135. data/lib/generators/jinda/templates/app/controllers/api/v1/notes_controller.rb +81 -0
  136. data/lib/generators/jinda/templates/app/controllers/jinda_org/admins_controller.rb +6 -0
  137. data/lib/generators/jinda/templates/app/controllers/jinda_org/application_controller.rb +41 -0
  138. data/lib/generators/jinda/templates/app/controllers/jinda_org/articles_controller.rb +110 -0
  139. data/lib/generators/jinda/templates/app/controllers/jinda_org/comments_controller.rb +31 -0
  140. data/lib/generators/jinda/templates/app/controllers/jinda_org/docs_controller.rb +56 -0
  141. data/lib/generators/jinda/templates/app/controllers/jinda_org/identities_controller.rb +5 -0
  142. data/lib/generators/jinda/templates/app/controllers/jinda_org/notes_controller.rb +84 -0
  143. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets.rb +28 -0
  144. data/lib/generators/jinda/templates/app/controllers/jinda_org/password_resets_controller.rb +34 -0
  145. data/lib/generators/jinda/templates/app/controllers/jinda_org/sessions_controller.rb +44 -0
  146. data/lib/generators/jinda/templates/app/controllers/jinda_org/sitemap_controller.rb +12 -0
  147. data/lib/generators/jinda/templates/app/controllers/jinda_org/users_controller.rb +35 -0
  148. data/lib/generators/jinda/templates/app/helpers/admins_helper.rb +2 -0
  149. data/lib/generators/jinda/templates/app/helpers/application_helper.rb +33 -0
  150. data/lib/generators/jinda/templates/app/helpers/articles_helper.rb +2 -0
  151. data/lib/generators/jinda/templates/app/helpers/basic_helper.rb +2 -0
  152. data/lib/generators/jinda/templates/app/helpers/comments_helper.rb +2 -0
  153. data/lib/generators/jinda/templates/app/helpers/ctrs_helper.rb +2 -0
  154. data/lib/generators/jinda/templates/app/helpers/devs_helper.rb +2 -0
  155. data/lib/generators/jinda/templates/app/helpers/pictures_helper.rb +2 -0
  156. data/lib/generators/jinda/templates/app/helpers/sitemap_helper.rb +2 -0
  157. data/lib/generators/jinda/templates/app/helpers/users_helper.rb +2 -0
  158. data/lib/generators/jinda/templates/app/jinda/index.mm +486 -0
  159. data/lib/generators/jinda/templates/app/jinda/template/index.mm +366 -0
  160. data/lib/generators/jinda/templates/app/jinda/template/linkview.haml +21 -0
  161. data/lib/generators/jinda/templates/app/jinda/template/view.html.erb +34 -0
  162. data/lib/generators/jinda/templates/app/mailers/application_mailer.rb +4 -0
  163. data/lib/generators/jinda/templates/app/mailers/jinda_mailer.rb +7 -0
  164. data/lib/generators/jinda/templates/app/mailers/note_mailer.rb +10 -0
  165. data/lib/generators/jinda/templates/app/mailers/user_mailer.rb +15 -0
  166. data/lib/generators/jinda/templates/app/models/address.rb +14 -0
  167. data/lib/generators/jinda/templates/app/models/article.rb +14 -0
  168. data/lib/generators/jinda/templates/app/models/comment.rb +14 -0
  169. data/lib/generators/jinda/templates/app/models/identity.rb +18 -0
  170. data/lib/generators/jinda/templates/app/models/jinda/doc.rb +36 -0
  171. data/lib/generators/jinda/templates/app/models/jinda/module.rb +11 -0
  172. data/lib/generators/jinda/templates/app/models/jinda/notice.rb +14 -0
  173. data/lib/generators/jinda/templates/app/models/jinda/role.rb +8 -0
  174. data/lib/generators/jinda/templates/app/models/jinda/runseq.rb +24 -0
  175. data/lib/generators/jinda/templates/app/models/jinda/service.rb +17 -0
  176. data/lib/generators/jinda/templates/app/models/jinda/xmain.rb +38 -0
  177. data/lib/generators/jinda/templates/app/models/note.rb +22 -0
  178. data/lib/generators/jinda/templates/app/models/param.rb +41 -0
  179. data/lib/generators/jinda/templates/app/models/person.rb +14 -0
  180. data/lib/generators/jinda/templates/app/models/user.rb +66 -0
  181. data/lib/generators/jinda/templates/app/views/adminbsbs/content.haml +241 -0
  182. data/lib/generators/jinda/templates/app/views/admins/edit_role/edit_role.html.erb +7 -0
  183. data/lib/generators/jinda/templates/app/views/admins/edit_role/select_user.html.erb +4 -0
  184. data/lib/generators/jinda/templates/app/views/api/v1/note.haml +0 -0
  185. data/lib/generators/jinda/templates/app/views/articles/_report.haml +35 -0
  186. data/lib/generators/jinda/templates/app/views/articles/edit.haml +23 -0
  187. data/lib/generators/jinda/templates/app/views/articles/edit_article/edit_article.html.erb +15 -0
  188. data/lib/generators/jinda/templates/app/views/articles/edit_article/select_article.html.erb +12 -0
  189. data/lib/generators/jinda/templates/app/views/articles/index.haml +5 -0
  190. data/lib/generators/jinda/templates/app/views/articles/my.haml +5 -0
  191. data/lib/generators/jinda/templates/app/views/articles/new_article/form_article.html.erb +16 -0
  192. data/lib/generators/jinda/templates/app/views/articles/show.html.haml +58 -0
  193. data/lib/generators/jinda/templates/app/views/articles/xedit_article/edit_article.html.erb +13 -0
  194. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile1.html.erb +23 -0
  195. data/lib/generators/jinda/templates/app/views/ctrs/vfolder1/viewfile2.html.erb +23 -0
  196. data/lib/generators/jinda/templates/app/views/ctrs/vfolder2/viewfile2.html.erb +23 -0
  197. data/lib/generators/jinda/templates/app/views/custom/_adsense.haml +6 -0
  198. data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_edit.html.erb +21 -0
  199. data/lib/generators/jinda/templates/app/views/docs/doc_edit/doc_select.html.erb +14 -0
  200. data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.html.erb +32 -0
  201. data/lib/generators/jinda/templates/app/views/docs/doc_new/doc_form.md +36 -0
  202. data/lib/generators/jinda/templates/app/views/docs/doc_xedit/doc_edit.html.erb +21 -0
  203. data/lib/generators/jinda/templates/app/views/docs/edit/select_note.html.erb +14 -0
  204. data/lib/generators/jinda/templates/app/views/docs/index.haml +21 -0
  205. data/lib/generators/jinda/templates/app/views/docs/my.haml +27 -0
  206. data/lib/generators/jinda/templates/app/views/identities/new.html.haml +32 -0
  207. data/lib/generators/jinda/templates/app/views/jinda/_activity.md +10 -0
  208. data/lib/generators/jinda/templates/app/views/jinda/_menu.haml +27 -0
  209. data/lib/generators/jinda/templates/app/views/jinda/_menu_mm.haml +44 -0
  210. data/lib/generators/jinda/templates/app/views/jinda/_model.md +5 -0
  211. data/lib/generators/jinda/templates/app/views/jinda/_modul.md +9 -0
  212. data/lib/generators/jinda/templates/app/views/jinda/_pending_home.haml +5 -0
  213. data/lib/generators/jinda/templates/app/views/jinda/_pending_page.haml +24 -0
  214. data/lib/generators/jinda/templates/app/views/jinda/_service.md +24 -0
  215. data/lib/generators/jinda/templates/app/views/jinda/_static.haml +13 -0
  216. data/lib/generators/jinda/templates/app/views/jinda/doc-thai.md +37 -0
  217. data/lib/generators/jinda/templates/app/views/jinda/doc.md +36 -0
  218. data/lib/generators/jinda/templates/app/views/jinda/error_logs.haml +22 -0
  219. data/lib/generators/jinda/templates/app/views/jinda/feed.rss.builder +27 -0
  220. data/lib/generators/jinda/templates/app/views/jinda/help.haml +20 -0
  221. data/lib/generators/jinda/templates/app/views/jinda/index.html.haml +53 -0
  222. data/lib/generators/jinda/templates/app/views/jinda/logs.haml +22 -0
  223. data/lib/generators/jinda/templates/app/views/jinda/notice_logs.haml +18 -0
  224. data/lib/generators/jinda/templates/app/views/jinda/pending.haml +1 -0
  225. data/lib/generators/jinda/templates/app/views/jinda/run_form.haml +42 -0
  226. data/lib/generators/jinda/templates/app/views/jinda/run_output.haml +38 -0
  227. data/lib/generators/jinda/templates/app/views/jinda/search.haml +20 -0
  228. data/lib/generators/jinda/templates/app/views/jinda/status.haml +61 -0
  229. data/lib/generators/jinda/templates/app/views/jinda_mailer/gmail.html.erb +9 -0
  230. data/lib/generators/jinda/templates/app/views/layouts/_head.html.erb +10 -0
  231. data/lib/generators/jinda/templates/app/views/layouts/_meta_tag.html.erb +19 -0
  232. data/lib/generators/jinda/templates/app/views/layouts/application.haml +4 -0
  233. data/lib/generators/jinda/templates/app/views/layouts/bsb/_footer.haml +7 -0
  234. data/lib/generators/jinda/templates/app/views/layouts/bsb/_header.haml +147 -0
  235. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu.haml +47 -0
  236. data/lib/generators/jinda/templates/app/views/layouts/bsb/_menu_mm.haml +34 -0
  237. data/lib/generators/jinda/templates/app/views/layouts/bsb/_rightbar.haml +123 -0
  238. data/lib/generators/jinda/templates/app/views/layouts/bsb/_sidebar.haml +155 -0
  239. data/lib/generators/jinda/templates/app/views/layouts/bsb/application.haml-bsb +47 -0
  240. data/lib/generators/jinda/templates/app/views/layouts/gmail.html.erb +9 -0
  241. data/lib/generators/jinda/templates/app/views/layouts/jqm/_full.haml +33 -0
  242. data/lib/generators/jinda/templates/app/views/layouts/jqm/_page.haml +16 -0
  243. data/lib/generators/jinda/templates/app/views/layouts/jqm/application.haml-jqm +4 -0
  244. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.erb +13 -0
  245. data/lib/generators/jinda/templates/app/views/layouts/mailer.html.haml +3 -0
  246. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.erb +1 -0
  247. data/lib/generators/jinda/templates/app/views/layouts/mailer.text.haml +1 -0
  248. data/lib/generators/jinda/templates/app/views/layouts/mobile.html.erb +13 -0
  249. data/lib/generators/jinda/templates/app/views/layouts/mobilejq.html.erb +31 -0
  250. data/lib/generators/jinda/templates/app/views/layouts/print.html.erb +22 -0
  251. data/lib/generators/jinda/templates/app/views/layouts/utf8.html.erb +22 -0
  252. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.html.haml +7 -0
  253. data/lib/generators/jinda/templates/app/views/note_mailer/gmail.text.haml +8 -0
  254. data/lib/generators/jinda/templates/app/views/notes/delete/select_note.html.erb +14 -0
  255. data/lib/generators/jinda/templates/app/views/notes/edit/edit_note.html.erb +10 -0
  256. data/lib/generators/jinda/templates/app/views/notes/edit/select_note.html.erb +14 -0
  257. data/lib/generators/jinda/templates/app/views/notes/index.haml +71 -0
  258. data/lib/generators/jinda/templates/app/views/notes/mail/display_mail.html.erb +20 -0
  259. data/lib/generators/jinda/templates/app/views/notes/mail/select_note.html.erb +19 -0
  260. data/lib/generators/jinda/templates/app/views/notes/mail/show.html.haml +13 -0
  261. data/lib/generators/jinda/templates/app/views/notes/my.haml +21 -0
  262. data/lib/generators/jinda/templates/app/views/notes/new/new_note.html.erb +13 -0
  263. data/lib/generators/jinda/templates/app/views/notes/show.haml +10 -0
  264. data/lib/generators/jinda/templates/app/views/notes/xedit/edit_note.html.erb +10 -0
  265. data/lib/generators/jinda/templates/app/views/password_resets/edit.html.erb +21 -0
  266. data/lib/generators/jinda/templates/app/views/password_resets/new.html.haml +11 -0
  267. data/lib/generators/jinda/templates/app/views/sessions/new.html.haml +22 -0
  268. data/lib/generators/jinda/templates/app/views/sitemap/index.xml.haml +10 -0
  269. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.html.haml +3 -0
  270. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.erb +3 -0
  271. data/lib/generators/jinda/templates/app/views/user_mailer/password_reset.text.haml +3 -0
  272. data/lib/generators/jinda/templates/app/views/users/index.haml +13 -0
  273. data/lib/generators/jinda/templates/app/views/users/pwd/enter.html.erb +6 -0
  274. data/lib/generators/jinda/templates/app/views/users/user/enter_user.html.erb +10 -0
  275. data/lib/generators/jinda/templates/config/cloudinary.yml +9 -0
  276. data/lib/generators/jinda/templates/config/initializers/fix_mongoid_generator.rb-org +14 -0
  277. data/lib/generators/jinda/templates/config/mongoid.yml-docker +182 -0
  278. data/lib/generators/jinda/templates/config/mongoid.yml-localhost +182 -0
  279. data/lib/generators/jinda/templates/db/seeds.rb +6 -0
  280. data/lib/generators/jinda/templates/docker-compose.yml +17 -0
  281. data/lib/generators/jinda/templates/dot/dot.env +2 -0
  282. data/lib/generators/jinda/templates/dotrspec +3 -0
  283. data/lib/generators/jinda/templates/entrypoint.sh +13 -0
  284. data/lib/generators/jinda/templates/jinda.yml +10 -0
  285. data/lib/generators/jinda/templates/public/404.html +67 -0
  286. data/lib/generators/jinda/templates/public/422.html +67 -0
  287. data/lib/generators/jinda/templates/public/500.html +66 -0
  288. data/lib/generators/jinda/templates/public/assets/images/logo.png +0 -0
  289. data/lib/generators/jinda/templates/public/favicon.ico +0 -0
  290. data/lib/generators/jinda/templates/public/robots.txt +3 -0
  291. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_index_spec.rb +23 -0
  292. data/lib/generators/jinda/templates/spec/controllers/api/v1_get_my_spec.rb +14 -0
  293. data/lib/generators/jinda/templates/spec/controllers/api/v1_post_spec.rb +19 -0
  294. data/lib/generators/jinda/templates/spec/controllers/sessions_controller_spec.rb +98 -0
  295. data/lib/generators/jinda/templates/spec/features/userlogins_spec.rb +23 -0
  296. data/lib/generators/jinda/templates/spec/mailers/note_spec.rb +24 -0
  297. data/lib/generators/jinda/templates/spec/mailers/previews/note_preview.rb +9 -0
  298. data/lib/generators/jinda/templates/spec/models/note_spec.rb +41 -0
  299. data/lib/generators/jinda/templates/spec/models/user_spec.rb +12 -0
  300. data/lib/generators/jinda/templates/spec/rails_helper.rb +42 -0
  301. data/lib/generators/jinda/templates/spec/spec_helper.rb +80 -0
  302. data/lib/generators/jinda/templates/spec/support/authentication_helper.rb +20 -0
  303. data/lib/generators/jinda/templates/spec/support/databasecleaner.rb +13 -0
  304. data/lib/generators/jinda/templates/spec/support/factory_bot.rb +12 -0
  305. data/lib/generators/jinda/templates/spec/support/omniauth_macros.rb +38 -0
  306. data/lib/generators/jinda/templates/spec/support/request_spec_helper.rb +8 -0
  307. data/lib/generators/jinda/templates/spec/views/articles/_article.html.erb_spec.rbx +14 -0
  308. data/lib/generators/jinda/templates/test/application_system_test_case.rb +5 -0
  309. data/lib/generators/jinda/templates/test/integration/jinda_routes_test.rb +42 -0
  310. data/lib/generators/jinda/templates/test/test_helper.rb +6 -0
  311. data/lib/jinda/date_helpers.rb +109 -0
  312. data/lib/jinda/gem_helpers.rb +11 -0
  313. data/lib/jinda/gen_class.rb +13 -0
  314. data/lib/jinda/gen_freemind.rb +33 -0
  315. data/lib/jinda/gen_helpers.rb +141 -0
  316. data/lib/jinda/gen_models.rb +137 -0
  317. data/lib/jinda/gen_modules.rb +17 -0
  318. data/lib/jinda/gen_runseq.rb +71 -0
  319. data/lib/jinda/gen_services.rb +90 -0
  320. data/lib/jinda/gen_xmain.rb +38 -0
  321. data/lib/jinda/get_app.rb +34 -0
  322. data/lib/jinda/helpers.rb +26 -0
  323. data/lib/jinda/init_vars.rb +36 -0
  324. data/lib/jinda/railtie.rb +18 -0
  325. data/lib/jinda/rake_views.rb +63 -0
  326. data/lib/jinda/refresh.rb +67 -0
  327. data/lib/jinda/themes.rb +175 -0
  328. data/lib/jinda.rb +7 -0
  329. data/lib/jquery.validate.js +1293 -0
  330. data/lib/tasks/jinda.rake +42 -0
  331. data/test/dummy/Rakefile +6 -0
  332. data/test/dummy/app/assets/config/manifest.js +3 -0
  333. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  334. data/test/dummy/app/channels/application_cable/channel.rb +4 -0
  335. data/test/dummy/app/channels/application_cable/connection.rb +4 -0
  336. data/test/dummy/app/controllers/application_controller.rb +2 -0
  337. data/test/dummy/app/helpers/application_helper.rb +2 -0
  338. data/test/dummy/app/javascript/packs/application.js +15 -0
  339. data/test/dummy/app/jobs/application_job.rb +7 -0
  340. data/test/dummy/app/mailers/application_mailer.rb +4 -0
  341. data/test/dummy/app/models/application_record.rb +3 -0
  342. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  343. data/test/dummy/app/views/layouts/mailer.html.erb +13 -0
  344. data/test/dummy/app/views/layouts/mailer.text.erb +1 -0
  345. data/test/dummy/bin/rails +4 -0
  346. data/test/dummy/bin/rake +4 -0
  347. data/test/dummy/bin/setup +33 -0
  348. data/test/dummy/config/application.rb +19 -0
  349. data/test/dummy/config/boot.rb +5 -0
  350. data/test/dummy/config/cable.yml +10 -0
  351. data/test/dummy/config/database.yml +25 -0
  352. data/test/dummy/config/environment.rb +5 -0
  353. data/test/dummy/config/environments/development.rb +62 -0
  354. data/test/dummy/config/environments/production.rb +112 -0
  355. data/test/dummy/config/environments/test.rb +49 -0
  356. data/test/dummy/config/initializers/application_controller_renderer.rb +8 -0
  357. data/test/dummy/config/initializers/assets.rb +12 -0
  358. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  359. data/test/dummy/config/initializers/content_security_policy.rb +28 -0
  360. data/test/dummy/config/initializers/cookies_serializer.rb +5 -0
  361. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  362. data/test/dummy/config/initializers/inflections.rb +16 -0
  363. data/test/dummy/config/initializers/mime_types.rb +4 -0
  364. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  365. data/test/dummy/config/locales/en.yml +33 -0
  366. data/test/dummy/config/puma.rb +38 -0
  367. data/test/dummy/config/routes.rb +3 -0
  368. data/test/dummy/config/spring.rb +6 -0
  369. data/test/dummy/config/storage.yml +34 -0
  370. data/test/dummy/config.ru +5 -0
  371. data/test/dummy/db/development.sqlite3 +0 -0
  372. data/test/dummy/log/development.log +8 -0
  373. data/test/dummy/public/404.html +67 -0
  374. data/test/dummy/public/422.html +67 -0
  375. data/test/dummy/public/500.html +66 -0
  376. data/test/dummy/public/apple-touch-icon-precomposed.png +0 -0
  377. data/test/dummy/public/apple-touch-icon.png +0 -0
  378. data/test/dummy/public/favicon.ico +0 -0
  379. data/test/dummy/tmp/development_secret.txt +1 -0
  380. data/test/integration/navigation_test.rb +7 -0
  381. data/test/jinda_test.rb +7 -0
  382. data/test/test_helper.rb +19 -0
  383. metadata +466 -0
@@ -0,0 +1,66 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>We're sorry, but something went wrong (500)</title>
5
+ <meta name="viewport" content="width=device-width,initial-scale=1">
6
+ <style>
7
+ .rails-default-error-page {
8
+ background-color: #EFEFEF;
9
+ color: #2E2F30;
10
+ text-align: center;
11
+ font-family: arial, sans-serif;
12
+ margin: 0;
13
+ }
14
+
15
+ .rails-default-error-page div.dialog {
16
+ width: 95%;
17
+ max-width: 33em;
18
+ margin: 4em auto 0;
19
+ }
20
+
21
+ .rails-default-error-page div.dialog > div {
22
+ border: 1px solid #CCC;
23
+ border-right-color: #999;
24
+ border-left-color: #999;
25
+ border-bottom-color: #BBB;
26
+ border-top: #B00100 solid 4px;
27
+ border-top-left-radius: 9px;
28
+ border-top-right-radius: 9px;
29
+ background-color: white;
30
+ padding: 7px 12% 0;
31
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
32
+ }
33
+
34
+ .rails-default-error-page h1 {
35
+ font-size: 100%;
36
+ color: #730E15;
37
+ line-height: 1.5em;
38
+ }
39
+
40
+ .rails-default-error-page div.dialog > p {
41
+ margin: 0 0 1em;
42
+ padding: 1em;
43
+ background-color: #F7F7F7;
44
+ border: 1px solid #CCC;
45
+ border-right-color: #999;
46
+ border-left-color: #999;
47
+ border-bottom-color: #999;
48
+ border-bottom-left-radius: 4px;
49
+ border-bottom-right-radius: 4px;
50
+ border-top-color: #DADADA;
51
+ color: #666;
52
+ box-shadow: 0 3px 8px rgba(50, 50, 50, 0.17);
53
+ }
54
+ </style>
55
+ </head>
56
+
57
+ <body class="rails-default-error-page">
58
+ <!-- This file lives in public/500.html -->
59
+ <div class="dialog">
60
+ <div>
61
+ <h1>We're sorry, but something went wrong.</h1>
62
+ </div>
63
+ <p>If you are the application owner check the logs for more information.</p>
64
+ </div>
65
+ </body>
66
+ </html>
@@ -0,0 +1,3 @@
1
+ # See http://www.robotstxt.org/robotstxt.html for documentation on how to use the robots.txt file
2
+ User-agent: *
3
+ Disallow: /
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+ # describe Api::V1::NotesController, '#index', type: :request do
3
+ RSpec.describe 'Notes API', type: :request do
4
+ # let(:notes) { create_list(:note,1)}
5
+ # let!(:notes) {Note.create(title: "dddd", body: "body")}
6
+ let!(:note) {FactoryBot.create_list(:note, 9)}
7
+ let(:note_id) { notes.first.id }
8
+
9
+ describe 'GET /api/v1/notes' do
10
+ before { get api_v1_notes_path }
11
+
12
+ it 'returns notes size as expected' do
13
+ expect(json).not_to be_empty
14
+ expect(json.size).to eq(9)
15
+ end
16
+
17
+ it 'returns status code 200' do
18
+ expect(response).to have_http_status(:success)
19
+ end
20
+
21
+ end
22
+ end
23
+
@@ -0,0 +1,14 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe 'Notes API', type: :request do
4
+ let!(:note) {FactoryBot.create_list(:note, 9)}
5
+ before {get api_v1_notes_my_path}
6
+
7
+ it 'returns all notes' do
8
+ expect(json.size).to eq(9)
9
+ end
10
+ it 'returns status code 200' do
11
+ expect(response).to have_http_status(:success)
12
+ end
13
+ end
14
+
@@ -0,0 +1,19 @@
1
+ require 'rails_helper'
2
+ describe Api::V1::NotesController , type: :controller do
3
+
4
+ before do
5
+ create_and_sign_in_user
6
+ post :create , params: { :body => 'test_body', :title => 'test_title', :user => User.first}
7
+ end
8
+
9
+ it 'returns the title' do
10
+ expect(JSON.parse(@response.body)['title']).to eq('test_title')
11
+ end
12
+ it 'returns the body' do
13
+ expect(JSON.parse(@response.body)['body']).to eq('test_body')
14
+ end
15
+
16
+ it 'returns a created status' do
17
+ expect(response).to have_http_status(:created)
18
+ end
19
+ end
@@ -0,0 +1,98 @@
1
+ # sessions_controller_spec.rb
2
+ # 1. Set up the mock
3
+ # 2. Make the request
4
+ # 3. Test whatever code is attached to the callback
5
+ # require 'spec_helper'
6
+ require 'rails_helper'
7
+ describe SessionsController, type: :controller do
8
+
9
+ describe "Google" do
10
+
11
+ before do
12
+
13
+ @request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:google_oauth2]
14
+ visit '/auth/google_oauth2'
15
+ end
16
+
17
+ describe "#create" do
18
+
19
+ it "should successfully create a session" do
20
+ session[:user_id].should be_nil
21
+ post :create, params: {provider: :google_oauth2}
22
+ session[:user_id].should_not be_nil
23
+ end
24
+
25
+ it "should redirect the user to root_path " do
26
+ post :create, params: {provider: :google_oauth2}
27
+ response.should redirect_to root_path
28
+ end
29
+
30
+ end
31
+
32
+ #describe "#destroy", js: true do
33
+ describe "#destroy" do
34
+ before do
35
+ post :create, params: {provider: :google_oauth2}
36
+ end
37
+
38
+ it "should clear the session" do
39
+ session[:user_id].should_not be_nil
40
+ delete :destroy
41
+ session[:user_id].should be_nil
42
+ end
43
+
44
+ it "should redirect to the home page" do
45
+ delete :destroy
46
+ # response.should redirect_to root_url
47
+ # https://stackoverflow.com/questions/5144758/how-to-test-a-javascript-redirect-with-rspec
48
+ response.body.should include("window.location")
49
+ end
50
+ end
51
+ end
52
+
53
+ skip describe "Facebook" do
54
+ # skip or finish at config facebook
55
+
56
+ before do
57
+ @request.env['omniauth.auth'] = OmniAuth.config.mock_auth[:facebook]
58
+ visit '/auth/facebook'
59
+ end
60
+
61
+ describe "#create" do
62
+
63
+ it "should successfully create a session" do
64
+ session[:user_id].should be_nil
65
+ post :create, params: {provider: :facebook}
66
+ session[:user_id].should_not be_nil
67
+ end
68
+
69
+ it "should redirect the user to the articles/my url" do
70
+ post :create, params: {provider: :facebook}
71
+ response.should redirect_to articles_my_path
72
+ end
73
+
74
+ end
75
+
76
+ describe "#destroy" do
77
+ before do
78
+ post :create, params: {provider: :facebook}
79
+ end
80
+
81
+ it "should clear the session" do
82
+ session[:user_id].should_not be_nil
83
+ delete :destroy
84
+ session[:user_id].should be_nil
85
+ end
86
+
87
+ it "should redirect to the home page" do
88
+ delete :destroy
89
+ # response.should redirect_to root_url
90
+ # https://stackoverflow.com/questions/5144758/how-to-test-a-javascript-redirect-with-rspec
91
+ response.body.should include("window.location")
92
+ end
93
+ end
94
+ end
95
+
96
+ end
97
+
98
+
@@ -0,0 +1,23 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.feature "Userlogins", type: :feature do
4
+ scenario "Admin User Sign In" do
5
+ skip visit "/sessions/new"
6
+
7
+ fill_in "User name", :with => "admin"
8
+ fill_in "Password", :with => "secret1"
9
+ click_button "Sign In"
10
+
11
+ xexpect(page).to have_text("My Articles")
12
+ end
13
+
14
+ scenario "Google User Sign In" do
15
+ visit "/auth/google_oauth2"
16
+ expect(page).to have_text("My Articles")
17
+ end
18
+
19
+
20
+
21
+
22
+
23
+ end
@@ -0,0 +1,24 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe NoteMailer do
4
+
5
+
6
+ describe 'gmail' do
7
+
8
+ let(:mail) {NoteMailer.gmail("Test Body", "receiver@email.com", "Test title", "from@example.com")}
9
+
10
+
11
+ it 'renders the subject' do
12
+ expect(mail.subject).to eql('Test title')
13
+ end
14
+
15
+ it 'renders the receiver email' do
16
+ expect(mail.to).to eql(['receiver@email.com'])
17
+ end
18
+
19
+ it 'renders the sender email' do
20
+ expect(mail.from).to eql(['from@example.com'])
21
+ end
22
+ end
23
+
24
+ end
@@ -0,0 +1,9 @@
1
+ # Preview all emails at http://localhost:3000/rails/mailers/note
2
+ class NotePreview < ActionMailer::Preview
3
+
4
+ # Preview this email at http://localhost:3000/rails/mailers/note/gmail
5
+ def gmail
6
+ NoteMailer.gmail
7
+ end
8
+
9
+ end
@@ -0,0 +1,41 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe Note, type: :model do
4
+ describe "Required only title (Maximum 30)" do
5
+
6
+ it "valid with both title and body" do
7
+ before_count = Note.count
8
+ Note.create(title: "dddd", body: "body")
9
+ expect(Note.count).not_to eq(before_count)
10
+ end
11
+
12
+ it "valid with only title" do
13
+ before_count = Note.count
14
+ Note.create(title: "Title")
15
+ expect(Note.count).not_to eq(before_count)
16
+ end
17
+
18
+ it "invalid with only body" do
19
+ before_count = Note.count
20
+ Note.new(body: "body")
21
+ expect(Note.count).to eq(before_count)
22
+ end
23
+
24
+ it "invalid body length more than 1000" do
25
+ before_count = Note.count
26
+ title_max = "x"*30
27
+ body_max = "y"*1001
28
+ Note.create(title: title_max, body: body_max)
29
+ expect(Note.count).to eq(before_count)
30
+ end
31
+ end
32
+
33
+ describe "title data blank" do
34
+ it "auto fill from body" do
35
+ note = Note.create(:title => "", :body => "Body content")
36
+ note.title.should == "Body content"
37
+ end
38
+ end
39
+
40
+ end
41
+
@@ -0,0 +1,12 @@
1
+ require 'rails_helper'
2
+
3
+ RSpec.describe "User", :type => :model do
4
+ it "prevents duplicates " do
5
+ user1 = create(:user, code: 'abc', email: 'test@email.com')
6
+ user2 = build(:user, code: 'abc', email: 'test@email.com')
7
+
8
+ user1.should be_valid
9
+ #user2.should be_valid
10
+ user2.should_not have_valid(:code)
11
+ end
12
+ end
@@ -0,0 +1,42 @@
1
+ # This file is copied to spec/ when you run 'rails generate rspec:install'
2
+ ENV['RAILS_ENV'] ||= 'test'
3
+ require File.expand_path('../../config/environment', __FILE__)
4
+ Dir[Rails.root.join("spec/support/**/*.rb")].each { |f| require f } # Add this at top of file
5
+ # Prevent database truncation if the environment is production
6
+ abort("The Rails environment is running in production mode!") if Rails.env.production?
7
+ require 'rspec/rails'
8
+ require 'spec_helper'
9
+
10
+ RSpec.configure do |config|
11
+
12
+ # Add create_and_sign_in_user
13
+ config.include AuthenticationHelper, type: :controller
14
+
15
+ # To include RequestSpecHelper
16
+ config.include RequestSpecHelper, type: :request
17
+
18
+ # config.infer_spec_type_from_file_location!
19
+
20
+ # Filter lines from Rails gems in backtraces.
21
+ config.filter_rails_from_backtrace!
22
+ # arbitrary gems may also be filtered via:
23
+ # config.filter_gems_from_backtrace("gem name")
24
+
25
+
26
+
27
+ # Added to make factorybot work
28
+ # FactoryBot.allow_class_lookup = false
29
+ config.use_transactional_fixtures = false
30
+ config.include FactoryBot::Syntax::Methods
31
+ config.before do
32
+ FactoryBot.find_definitions
33
+ end
34
+ # configure shoulda matchers to use rspec as the test framework and full matcher libraries for rails
35
+ Shoulda::Matchers.configure do |config|
36
+ config.integrate do |with|
37
+ with.test_framework :rspec
38
+ with.library :rails
39
+ end
40
+ end
41
+
42
+ end
@@ -0,0 +1,80 @@
1
+ # https://www.natashatherobot.com/rails-test-omniauth-sessions-controller/
2
+ # spec_helper.rb
3
+ require 'rubygems'
4
+ require 'capybara/rspec'
5
+ # Set up the mock
6
+ require 'support/omniauth_macros'
7
+ require 'valid_attribute'
8
+
9
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
10
+ RSpec.configure do |config|
11
+ config.filter_run focus: true
12
+ config.run_all_when_everything_filtered = true
13
+
14
+ # config.include SpecTestHelper, :type => :controller
15
+ config.expect_with :rspec do |expectations|
16
+ expectations.include_chain_clauses_in_custom_matcher_descriptions = true
17
+ expectations.syntax = [:expect, :should]
18
+ end
19
+ config.mock_with :rspec do |mocks|
20
+ mocks.verify_partial_doubles = true
21
+ end
22
+ config.shared_context_metadata_behavior = :apply_to_host_groups
23
+
24
+ # https://github.com/DatabaseCleaner/database_cleaner #
25
+ # config.use_transactional_fixtures = false
26
+ # https://stackoverflow.com/questions/15148585/undefined-method-visit-when-using-rspec-and-capybara-in-rails
27
+ config.include Capybara::DSL
28
+
29
+ # https://stackoverflow.com/questions/21445164/set-chrome-as-default-browser-for-rspec-capybara/30551595
30
+ Capybara.register_driver :chrome do |app|
31
+ Capybara::Selenium::Driver.new(app, :browser => :chrome)
32
+ end
33
+ Capybara.javascript_driver = :chrome
34
+
35
+ config.before(:suite) do
36
+ if config.use_transactional_fixtures?
37
+ raise(<<-MSG)
38
+ Delete line `config.use_transactional_fixtures = true` from rails_helper.rb
39
+ (or set it to false) to prevent uncommitted transactions being used in
40
+ JavaScript-dependent specs.
41
+
42
+ During testing, the app-under-test that the browser driver connects to
43
+ uses a different database connection to the database connection used by
44
+ the spec. The app's database connection would not be able to access
45
+ uncommitted transaction data setup over the spec's database connection.
46
+ MSG
47
+ end
48
+ DatabaseCleaner.clean_with(:deletion)
49
+ end
50
+
51
+ config.before(:each, :js => true) do
52
+ #DatabaseCleaner.strategy = :transaction
53
+ DatabaseCleaner.strategy = :deletion
54
+ end
55
+
56
+ config.before(:each, type: :feature) do
57
+ # :rack_test driver's Rack app under test shares database connection
58
+ # with the specs, so continue to use transaction strategy for speed.
59
+ driver_shares_db_connection_with_specs = Capybara.current_driver == :rack_test
60
+
61
+ unless driver_shares_db_connection_with_specs
62
+ # Driver is probably for an external browser with an app
63
+ # under test that does *not* share a database connection with the
64
+ # specs, so use truncation strategy.
65
+ # DatabaseCleaner.strategy = :truncation
66
+ DatabaseCleaner[:mongoid].strategy = :deletion
67
+
68
+ end
69
+ end
70
+
71
+ config.before(:each) do
72
+ DatabaseCleaner.start
73
+ end
74
+
75
+ config.append_after(:each) do
76
+ DatabaseCleaner.clean
77
+ end
78
+ # https://github.com/DatabaseCleaner/database_cleaner #
79
+
80
+ end
@@ -0,0 +1,20 @@
1
+ module AuthenticationHelper
2
+ # controller return 1. Session 2. Cookies ==> user.id
3
+ def sign_in(user)
4
+ @user = user
5
+ current_ma_user
6
+ end
7
+
8
+ def create_and_sign_in_user
9
+ user = FactoryBot.create(:user)
10
+ sign_in(user)
11
+ return user
12
+ end
13
+ # from Jinda::Helpers
14
+ def current_ma_user
15
+ @user ||= User.where(:auth_token => user.auth_token)
16
+ return @user
17
+ end
18
+
19
+ end
20
+
@@ -0,0 +1,13 @@
1
+ RSpec.configure do |config|
2
+ config.before(:suite) do
3
+ DatabaseCleaner[:mongoid].strategy = :deletion
4
+ end
5
+
6
+ config.before(:each) do
7
+ DatabaseCleaner[:mongoid].start
8
+ end
9
+
10
+ config.after(:each) do
11
+ DatabaseCleaner[:mongoid].clean
12
+ end
13
+ end
@@ -0,0 +1,12 @@
1
+ FactoryBot.define do
2
+ factory :user, class: 'User' do
3
+ code {Faker::Name.unique.name}
4
+ email {Faker::Internet.email}
5
+ role {"Admin"}
6
+ end
7
+ factory :note, class: 'Note' do
8
+ title { Faker::Lorem.sentence[0..29] }
9
+ body { Faker::Lorem.sentence[0..999] }
10
+ user { User.first }
11
+ end
12
+ end
@@ -0,0 +1,38 @@
1
+ # in spec/support/omniauth_macro.rb
2
+ module OmniauthMacros
3
+ require 'omniauth'
4
+ #To enable all request to OmniAuth short circuited to use below mock authentication hash the /auth/provider will redirect immediately to /auth/provider/call back
5
+ # https://github.com/omniauth/omniauth/wiki/Integration-Testing
6
+ OmniAuth.config.test_mode = true
7
+
8
+ omniauth_hash = { 'provider' => 'google_oauth2',
9
+ 'uid' => '105362273761620533373',
10
+ 'info' => {
11
+ 'name' => 'Kulsoft',
12
+ 'email' => 'kulsoft.net@gmail.com',
13
+ 'nickname' => 'kulsoft'
14
+ },
15
+ 'extra' => {'raw_info' =>
16
+ { 'location' => 'San Francisco',
17
+ 'gravatar_id' => '123456789'
18
+ }
19
+ }
20
+ }
21
+ OmniAuth.config.add_mock(:google_oauth2, omniauth_hash)
22
+
23
+ omniauth_hash = { 'provider' => 'facebook',
24
+ 'uid' => '105362273761620533373',
25
+ 'info' => {
26
+ 'name' => 'Peter Colling',
27
+ 'email' => '1.0@kul.asia',
28
+ 'nickname' => 'Peter C'
29
+ },
30
+ 'extra' => {'raw_info' =>
31
+ {'location' => 'LA',
32
+ 'gravatar_id' => '13'
33
+ }
34
+ }
35
+ }
36
+ OmniAuth.config.add_mock(:facebook, omniauth_hash)
37
+ end
38
+
@@ -0,0 +1,8 @@
1
+ #request_spec_helper.rb
2
+
3
+ module RequestSpecHelper
4
+ # Parse JSON response to ruby hash
5
+ def json
6
+ JSON.parse(response.body)
7
+ end
8
+ end
@@ -0,0 +1,14 @@
1
+ let login_as_admin
2
+
3
+ describe 'articles/_article.html.erb' do
4
+ context 'when the article has a url' do
5
+ it 'display the url' do
6
+ assign(:article, Article.build(:article, url: 'http://localhost:3000/jinda/init?s=articles:new_article'))
7
+
8
+ render
9
+
10
+ expect(rendered).to have_link 'Article', href: 'http://localhost:3000/jinda/init?s=articles:new_article'
11
+ end
12
+ end
13
+ end
14
+
@@ -0,0 +1,5 @@
1
+ require "test_helper"
2
+
3
+ class ApplicationSystemTestCase < ActionDispatch::SystemTestCase
4
+ driven_by :selenium, using: :chrome, screen_size: [1400, 1400]
5
+ end
@@ -0,0 +1,42 @@
1
+ require 'test_helper'
2
+ class RegistrationRoutesTest < ActionController::TestCase
3
+
4
+ test 'register user form route' do
5
+ assert_routing '/identities/new', {controller: 'identities', action: 'new'}
6
+ #assert_routing({path: '/identities/new', method: 'post'},{controller: 'identities', action: 'new'})
7
+ end
8
+ test 'Admin Jinda Pending' do
9
+ assert_routing '/jinda/new', {controller: 'jinda', action: 'new'}
10
+ end
11
+ test 'Admin Jinda Pending redirecting to action pending' do
12
+ assert_routing '/jinda/pending', {controller: 'jinda', action: 'pending'}
13
+ #assert_routing {'/jinda/pending', method: 'post'},{controller: 'jinda', action: 'index'})
14
+ end
15
+ test 'jinda action init' do
16
+ assert_routing '/jinda/init', {controller: 'jinda', action:'init'}
17
+ end
18
+ test 'jinda action run' do
19
+ assert_routing '/jinda/run', {controller: 'jinda', action:'run'}
20
+ end
21
+ test 'jinda action run_form' do
22
+ assert_routing '/jinda/run_form', {controller: 'jinda', action:'run_form'}
23
+ end
24
+ test 'jinda action end_form' do
25
+ assert_routing '/jinda/end_form', {controller: 'jinda', action:'end_form'}
26
+ end
27
+ test 'post jinda action end_form' do
28
+ assert_routing({ path:'/jinda/end_form',method: :post},{controller: 'jinda', action:'end_form'})
29
+ end
30
+ test 'jinda action run_do' do
31
+ assert_routing '/jinda/run_do', {controller: 'jinda', action:'run_do'}
32
+ end
33
+ # test "redirect_to(:action=>\'run_#{@runseq.action}\', :id=>@xmain.id)" do
34
+ # assert_select 'title', "Welcome to Rails Testing Guide"
35
+ # end
36
+
37
+
38
+
39
+
40
+
41
+
42
+ end
@@ -0,0 +1,6 @@
1
+ require File.expand_path('../../config/environment', __FILE__)
2
+ require 'rails/test_help'
3
+
4
+ class ActiveSupport::TestCase
5
+ # Add more helper methods to be used by all tests here...
6
+ end