cally 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (503) hide show
  1. checksums.yaml +7 -0
  2. data/MIT-LICENSE +20 -0
  3. data/README.rdoc +3 -0
  4. data/Rakefile +37 -0
  5. data/app/assets/javascripts/cally/application.js +38 -0
  6. data/app/assets/javascripts/cally/invitations.js +2 -0
  7. data/app/assets/javascripts/cally/session.js +2 -0
  8. data/app/assets/javascripts/cally/users.js +2 -0
  9. data/app/assets/stylesheets/cally/_mixins.scss +7 -0
  10. data/app/assets/stylesheets/cally/_variables.scss +8 -0
  11. data/app/assets/stylesheets/cally/application.scss +16 -0
  12. data/app/assets/stylesheets/cally/invitations.scss +4 -0
  13. data/app/assets/stylesheets/cally/main.scss +88 -0
  14. data/app/assets/stylesheets/cally/session.scss +4 -0
  15. data/app/assets/stylesheets/cally/users.scss +4 -0
  16. data/app/controllers/cally/application_controller.rb +9 -0
  17. data/app/controllers/cally/invitations_controller.rb +122 -0
  18. data/app/controllers/cally/session_controller.rb +40 -0
  19. data/app/controllers/cally/users_controller.rb +292 -0
  20. data/app/helpers/cally/application_helper.rb +30 -0
  21. data/app/helpers/cally/invitations_helper.rb +4 -0
  22. data/app/helpers/cally/session_helper.rb +4 -0
  23. data/app/helpers/cally/users_helper.rb +4 -0
  24. data/app/models/cally/application_record.rb +3 -0
  25. data/app/models/cally/invitation.rb +8 -0
  26. data/app/models/cally/user.rb +13 -0
  27. data/app/views/cally/invitations/index.html.erb +30 -0
  28. data/app/views/cally/invitations/new.html.erb +20 -0
  29. data/app/views/cally/shared/_errors.html.erb +6 -0
  30. data/app/views/cally/shared/_header.html.erb +25 -0
  31. data/app/views/cally/shared/_messages.html.erb +7 -0
  32. data/app/views/cally/users/ask_security_question.html.erb +19 -0
  33. data/app/views/cally/users/edit.html.erb +45 -0
  34. data/app/views/cally/users/forgot_password.html.erb +15 -0
  35. data/app/views/cally/users/index.html.erb +32 -0
  36. data/app/views/cally/users/login.html.erb +22 -0
  37. data/app/views/cally/users/new.html.erb +40 -0
  38. data/app/views/cally/users/old_reset_password.html.erb +3 -0
  39. data/app/views/cally/users/reset.html.erb +26 -0
  40. data/app/views/cally/users/show.html.erb +16 -0
  41. data/app/views/layouts/cally/application.html.erb +16 -0
  42. data/config/initializers/time_formats.rb +1 -0
  43. data/config/routes.rb +24 -0
  44. data/db/migrate/20170902103230_create_cally_users.rb +17 -0
  45. data/db/migrate/20170919060132_add_security_question_answer.rb +8 -0
  46. data/db/migrate/20170923052040_create_cally_invitations.rb +9 -0
  47. data/db/migrate/20170925115607_add_sent_to_invitations.rb +5 -0
  48. data/lib/cally/engine.rb +31 -0
  49. data/lib/cally/methods.rb +58 -0
  50. data/lib/cally/version.rb +3 -0
  51. data/lib/cally.rb +5 -0
  52. data/lib/tasks/cally_tasks.rake +4 -0
  53. data/test/cally_test.rb +7 -0
  54. data/test/controllers/cally/invitations_controller_test.rb +13 -0
  55. data/test/controllers/cally/session_controller_test.rb +13 -0
  56. data/test/controllers/cally/users_controller_test.rb +13 -0
  57. data/test/dummy/README.rdoc +28 -0
  58. data/test/dummy/Rakefile +6 -0
  59. data/test/dummy/app/assets/javascripts/application.js +13 -0
  60. data/test/dummy/app/assets/stylesheets/application.css +15 -0
  61. data/test/dummy/app/controllers/application_controller.rb +5 -0
  62. data/test/dummy/app/helpers/application_helper.rb +2 -0
  63. data/test/dummy/app/views/layouts/application.html.erb +14 -0
  64. data/test/dummy/bin/bundle +3 -0
  65. data/test/dummy/bin/rails +4 -0
  66. data/test/dummy/bin/rake +4 -0
  67. data/test/dummy/bin/setup +29 -0
  68. data/test/dummy/config/application.rb +26 -0
  69. data/test/dummy/config/boot.rb +5 -0
  70. data/test/dummy/config/database.yml +25 -0
  71. data/test/dummy/config/environment.rb +5 -0
  72. data/test/dummy/config/environments/development.rb +41 -0
  73. data/test/dummy/config/environments/production.rb +79 -0
  74. data/test/dummy/config/environments/test.rb +42 -0
  75. data/test/dummy/config/initializers/assets.rb +11 -0
  76. data/test/dummy/config/initializers/backtrace_silencers.rb +7 -0
  77. data/test/dummy/config/initializers/cookies_serializer.rb +3 -0
  78. data/test/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  79. data/test/dummy/config/initializers/inflections.rb +16 -0
  80. data/test/dummy/config/initializers/mime_types.rb +4 -0
  81. data/test/dummy/config/initializers/session_store.rb +3 -0
  82. data/test/dummy/config/initializers/wrap_parameters.rb +14 -0
  83. data/test/dummy/config/locales/en.yml +23 -0
  84. data/test/dummy/config/routes.rb +4 -0
  85. data/test/dummy/config/secrets.yml +22 -0
  86. data/test/dummy/config.ru +4 -0
  87. data/test/dummy/db/development.sqlite3 +0 -0
  88. data/test/dummy/db/schema.rb +40 -0
  89. data/test/dummy/db/test.sqlite3 +0 -0
  90. data/test/dummy/log/development.log +1038 -0
  91. data/test/dummy/log/test.log +15901 -0
  92. data/test/dummy/public/404.html +67 -0
  93. data/test/dummy/public/422.html +67 -0
  94. data/test/dummy/public/500.html +66 -0
  95. data/test/dummy/public/favicon.ico +0 -0
  96. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-7/-7G6Wtrr_8yiWKMdQBCxG0EJiox04WdFTfQUZHqtBLY.cache +0 -0
  97. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-U/-Uwnls2PzR4N2AVywr0B9O0jwhJonFkuBkdIg752e94.cache +0 -0
  98. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-e/-ePnkBqNZBkQXLLrT8krdPAVFf35WcPxkzHi3nbIzNQ.cache +0 -0
  99. data/test/dummy/tmp/cache/assets/sprockets/v3.0/-s/-si288ORc48rxqOegeAnVE4yil1jO5-Go6mX7HgcvCE.cache +0 -0
  100. data/test/dummy/tmp/cache/assets/sprockets/v3.0/03/03GiQLFnqA9kZtSCxF3F4Nb8GEyjSN_gdGQ-lRirBj0.cache +4 -0
  101. data/test/dummy/tmp/cache/assets/sprockets/v3.0/05/05m4Gozfb11gItFHEmwtEwpxauwKUrngD6ivZifiSF4.cache +1 -0
  102. data/test/dummy/tmp/cache/assets/sprockets/v3.0/09/09zys8qWv9drSk0oTdU2b6nyr584aE9_SqxQdjpl1ZQ.cache +0 -0
  103. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0E/0EEpWcr4GYho-99elTJe7nl-tF-2pj78HgS585r9iP0.cache +0 -0
  104. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0F/0FqVj1sw_LtM6RrTkVkIUbJUtC6ROVOgyih29KMmUeY.cache +1 -0
  105. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0X/0XMOKMw_z_7uyNxySrxXT8T9HsNrXOrufs0tDm9Gx2k.cache +1 -0
  106. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0d/0di8plHB-vEGG0k-Uo7uYUsGlyrGzEFCyBRHyaS73og.cache +0 -0
  107. data/test/dummy/tmp/cache/assets/sprockets/v3.0/0y/0y_zbw0TUL872-x0Vw1q8VWAxV-gR5EOE_jAO4a9IVo.cache +4 -0
  108. data/test/dummy/tmp/cache/assets/sprockets/v3.0/17/17Sw-XgYreb2bcJUTjjtuynxxmW2UbWPS0Aepnm3lSg.cache +2 -0
  109. data/test/dummy/tmp/cache/assets/sprockets/v3.0/19/19ukIrK3XwJQV4nBV3Xjheue5HdK_ymu62td7Prbaqs.cache +2 -0
  110. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1M/1MjUUC107hkbTCWYS_5eE0TnGM1C30y_OfDJhNFVk9A.cache +0 -0
  111. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1Z/1Zf2BAr-hjyN2mmVW6IFnexp_A8HrzuvpyewyL-uZPY.cache +0 -0
  112. data/test/dummy/tmp/cache/assets/sprockets/v3.0/1n/1nuVLOfiyH9EIXrxTGHDycK62eGIp70A6b8WaIr7DXo.cache +1 -0
  113. data/test/dummy/tmp/cache/assets/sprockets/v3.0/22/22JbkVwfRZZ1ed7r8946IIcyjRsKW8gRe8uIALVoYD8.cache +1 -0
  114. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2V/2VAzjA4TmNG4aBl4oCR6f7YE6nkAALdG7dw08wjJeE8.cache +1 -0
  115. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2Y/2Y0QzeBE_3R2-qSU6uIWfxvQv1FzN9X5hX8PKZ0fpHo.cache +0 -0
  116. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2l/2lDAJ7SJL4CfRFfuaxpJdo6wDGD24AfuwsOwtiMdLsc.cache +0 -0
  117. data/test/dummy/tmp/cache/assets/sprockets/v3.0/2x/2xFqoJ5964o6LRNOvnhlPWhHuEk53wfpCEw7THtXzAk.cache +0 -0
  118. data/test/dummy/tmp/cache/assets/sprockets/v3.0/32/32hYcy6WF98nG_Vz24VTrg8aN5IFAt2Q-vL3HsU74Ys.cache +1 -0
  119. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3B/3B6E3xp77y6iJdPuRE3L3nvIt4CCJL8uyHhdkvvyVig.cache +0 -0
  120. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3I/3Id57bA0lTkLBdBYcD_z1Nc_1aet1ocpNMQZxAMGZh0.cache +1 -0
  121. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3N/3NKjgXP1aV0BydAY6HEqWAmZzjIIw-_imoB-y9qfx2s.cache +0 -0
  122. data/test/dummy/tmp/cache/assets/sprockets/v3.0/3S/3SBpCYLkoVny3FMehURZgL4KroeAvd7FnfU48mC9amk.cache +0 -0
  123. data/test/dummy/tmp/cache/assets/sprockets/v3.0/45/45yxc8XkudsEIfAj9-wJbszPtOlTPFHbcY_PhlcF9MA.cache +0 -0
  124. data/test/dummy/tmp/cache/assets/sprockets/v3.0/46/46pqmzFZhb6ihJ8pK8-jySxrRYCPrmDPCVZtQoa0gHU.cache +0 -0
  125. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4C/4CTXZOGWyOAqY7fKlvYPxStOGBvkPngIzeOI_SnuFVw.cache +0 -0
  126. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4P/4PxwQEE2flmw_sZgpwjsf1qt4Nh5eZYnGmmBaUmW9T4.cache +0 -0
  127. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4X/4XKOS17iavBJwiSAYpiLKOsKohqn3ya3JRmCIEKUnQE.cache +0 -0
  128. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4_/4_6gozIttBNwRAZiuvPdbJtHTJCP5tQqN6d_i34b4RM.cache +0 -0
  129. data/test/dummy/tmp/cache/assets/sprockets/v3.0/4g/4gxcHBuhaJYSHh09Yp8TSWgaRd3OevKbmzjSh8uL77U.cache +0 -0
  130. data/test/dummy/tmp/cache/assets/sprockets/v3.0/57/57h3gS0UDTegyWV5uNTXiNWclqPmQptiOLGHWArpmTI.cache +0 -0
  131. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5L/5Lly_CA8DZvPhQV2jDQx-Y6P_y3Ygra9t5jfSlGhHDA.cache +0 -0
  132. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5M/5MbBRAfsyzv9U6UZ--LwvIo4mzf11XlGiytvVvMZSHI.cache +0 -0
  133. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5O/5OzIvbLg1yPzcH8lgRrMmMuriByL0fnL2yEdMpORnCs.cache +0 -0
  134. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5l/5lCz4ZUXwGd4AE-1sAI_J7jY8c-yty_Yt2m17R17v64.cache +0 -0
  135. data/test/dummy/tmp/cache/assets/sprockets/v3.0/5q/5qm_wEIFUsv2zBFnis3NkdVesfTYrD07CQJ9w7MKNhI.cache +0 -0
  136. data/test/dummy/tmp/cache/assets/sprockets/v3.0/66/66BDSYZXfaTaFzShjFKozplRRznehvd3CU_vQd-st4o.cache +0 -0
  137. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6C/6C2rbrWR5xHKr2qs6z4L8-WoABZ-g3j0i_4dJ7wNlfI.cache +1 -0
  138. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6E/6EiuR9qYYi6ZYm6HyXRRKkJH0QQ6rcKGrfPDMvCvQZE.cache +1 -0
  139. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6I/6IWnN51PzHE9hasZeoZMd64IOPlOb7T4tv5ZwQIiebI.cache +0 -0
  140. data/test/dummy/tmp/cache/assets/sprockets/v3.0/6I/6IlHTDcpN4U3SRWJBA38pK2K7HkweDGFPHkQ5teFTRY.cache +0 -0
  141. data/test/dummy/tmp/cache/assets/sprockets/v3.0/73/73eHSmgTTMpQqobtiVFbaKgMoaFrncRkfso7ixKJ_Ns.cache +0 -0
  142. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7H/7HAuT2dlbhEkNo2KQg29AoEp7Tt05Ea37JhBkMNVN-k.cache +1 -0
  143. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7H/7HG2ANFnibaQ69t0X6GKB6kE3AAAEVCm-19fFLOb7is.cache +1 -0
  144. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7X/7XWkyke6asAc1FZH-sFbRPQotpOJX3C6QUUI2sd3aBM.cache +1 -0
  145. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7j/7jhvqB7N9gHxWGePSDd5-g4MJbyalWCjNczeQObpiXA.cache +0 -0
  146. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7p/7pFNTi_Q42DwJrPHVmdlgt22_7dHe3vnBk2wSuD56fA.cache +1 -0
  147. data/test/dummy/tmp/cache/assets/sprockets/v3.0/7p/7pYRGsQGpn9K6jQNc44lZhB5Jq4BKa5Cdrr02s4hKzs.cache +0 -0
  148. data/test/dummy/tmp/cache/assets/sprockets/v3.0/82/82KsptJhQon_5-h3AT2FG4ZsN_nNZmg_jP9bIQhh-Tg.cache +1 -0
  149. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8A/8A88829RczEnPE79WTEui_P6eAd1udbiPW-eda6SS6Y.cache +1 -0
  150. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8I/8Io6FnKGSYpxgU9zGdbs2ubhvJ1sL3_b6XVcceuFsoI.cache +0 -0
  151. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8Q/8QFQ-Qlhn49f5Peuf6XWc73ZZVaX8qIPGk7I0kldp3I.cache +0 -0
  152. data/test/dummy/tmp/cache/assets/sprockets/v3.0/8i/8i465g3LM6IQI0UZ9fttuc7N1dqfNdmDmvyeBtUyNGc.cache +1 -0
  153. data/test/dummy/tmp/cache/assets/sprockets/v3.0/90/901xwPCxkRIytrNf3d_hbuQB2b2KOPoZ3hiWM56c6KI.cache +1 -0
  154. data/test/dummy/tmp/cache/assets/sprockets/v3.0/98/98NU1PFY8GjWUVNX5sRk-tCRQKuYIxCi-c6h9Jv0ST0.cache +1 -0
  155. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9K/9Kd_RhHlTIPuP4Y-3qxXhlx49UxGAB15eBDjoGQ04Sw.cache +1 -0
  156. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9a/9aMuRkW0rgbT4sYxhD_0wsSEYBWb_KMK6yfZEW1MpZc.cache +1 -0
  157. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9c/9cHFFa1beEqMoKW1pzMqWq_v6I0EXAGIMMKXQkNeKzg.cache +0 -0
  158. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9v/9v-9369ghnnYHf1e_4Lx0spzDVR_mRsHGQW7we1Pi1w.cache +0 -0
  159. data/test/dummy/tmp/cache/assets/sprockets/v3.0/9z/9zQ1-NDC-YIiM3go53dU8BLvb5hWsPwCm_IUdXlIrTQ.cache +0 -0
  160. data/test/dummy/tmp/cache/assets/sprockets/v3.0/A3/A3tbqCf8PBKD3foE0Y1XP5bNoS_arjVTJmQiSO-Sf1E.cache +1 -0
  161. data/test/dummy/tmp/cache/assets/sprockets/v3.0/A8/A8c83jY89kUuv1RfMpfKTj3UqZBUQ6OssOYGtlIYMlA.cache +0 -0
  162. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AB/ABzlcTo6qgW_1Bq_YoKWz64m54uVQh1_KGbG9HoWmlM.cache +0 -0
  163. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AG/AG2Uz4-X_5r8eFalp4HFxUd1zYJ9ZFtC7IIkK6uoFA0.cache +0 -0
  164. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AS/ASZ8cNw59CwVjZrG0fzR7dNXGjYA8fNR_Hez6fg51kM.cache +0 -0
  165. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AX/AX23agVTSYHlc1N-cGfBbFM991Zhqzl2KT00yr3A5bc.cache +0 -0
  166. data/test/dummy/tmp/cache/assets/sprockets/v3.0/AZ/AZCRXIDuLQO2JukxYBqkkzogge8wOSuRLahJXAxMJtE.cache +0 -0
  167. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Am/AmgnVafQQ9zA64gIpQWq1iN3tqG5GeB21X8SOhLY1lg.cache +0 -0
  168. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BW/BWGrNF_DDTaXJWZw8cdsDE54J3wJ-DA7ZvRUfAEODos.cache +1 -0
  169. data/test/dummy/tmp/cache/assets/sprockets/v3.0/BX/BXkOmbjjbpmKEH5lXHRFkGVcWj3Pw8eTh5Mt5fkGCjg.cache +1 -0
  170. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ba/BaO8PIlUiC0-47Q2sg7FDbpSXPQPnOVd2JuCorlGgLE.cache +1 -0
  171. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Bg/BgOENKeIuC13vgNRY9nt_j5Qh5E_MiQuxc1xyC3tA54.cache +1 -0
  172. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Bu/BuP162RZ2NFdJOFXzR_-K4UlJe9rPho2savQpesx-WM.cache +0 -0
  173. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CF/CFFOyZ_E9negEK8MBohmlEyV-ogoh7trLI2IMIa5Mb0.cache +1 -0
  174. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CG/CGKyUSYgc7NDw8o-XG1qHZJn4ndGmekQ-VWLr9HQhUg.cache +0 -0
  175. data/test/dummy/tmp/cache/assets/sprockets/v3.0/CU/CUjfOnHrBo4VBNotuh5hs-9YI3xyNIdEuj3BReTuxVg.cache +1 -0
  176. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cj/CjDJtUDDWpQpH-0rqAaG2ARWwckP2vlqH14s-t6ZyWE.cache +1 -0
  177. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ck/CkgeqiNEUyqDGDUJ3fQtQLzqVzNvABO0FY4FAvfo90Q.cache +1 -0
  178. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Cr/CrVCW6RqL1hRhBTt047U0-GKC9IrroFAgD1XgS6xoK0.cache +1 -0
  179. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DO/DOsCAmCkFAyLYNkRycwi5d6p-BU-uwrlt4N4V9DNhpA.cache +1 -0
  180. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DR/DR40lRJvw776QND_UlCOK6iV3lbRG6vt3wIaRnbDf_Y.cache +0 -0
  181. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DU/DUImv_hPtH05drJpNXYTuGo3wjm0Ez1Om0ti-Vt_KKk.cache +0 -0
  182. data/test/dummy/tmp/cache/assets/sprockets/v3.0/DY/DY__lvkCJmChGheQVztjJEqVDgFOCjLVNBLlJsMqx8g.cache +1 -0
  183. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Du/DuESbvVEY5Wc8rKpt7UPFGrGq-RC4gP2XAvy-2OvQb0.cache +1 -0
  184. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Du/DuzBEWYl0ZkT9klbp1gq_nNr2dgfufqgBg1-RrMcylo.cache +1 -0
  185. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EQ/EQgBIQrVxkiFz0pHZJv_HA9OfVLlzmR9SEvPoNX5Mwg.cache +0 -0
  186. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EU/EUwGYTFxLSlkXqzM-GUNfvA8O8UfxQ986rSHL48BK_Q.cache +1 -0
  187. data/test/dummy/tmp/cache/assets/sprockets/v3.0/EV/EVpB7wcjBRrHkQMLbldAdRfTZI_E-6i3wXZHDncFgG4.cache +0 -0
  188. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ee/EeFTb5oXLeaD_BHJeCWaSgXy-5Qdjr--WNLQMg-R9Zg.cache +0 -0
  189. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ep/EpjVzEujnF91QLHExWOdbgnojGR9x42q2EN-wp_hb7g.cache +0 -0
  190. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Er/ErXtTZqBAeNJSFkTFM1q-wX1GtvnVM0tvUd5q6oU93c.cache +0 -0
  191. data/test/dummy/tmp/cache/assets/sprockets/v3.0/F-/F-jKvQYOLVtImcbbnTeSGLUDFgEq-cdcWZ3eKFtUhzA.cache +1 -0
  192. data/test/dummy/tmp/cache/assets/sprockets/v3.0/F6/F6YPDW0Ew0cFgQLUVbLIJwd2ajod5AP-LExOGkshKw8.cache +4 -0
  193. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FP/FP-c4FCvr_TKyF_qfQz9Yo4_r04shuXTD0TMnf-qdNM.cache +0 -0
  194. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FR/FRuIOo50wQni1xZYYbuoUS3oJAbGB3mEyqxWUd_r4GU.cache +0 -0
  195. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FT/FTIoN4W5vLeul591kJW8z7dI3CoGYfwZgi6SxlSJ05A.cache +0 -0
  196. data/test/dummy/tmp/cache/assets/sprockets/v3.0/FX/FXSFmhM7DFCk2hvfzGKfx30mUagBnUKqwWU6mheQDcA.cache +0 -0
  197. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GC/GCv3L9-77LNTLW3aNRBkVZqrd0Kd2YQCd-FH8SbjD8U.cache +0 -0
  198. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GQ/GQal8OrQgbO81hndXJfU1isgidDq6K9u2nd5haxRW0s.cache +1 -0
  199. data/test/dummy/tmp/cache/assets/sprockets/v3.0/GV/GVsv-w8hgKBcvyO-cEI0EeK7O2Z_SnPQlqpVcbehBlo.cache +1 -0
  200. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gb/Gb19qJYhribJAD1Wsk_RdE3oBGzWCryAykNnB7DFxwg.cache +0 -0
  201. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Gs/GsMim5xNkenLDFS3Uw391XgtdTTuH_JyaNYcMui0i1c.cache +0 -0
  202. data/test/dummy/tmp/cache/assets/sprockets/v3.0/H3/H3qnNJUhSoxPm9HKhQjdQH7GCyRg06un-_qu5l3iUqY.cache +0 -0
  203. data/test/dummy/tmp/cache/assets/sprockets/v3.0/HO/HOkwKduc2ZqR7mW1qShz_kd2AYPmf2eEQ88ZioUScac.cache +1 -0
  204. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hj/HjDY_uypE87cGMJcoVreQw_NUO3R_4gP3UVWdbVliMo.cache +6 -0
  205. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Hp/HpVlYITvQpmtSXF4rMrVXVHEfQJkPW8S0CvCEPClTmc.cache +1 -0
  206. data/test/dummy/tmp/cache/assets/sprockets/v3.0/IC/ICHZHvSMw-uY4XPT_Z3ygQmqNMFV6IwMy-7AHUWmJcU.cache +0 -0
  207. data/test/dummy/tmp/cache/assets/sprockets/v3.0/I_/I_igYq6hRehfmJxy2GeTOmU4skX3vFwkkOMD0M_uoFQ.cache +0 -0
  208. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ic/Ic9RezxoQ6zj4bT2zj3LtsXKi_dAQkB7fQNzJBWh0FE.cache +0 -0
  209. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ii/Iisx0qwGLaiQf2R4lD-YQ_rHsUU0ReQ-Fnq3VEbZMwM.cache +0 -0
  210. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Iu/IuqW5_Az56Zq79oQmnxdtYHZbfP9jrSTTTOEP3e6lYI.cache +0 -0
  211. data/test/dummy/tmp/cache/assets/sprockets/v3.0/JW/JWwENKuFOpcdSHGdAgcUZVz82Njz3Pjm6wgvsA9l4bc.cache +0 -0
  212. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jf/JfFhfQaT_K7WDMpQqKnoQxZJJajIOPxh5uPJIvx_iW8.cache +0 -0
  213. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jm/Jm804vwqbO_dR0OA9orvLx5XyLiNQY5S6leYxumTgos.cache +0 -0
  214. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jn/JnOOowKR1rMUOgInbYB61wlY2gxTjJreeMWttv0wT4s.cache +1 -0
  215. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jy/JyMeO34a-3yk4N4dWGsVglmJi6o4h0G2NNUKj_G5RiI.cache +0 -0
  216. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Jy/JyyPIaV0_YJrzC7jW3a1oWBFC_rk1ThRn-JRPotECoc.cache +0 -0
  217. data/test/dummy/tmp/cache/assets/sprockets/v3.0/K1/K1lHNHIJrEnoIEJkrTqEIftLJB6mPdGzdsLOeeIXHfg.cache +1 -0
  218. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KR/KREri62j0WX1oMPw5yGFVZPB6OcEp254T7-7pbxxuNI.cache +0 -0
  219. data/test/dummy/tmp/cache/assets/sprockets/v3.0/KT/KTioNwNDHJX61P1k7Y2eu6nCjE49V81SA-KWcJfpiyY.cache +0 -0
  220. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ko/KoX-2FnyAynV76TTiTBBS8OIlq5DSDptRzNh6FR4yZc.cache +0 -0
  221. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LA/LAbBaAZol_QoJ8WKo9ShsWfL7TycARx0pThht_TSPFM.cache +0 -0
  222. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LI/LI6J9U5x4Rdnla4Xu6vvTdxPFiskPDIn7X-YKOAjV5s.cache +2 -0
  223. data/test/dummy/tmp/cache/assets/sprockets/v3.0/LP/LP-iBiX4yMwlD-ONUaXKobqMwK0E5m9V5qGhEFmScio.cache +1 -0
  224. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lb/LboXdHbQbIUFLB3RD6rSrZHjulv_JB9MObCkYCA_XwU.cache +1 -0
  225. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Le/LeUti6cCqMQjZ6OEiT85AvsHQCE1LKgEgzKMpG1NJ8U.cache +0 -0
  226. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Lx/Lxg5sYdRUUjZTpQgz-Vds7N_ZZHmAOjiYChfAhIo4oc.cache +1 -0
  227. data/test/dummy/tmp/cache/assets/sprockets/v3.0/M1/M1iYk9DF4a5SgOHB5_VIED5Jqf_NSiUHohtQsSvY_gg.cache +0 -0
  228. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MD/MDeSUGV5_X4t5Aby7auBfnolxieYKDI1u0CZ_02Um3s.cache +1 -0
  229. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ME/MEH8JP05__fj9Dl5JfaSHyEA1hhmz0c7VmvJO2p4bYA.cache +1 -0
  230. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ME/MEbUHElyIvSY88yrMNTF9e4DvZRcyxcIGkOEOgJ-BaM.cache +0 -0
  231. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ME/MEwCV-LGlfnry2yYcGr9iWkb4ooWqhHdxS4pomCj1cQ.cache +1 -0
  232. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MM/MMsUW9UrxCgfSLc7OkKTT4gdwlY-0FaLUdTXE6Z6Y_8.cache +0 -0
  233. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MN/MNaoy4WQL0zrvfJYSxujVFUA60y0wofKdnLH37IAukw.cache +0 -0
  234. data/test/dummy/tmp/cache/assets/sprockets/v3.0/MY/MYPwjmRrwAmRpV8eEyzDY8CCyP-uHG1utvuXIBnEhCk.cache +0 -0
  235. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mt/MtwPKDCtC9lvbauqPD7fuNcvgAkQi7Ng1F_ZssDCqzo.cache +0 -0
  236. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Mz/MzvODkrDRMS_CzXRWV10z7NEbQOV5_eQUxbZfp4Zzkw.cache +1 -0
  237. data/test/dummy/tmp/cache/assets/sprockets/v3.0/N6/N6zpiqdQQnMdbqKvaLmtCMaOnkGYPA52wXxffhnfJaM.cache +1 -0
  238. data/test/dummy/tmp/cache/assets/sprockets/v3.0/N7/N79h8uQX-MWoujeZow1E4xo5Xi7IqEeB9gn6iQarpkc.cache +1 -0
  239. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NF/NFijgfc0LvmjZ689j7MsJgtKVHu-IlHFP_R13niGrLQ.cache +0 -0
  240. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NJ/NJK1KazpzW0Anm3B_nTckSvtXyBqFfORej3pNEZDniw.cache +1 -0
  241. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NR/NRRbPerBBa96LrsGXRV2T73SJLzOh_tCOIMo6at8Sfo.cache +1 -0
  242. data/test/dummy/tmp/cache/assets/sprockets/v3.0/NW/NWaLqZwAexRQYCPJcGXjr1loYBFnqoQX_n3k08dFBYU.cache +1 -0
  243. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ng/NgvyaorbzP2UMgUB8PxbKJJn6wxpB0T4CSGRQscID1g.cache +2 -0
  244. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Nj/NjTdYgBwfn3XL1KK8PTZRy0TnIBcJpLib7qD7LGhgrs.cache +0 -0
  245. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Nu/NuFzfzvfnZqMXJHDK7tldK83dEbdFTYnVS9cnZE0KUA.cache +2 -0
  246. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OF/OFmomy8soPqiR5Id8O_1uAbO12bJMf5C5tEhnJ1z03o.cache +0 -0
  247. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OI6uxGcnsKavdWTtwDAasU3wPx8QXhzBgV0X2n1KjMQ.cache +0 -0
  248. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OIOjGye-6IX32OhiDKgjIYJVVJIYL4YwWqXRQ1OuqOc.cache +0 -0
  249. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OI/OIRj9DmXbwJfdvq3ZcPBfKDaXvzgzLCMmr-WVYOGjqA.cache +1 -0
  250. data/test/dummy/tmp/cache/assets/sprockets/v3.0/OR/ORoV6obevLekkwRkLgC6L86OJ0Hjc_fpHBW0z60lc5s.cache +4 -0
  251. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Od/OdsK_qqQmrZKTVMCDz3AplqVUzYA5IM19_-qOojJBOs.cache +2 -0
  252. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Oe/OeE1-fbXi1sTigNTlRhpnn5FVeZ2ZGGJRm9VXsbdlqM.cache +1 -0
  253. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PA/PA8AAiF1X93v5x_Ng7P9_PhpcJ7PHU8iYqlRO27kIdo.cache +1 -0
  254. data/test/dummy/tmp/cache/assets/sprockets/v3.0/PO/POCKZGPBJr9661YN7ByNBsEddLYmt0Z7bAd82H3PwvA.cache +0 -0
  255. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pi/Pi3Gagdd4crGUlbMg7JotJdph56agNF9f1mpZ_1zHXk.cache +1 -0
  256. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pi/Pi4wp9ATng9qVjCiPosZnE69hsj5FrdIxtV2-wYcbXg.cache +0 -0
  257. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pl/PlgdDzT3L-fX8DaDVuQ_At7zZykia94W7YEMfq6h7TE.cache +1 -0
  258. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pm/Pmazs6NeGR5UPAoGWZRMbrHPHNDFtOPI3T6NZ2fxBE0.cache +1 -0
  259. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Pv/PvLeNwiihL7rwWXxI8FEftbWxeLSI9afkpyENaTG59Q.cache +0 -0
  260. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Py/PyVDfQbq1TjIvxpdIkpf5g--7_VZLZ5qBkbWo4vVhWc.cache +0 -0
  261. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QB/QBGJ7zMlylmAgUKfrM9Dxuk7XJDKRYImcNS747eZwko.cache +1 -0
  262. data/test/dummy/tmp/cache/assets/sprockets/v3.0/QE/QE-jnb1fHSfnQk20hkCGzeL5eUIm8hPw6n4YSH-gtDc.cache +1 -0
  263. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qa/QazUodDbBO086k_a3nmyi_xN2PsQAEh5lnT_6nzlDWk.cache +0 -0
  264. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Qw/QwohFtENHOM2ECLCFvikh4lSrlOvsS3WRcBLIHSkeSs.cache +0 -0
  265. data/test/dummy/tmp/cache/assets/sprockets/v3.0/R5/R5WyetYDFOD2B6uqV1_JlTWm8HXlU48uPtoVYuoaI0o.cache +1 -0
  266. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RB/RBs59Tbwcium1lGEm-v8YEgRMThgSl6iRKQVpMrt1tc.cache +0 -0
  267. data/test/dummy/tmp/cache/assets/sprockets/v3.0/RP/RPEPkpOFGpjwBtvkLKSOXpShVDnrIN0FBDt6UD3C6Jg.cache +0 -0
  268. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Rx/Rxv7EbPk0KwnKCSvALi_qLY_5wuyFFTrk3xHPivK-aY.cache +1 -0
  269. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SB/SBPkES1IlI0ZYVrLG7nEylMTj1RaLVrzTKjgJblZjQs.cache +0 -0
  270. data/test/dummy/tmp/cache/assets/sprockets/v3.0/SX/SXp948xK_TB2XSdmR4nNeXdDosSyG_YZyQbYAiH-RBo.cache +0 -0
  271. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sf/Sfp5w1kmceKSYDbafC_awVmnglAp-dtOTG_SjYMcXYw.cache +1 -0
  272. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sp/Spmg72Eg1VjPdUYjJ6YXv6sflkt2DVyoYP1sht4Q500.cache +1 -0
  273. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Sy/SyJ5wy7kQNtQUg4G3DZfBUGDDH3gk-v08GAer8ZsRso.cache +1 -0
  274. data/test/dummy/tmp/cache/assets/sprockets/v3.0/T4/T4ORczRkDrhuBWGQmVZj1yBUeLpQFzWeJn62RzSwYj4.cache +0 -0
  275. data/test/dummy/tmp/cache/assets/sprockets/v3.0/T6/T67sWTjbILwfDxKMSJF8nkQqiuTvwn33-6g5tJDTxXU.cache +1 -0
  276. data/test/dummy/tmp/cache/assets/sprockets/v3.0/TF/TF_Cf65DP61omOgFx4_1Z_gjegnOc-Jxh2fbZZUPEv0.cache +0 -0
  277. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Tm/Tmi--tHSWkYldb7lAbqHL1oWH4A41KQEjAFS_anBdV0.cache +0 -0
  278. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UH/UHqPCBguDEAEa2R9eB7E8jVPmDFY3NX9l8DBF83cs8A.cache +1 -0
  279. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UO/UOPiJalIWr-5wReACpJ743bHJPh9UHPsdYGdqgeUfAg.cache +1 -0
  280. data/test/dummy/tmp/cache/assets/sprockets/v3.0/UR/UR65aWCYY-YV6f5xcfHz8Y6b9v0gYdAjZlGqYZBM3IY.cache +1 -0
  281. data/test/dummy/tmp/cache/assets/sprockets/v3.0/US/USPM3OBXObJarMMz1racv8jGRBaSQBSoXLTuqdOlgFY.cache +0 -0
  282. data/test/dummy/tmp/cache/assets/sprockets/v3.0/US/USjLlrTdFeYjjf07-frsW8poAodfVDcefnPaYKy_XCY.cache +1 -0
  283. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ue/UeKHFj-oWEcki87YQFThEiJL19XGaUQau1W6lrAQyYM.cache +1 -0
  284. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Ui/UiOqBdJcdEwWVezjPd-76TrJSGwFz89GJ84c5Hkj9-Q.cache +1 -0
  285. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uk/UkDIfwzRMf4MnoLuRZ0drPLehJKFsejBzuUSmkeeabA.cache +0 -0
  286. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Uy/UyO_4Gm5-3t8-0z2u6WIgihsLwa0zniCYRkyfqmwmhE.cache +0 -0
  287. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VD/VDL7_Szd8PzSmDcr4exJc2hOh9ThfOryaXMHSYuSTo0.cache +1 -0
  288. data/test/dummy/tmp/cache/assets/sprockets/v3.0/VH/VHWS2u88JJsIond30G_8k_PmsviF3kZtsEP9rOAQnn4.cache +0 -0
  289. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vq/VqW21G_Qe-J6i4P5prw4yy7wHi0zzk3UV1uP8yqOLEg.cache +0 -0
  290. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Vw/VwTsxGab_IDtXS0jvIbl0hzCtdqbtxzx1vHtb0FcCIg.cache +1 -0
  291. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WM/WMIFjbNGjVoJiWCwJ4akFP7rGExKJqGeQkrXj0V7aMw.cache +0 -0
  292. data/test/dummy/tmp/cache/assets/sprockets/v3.0/WR/WRDlyIp5ATFOwKbRoNT_5c01EUjlZ_MPP3lJ4X1389o.cache +0 -0
  293. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wt/Wt9U8x96cC0_K89VUNKvuvGI8LOgyyaXWEASz2wlfCg.cache +1 -0
  294. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Wt/WtGOyP8ocT3agK-HHJVRlarOU_pwELFIgfkgs0_aMKI.cache +0 -0
  295. data/test/dummy/tmp/cache/assets/sprockets/v3.0/XQ/XQyq-uQV9CPqGmz8ZmJoCL6AXoHWnda7GrTOY8nnjQc.cache +0 -0
  296. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xr/Xrs6vr5oyYcZlaWw_8LNV6l-mv-RM10MBWdzmyt29q0.cache +0 -0
  297. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Xw/XwOKuFU1VKQwgUQN5aaZ813miM-QZ6q8OCByeLWHnDM.cache +0 -0
  298. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Y7/Y7titeryp_FSLvKL1VfNth0YWf1a02aQKM5SB0g3RoI.cache +0 -0
  299. data/test/dummy/tmp/cache/assets/sprockets/v3.0/YY/YYChdQDpz56xC4DgwGNggmGDKCCaQ6sR1sNf7zNQN30.cache +2 -0
  300. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yg/YgC_z2byyYQ7Vgrf3EWaLRBnM1BTqr8luRS8u-Aeph0.cache +0 -0
  301. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yq/Yqm7_mhdOmEPRpFZQOhvsNnAv2hexScLS4_Ucd2XKuk.cache +1 -0
  302. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Yv/YvAdBCQMYerxZpr94-VwyeBCx-m8RtUTPlxqweu9aws.cache +0 -0
  303. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Z3/Z34iW436AzkZ5LVOJK8S9_dHGVHE_IxvW5cV_9A2VFo.cache +1 -0
  304. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZA/ZAuAzZU7q3LBfgoso439peUxDL1EtsGqO458k0SWYA8.cache +0 -0
  305. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZL/ZLCZ2y2m1zTRUcowbeQAexZEHAxs3yO4otcYnJ1fWo0.cache +1 -0
  306. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZS/ZSyIjBBIW-x8xE-AT41Z2RhB9lkHc9ShUW712no6D3I.cache +0 -0
  307. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ZX/ZXkNasXN6xqIYfqlQe3B26iUxkaabeZDBZH1Usn33Es.cache +0 -0
  308. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zd/ZdX6vFt1o-W153PucMXK6W-GRanJaaBOmR7X3IFZ6NA.cache +0 -0
  309. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zf/Zf6bkcL13-g7w029OS4HxZ7QG24U_qnipyg1Ke-NmKk.cache +0 -0
  310. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zk/Zk9PL9XcDHomDlSAAlON7ZgGL0vWUZ_O1xk5DaPcvfo.cache +0 -0
  311. data/test/dummy/tmp/cache/assets/sprockets/v3.0/Zl/Zl2fOl_j7rDU31NscZY9eHzuafsuIk6A2jlhbRKMjHA.cache +1 -0
  312. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_6/_6Z3o-I-kC6zJVzYGBg6e7OPa-jcBekAOpwRy8k2-9U.cache +1 -0
  313. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_7/_7hHeuVDuVND7YqIxwwev3losdxdpMsyw3Pwdszel-U.cache +0 -0
  314. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_A/_A2agN27ZtIhUzH4GnpFKUck8K_FHRsmFsmTnNgAvls.cache +0 -0
  315. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_H/_HYBRsZYtBmAserSVyOTEYe7RB8DZaMBE2WAUzB5jEk.cache +1 -0
  316. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_k/_k8DVkvP0WZjn34iMInYqGcO9SHHj-oMttuhXX_RKD0.cache +0 -0
  317. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_r/_rMU_MJB4TzoXLXk8-J7iBeeu5zra-5rMUavNWQPwVM.cache +0 -0
  318. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_u/_uDa-wVcI_PWzMmEFnMsogk9WJku_RP6ygytUYI-qQs.cache +1 -0
  319. data/test/dummy/tmp/cache/assets/sprockets/v3.0/_v/_vqH126yF8wGnLOdle3o0618GwqCsUq4tZwZ24nYELs.cache +0 -0
  320. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aC/aCy2Hk7GOJHyX_YeX7Ysq3R-P7HcT37doz0C9p40nV8.cache +0 -0
  321. data/test/dummy/tmp/cache/assets/sprockets/v3.0/aT/aTcvvtUPScLJqVDzIWx5qKKdhGWP2po3eczv1kdTDxQ.cache +1 -0
  322. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ae/aevFo3NmfznN3LG6yZ_3TcuLjRDvDNwf0JgZsBDnNYs.cache +1 -0
  323. data/test/dummy/tmp/cache/assets/sprockets/v3.0/az/azJzeUbWTCWWFuHbVeHmy029yxcuVB_jCrELbrffJqI.cache +1 -0
  324. data/test/dummy/tmp/cache/assets/sprockets/v3.0/b6/b6h7oclGW3HFHmO8g3XDUWFi5HqtsurZ8nUdC2rx7pM.cache +1 -0
  325. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bH/bHAPqm4H_iVBv-_qgdkAlcMvzslKmmJV6hhtF-nghV8.cache +1 -0
  326. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bR/bR_tD3zgw5Quh8JTt2NI97_IqkVJRRCuJJ3tUK8Yg8g.cache +4 -0
  327. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bh/bhfbMZaDx46KFHPPSC1aMMSBfmtdSDXXs5tsvo062lM.cache +2 -0
  328. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bj/bjUCaPRSr4cy7LUw5SG4UCP4juUB7KKEIvhv53yOgPA.cache +1 -0
  329. data/test/dummy/tmp/cache/assets/sprockets/v3.0/bm/bm4azkF-FKEHqBMH_5sUVongXMjbWMdyBWo21THgoFI.cache +0 -0
  330. data/test/dummy/tmp/cache/assets/sprockets/v3.0/c4/c4bWsJ0T0wOQrhg9LX8s4ojRWgfJCJL52nfd5ZPexuw.cache +1 -0
  331. data/test/dummy/tmp/cache/assets/sprockets/v3.0/c8/c8Pt2KcDT5LM48WRBpMLhGkIGVuXeFRHzgwxGR04YzM.cache +1 -0
  332. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cX/cXIl7kyaurBUGWSCTxSRaLTmO5y3RFMjMJtMXGJSzDk.cache +0 -0
  333. data/test/dummy/tmp/cache/assets/sprockets/v3.0/cc/cc0D1uO9B6LtdXOOzJ2ZgB1SysaoNcXL1jqg6mj5FpQ.cache +1 -0
  334. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ct/ctPJwIB7zwTJO9GK5Zt_oDOcHF1tCJxKO5o2ZOUDa8Q.cache +0 -0
  335. data/test/dummy/tmp/cache/assets/sprockets/v3.0/d5/d5XtVLjStTWZWcCsXO4HAu5TOAb3Fo_Mc0T5E4lbHA8.cache +0 -0
  336. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dE/dEnRVUiFKUsacNXNlh6fi8rP0bnYrSANQKZ5YXprWqo.cache +0 -0
  337. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dG/dGswfXCdlYdXK5yCK8YB4b4xfYht37KgK5vX3vGGvhA.cache +0 -0
  338. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dL/dLSUXQD6gXaZ5EHn5ifb50sl0lmccRVs8oRwXUIXTz0.cache +1 -0
  339. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dP/dPOAJfsyeF8GppnWBZ5IHeiHXNsQ_uJBYZuBAgY8cCo.cache +1 -0
  340. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dR/dRXLnULUonwylRHmge0_2WG3Y0l2UtaCDBqcW_hjTYI.cache +1 -0
  341. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dc/dcJPBu1HspV0P-4iFU-C0FWZ6PwmIL5iPsSIXI1VPmQ.cache +0 -0
  342. data/test/dummy/tmp/cache/assets/sprockets/v3.0/dz/dzPPJRStGEbcsz5_BVLuGv5HTVDh8uU70KZMx6ZC8kA.cache +1 -0
  343. data/test/dummy/tmp/cache/assets/sprockets/v3.0/e2/e2FQPZ_0SjJMGqTKCOFcDdic0Tsmn9VetmkRVjFxlXs.cache +0 -0
  344. data/test/dummy/tmp/cache/assets/sprockets/v3.0/e3/e3peH0uuiTMR3l0vGEGVy6eopTrKr7cEZaODzViL_Tw.cache +4 -0
  345. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eQ/eQGlD0WwS54gaIAIKhKVVhCKgQLo1VUZScpBEUElGpo.cache +0 -0
  346. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eS/eSOAoDAfdhJUa5juQWcaF4zo0GESCTBX7DEJ94KOFG0.cache +1 -0
  347. data/test/dummy/tmp/cache/assets/sprockets/v3.0/eV/eVmkveaTdpbQNs8VUelpuNrJO5IIeiAXpFyyNDsziDg.cache +0 -0
  348. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ej/ejFcC00llnlXmTxO5duIiubM187BKsshyDVSlFv5bsw.cache +1 -0
  349. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ej/ejPJ_fafJGf8DJR3u0MUqgVMAwWCw7Xz-aNLR5sxojc.cache +0 -0
  350. data/test/dummy/tmp/cache/assets/sprockets/v3.0/es/es_TbuJ7PaHb-RYfZyEmtt8v-GUvB_53aIB3HkMwiIc.cache +1 -0
  351. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ev/evIQV8y8HBjelsgbXA0ozrIBMpipA4Tybl8a7aK_OiA.cache +1 -0
  352. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fI/fIBUbgJWMIIQSasWSzCCVHtpn0Xcow9xFU0A-2Qz_JY.cache +1 -0
  353. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fK/fKOTm0xz5oo807rTo4uVM5Yxw6RalwGQjKzzn6-8Pco.cache +2 -0
  354. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fQ/fQ1wSY8tXudYVJC_2cX4T_LdAWRTJVg2CMiVaXSzqpU.cache +0 -0
  355. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fa/fal9cTKjHBq1vSbu9b_CahI80Sk6QoOSwSvhhz7WI9U.cache +1 -0
  356. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fc/fc3m_alIoVWaIGeBHaaMId90-dMyQjGVrhSt-XHp2kA.cache +0 -0
  357. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fd/fd_3goL1yijab7-VyKjAAPam1YQX4q-zabzWomhuvwQ.cache +1 -0
  358. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fm/fm4F2DnmcrusC4rq-E3l5zhH3rJG0eZ4s1XexA0un1Y.cache +1 -0
  359. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fn/fnlvQJr3TbATMP95QzYRNwfMbgCzQpBnjmt9K7Qu3pQ.cache +0 -0
  360. data/test/dummy/tmp/cache/assets/sprockets/v3.0/fs/fsXJclfKBgiSUvpdET1h4BA2ddZTMb5-2xMGzfevFz4.cache +0 -0
  361. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g-/g-DzKZYNU8px7txrjTKh2_55DSxiy8K7o0uprIpKUvE.cache +0 -0
  362. data/test/dummy/tmp/cache/assets/sprockets/v3.0/g0/g0VmHeVabmGEdl6FDjiGYM7VL_VX4qBTIF0i3qV27OQ.cache +1 -0
  363. data/test/dummy/tmp/cache/assets/sprockets/v3.0/gz/gzwG_G1-sNVN_-0clTs2bo7EfBkjaLyKFpLcjI_H9Ug.cache +1 -0
  364. data/test/dummy/tmp/cache/assets/sprockets/v3.0/h3/h30-CnQ4AbAUAphvknid6M9R1nULl1F51mBwuIJAY5M.cache +1 -0
  365. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hS/hSHzVatHl3Huvik73_q-3Fmp664Hqvnqi08KnOrCCGQ.cache +1 -0
  366. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hX/hXkyjuA2VfoK_e_zfSMI_T3sQH1I0m-_F-CHccO18kw.cache +2 -0
  367. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hZ/hZi1k6tpxxCGYxRe7zY74ItcOI8gZrREOpGuA8JSpGg.cache +0 -0
  368. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hl/hl93BE8gTy_oKR_8uJSvC-mjCehUWGoagDXc2tbvpok.cache +1 -0
  369. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hn/hnFk6FgKQjbTmnjtXhIpwBqnR-bAPrU9mQc2fE9r7Yo.cache +0 -0
  370. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hp/hpDTps2QCDqf1OJqX-Surt2NlfDl2GSsS0FlHSsd1Io.cache +0 -0
  371. data/test/dummy/tmp/cache/assets/sprockets/v3.0/hw/hwwwKnJPjEme01vZ4IGcfNoHroaoBA8mzzmncxdl0tQ.cache +1 -0
  372. data/test/dummy/tmp/cache/assets/sprockets/v3.0/i2/i2hl-k_xpesT9bXTcRfEsDxywipmgIfnwb7QsfXtJL8.cache +0 -0
  373. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iM/iMbtAcXrYofoDnWj3StRQOMS2DIjFv6l65yCX14GQ2g.cache +1 -0
  374. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iS/iSqVZECnqIaQ5OFrPGUJK_jBfIlOkW2K10o2oRRxyGQ.cache +0 -0
  375. data/test/dummy/tmp/cache/assets/sprockets/v3.0/iZ/iZS_xEurCMtMlvJohgs5u0AEqcbGtz1ToNRpBPXFdzA.cache +0 -0
  376. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ic/icGClNgl3ntlexRXnGKxcZTAg2MNY3dlqo7OBLEzsfY.cache +0 -0
  377. data/test/dummy/tmp/cache/assets/sprockets/v3.0/id/idc_N3hh-FdBtj-0tNzFdY1_FFmij4ugPE8QTdCjL9E.cache +0 -0
  378. data/test/dummy/tmp/cache/assets/sprockets/v3.0/im/imMACZydNORUlirctUTX7COofs6fkOb1eJVh6bXfseE.cache +4 -0
  379. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ix/ixkPvj54mhdDnmD5d68VYDwOu211m3FbniEVqzvnxRs.cache +0 -0
  380. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j0/j0jLU-n1mopUd_sgxJ07vBlOdyxQIDbsMcbpfl6UGeY.cache +0 -0
  381. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jA/jA0T6DZFHf35HbVJ0hsVuEZo0U0guEjluc_1ClQPXH0.cache +1 -0
  382. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jH/jHEldP_SgVw-xyGyJXpgJrRWmDChksjfaTBnxTDkQvs.cache +0 -0
  383. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jN/jNjtXatGgXAE16q_sLQqqeT4a0i3lTA9QW4Y7YzgCC0.cache +1 -0
  384. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jV/jVwJ_pmUGbnxmkimw1BAOVSjhTVdd1j6kJSkhe3cnSQ.cache +1 -0
  385. data/test/dummy/tmp/cache/assets/sprockets/v3.0/j_/j_7KtO1TnaWtmAukcVNiE4zzBNNBW1nJW-wfKdvZKSo.cache +1 -0
  386. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jg/jg-5ilOZ-hza5z_CkM2vxCt2j7wh_Qzni2gKwNGttMY.cache +1 -0
  387. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jt/jtHWXTPj_CRSqJRduOWA98CEKvZYPGBYsWviLwYBbEg.cache +1 -0
  388. data/test/dummy/tmp/cache/assets/sprockets/v3.0/jy/jyV15KDAIc3jkQMQsNzcRv0JhsUYqmw6JGZuGJNTFoM.cache +0 -0
  389. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kG/kGnYvmgltHWerDrKlB6NMy52uGDtVH_9AJhZBMcyda0.cache +1 -0
  390. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kk/kkvJ59QBgdmtmKfhwJ4qImcE1dUCDLD0RQBspF8Zluo.cache +0 -0
  391. data/test/dummy/tmp/cache/assets/sprockets/v3.0/kx/kxznfHVNfMZCDSYKIdGdSZ7KGCYak6EFU2wkKpbYwXo.cache +0 -0
  392. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l6/l6gFWduRtz1m8hOEpy2raCay3KAfN9Yf3MrerASsLd4.cache +2 -0
  393. data/test/dummy/tmp/cache/assets/sprockets/v3.0/l7/l7OQkzNytchk7bYgutTTvesFE8FjKrNeRJmWsKSgB-4.cache +0 -0
  394. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lD/lDv8VTsV8QjNxeC3C7mdnCCJPIo0n2kUatu79i65Zfo.cache +1 -0
  395. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lF/lFkQ0PiEjLHG8ZnICmfXB3hQ8Myy0rO4gPsd6-LhDcM.cache +1 -0
  396. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lo/loaaTV-828dx-_t0p82uJtov9uwwVr_inpxpnFWijo4.cache +0 -0
  397. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lt/lt_Il2gnezo5eNTJyr1raWKlTQXLUZ2_CBLzfuzwAjk.cache +0 -0
  398. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ly/lyJmJ70Hz6lxcUDu6VDbjyYN59IGeNzYKwQt4wqJ65E.cache +1 -0
  399. data/test/dummy/tmp/cache/assets/sprockets/v3.0/lz/lzur8poSctIUhDIJRoqUHszHYNUQ5PhS7XWPBr-bsW0.cache +0 -0
  400. data/test/dummy/tmp/cache/assets/sprockets/v3.0/m9/m916ksNYqgK0RWJHUQJA0EqBtx6a6bhzGLoD8Oj80u4.cache +1 -0
  401. data/test/dummy/tmp/cache/assets/sprockets/v3.0/me/me9edXAR9JOcKGhR8vnqHyFfOKJ7k2zGPiqSD8ofak0.cache +1 -0
  402. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ms/msJ-k6Dla_K9JvvJgFv4YEVH1L2F5fHNWyudv1ss6aY.cache +1 -0
  403. data/test/dummy/tmp/cache/assets/sprockets/v3.0/mt/mtTeynjbYObzQ8vM4FH5RXHEkwhNEBPu1HNP5n56hKg.cache +0 -0
  404. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nT/nTMrNb6KAxZFFcxYMfSoKDQuLLU4DbnG-Q2IMBn4iic.cache +0 -0
  405. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nU/nUVgFb1i3zliiAmeBcYSJhIBv6Bz5d1kxFezhqnY31c.cache +1 -0
  406. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ni/nipX2Xdusq8KWLZZGpLm0N3CmpqN19RvLQC-JOtaj2Q.cache +0 -0
  407. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ni/nir_AAhCVuZT67klxwHUOX34ytBSdkR5MeKSsjw3eps.cache +1 -0
  408. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ni/nisCO33YJ-DR0y8R_8XoRhTDSphAKq1msoC-Vf0hLg4.cache +1 -0
  409. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nj/nj-frPpkXzIBHuHsGUXjp28-TTdPYW5ndnn4aGc6AGk.cache +1 -0
  410. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nk/nkBQZ19zNOdfWbk5FyOdLJPbrGVGMxW5Ji7W_F4_SJQ.cache +1 -0
  411. data/test/dummy/tmp/cache/assets/sprockets/v3.0/nm/nmCpkQS_QWEUCNdrvPapJtORGLZr8tzAFcc3SzfzVdQ.cache +0 -0
  412. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o1/o18Ryez2gIk5uXTq3hIp8uJEBXu_8YRMZPoIzD-6AAM.cache +1 -0
  413. data/test/dummy/tmp/cache/assets/sprockets/v3.0/o1/o1Fk5ujIjIZ05he-LKHsrBKfGt-KVGMamCBxUCXGIas.cache +0 -0
  414. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oN/oNhEFrq7eBubgMHqPUvLq8rso1IfuaZX3h8a3E7ZycM.cache +1 -0
  415. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oP/oP5zZWF3zsUY7EU5DZqc7IKnbpXm5ixWY8pw10FhynA.cache +2 -0
  416. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oW/oWVPiRL9tAnudWqX0jP9D5d6OTUk6DOXdMN7JS7FRdw.cache +0 -0
  417. data/test/dummy/tmp/cache/assets/sprockets/v3.0/oi/oixnX5WERx-f0S__Ma-IhKRg9Z4UglmkMvpMy1qVCIM.cache +1 -0
  418. data/test/dummy/tmp/cache/assets/sprockets/v3.0/op/op8fpGWkaVsPrV_F5Rq5-_VlHCeFOXtTbzPvzOocjD0.cache +0 -0
  419. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ov/ov7yNuSUPKs_M7p3COGraz-PF_DbWz3cxX32MZDW2dc.cache +1 -0
  420. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ov/ovKSsPhxW8w_v7t5s3mEeBONCy8iH9khwOVv0pU4rdE.cache +0 -0
  421. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ox/oxtyXVGZoa1O-cICPZ7dLDvC3u08WabyOUkAN32ssWE.cache +1 -0
  422. data/test/dummy/tmp/cache/assets/sprockets/v3.0/p0/p0vWto51k9t5bnT67f5cw2WN2WweN46-nArF9LUeWxQ.cache +1 -0
  423. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pE/pEhaat2KBd5SrT7szC_8R1_6hK17FTpvoRFkmCRSD3M.cache +0 -0
  424. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pF/pF2xo9xQibUrKXz7PNuQu2mHW6vKzKCAtSVIRbpm8C4.cache +1 -0
  425. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pI/pI0fgaIf_zwkl-9-mLC_SeN2m4Xizzp1W1ZfizvGhHU.cache +1 -0
  426. data/test/dummy/tmp/cache/assets/sprockets/v3.0/pl/pltMNk51kCwaPlqFa7aK2Z1jtLLi-8JOw1b7egfavB8.cache +1 -0
  427. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ps/pss2152e3e98slfiFJIEmvM6BTlFR33fRTzOSgZ5ywU.cache +0 -0
  428. data/test/dummy/tmp/cache/assets/sprockets/v3.0/q8/q86uel279tao5P0t5d6hEma0KGf50RYzztx7k-mGJn4.cache +1 -0
  429. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qF/qFF902qQrw2LQUDARfQ95fz2S3TsC-Fo-AK6wgMr4uo.cache +0 -0
  430. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qJ/qJGSZjFx5nAoZU2LmvGyvA284LKSMt0GVuKsvZ_Zxbo.cache +0 -0
  431. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qP/qPdCnlO405h_Ws8oX_W5DKUhyEiVj8ekIGspaDBiN-U.cache +0 -0
  432. data/test/dummy/tmp/cache/assets/sprockets/v3.0/qR/qRcv9T6NPmakkuJR8S8ceMYgn-iC7Ykq3DEKwMrvQ-4.cache +1 -0
  433. data/test/dummy/tmp/cache/assets/sprockets/v3.0/r6/r6D22-QSEVfh1elsrEUIVuF3u-BKH_lk6leRvS2XPdI.cache +1 -0
  434. data/test/dummy/tmp/cache/assets/sprockets/v3.0/r7/r742R2oEUnjIZV9A7coBeSQemd9wFwCX9gWoTKjvnv0.cache +1 -0
  435. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rQ/rQZTK9JUQjCKOZyl-d7k_2UJd4lIo62t_kS-IwbXScQ.cache +1 -0
  436. data/test/dummy/tmp/cache/assets/sprockets/v3.0/r_/r_i-poFJcx6EMH-jyHcQboJRtWPEUs_iL7F7NfYxk2g.cache +0 -0
  437. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ra/rafYB7BfC8S1pFt1ifQrWUVkt47XRAnNXttdHLbAT_k.cache +1 -0
  438. data/test/dummy/tmp/cache/assets/sprockets/v3.0/rl/rlQYr0tmy2rbQhGt7ibwqZdjYn1Gl6JZI00qhv6z9hA.cache +0 -0
  439. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s5/s5SaUvIDtablB5xeJAWS19YllbftAdzqwi-GLf8E7T8.cache +0 -0
  440. data/test/dummy/tmp/cache/assets/sprockets/v3.0/s6/s6gtxJbRL10sgK2zKdJXdN-Ek7KB9KgiC8pPDAayHBQ.cache +1 -0
  441. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sI/sI3KEcrrV8s92i1HpZPqpGrOtyyN8ldPSamxWZ0Qdak.cache +1 -0
  442. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sM/sMFOMHiLt5m7goRjcDwS13bC-zZqJ3wULYmlvxuyM9I.cache +1 -0
  443. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sU/sUVaQ9HugzQ5Hx7xQNbN4yP-J4cr1KJ7GTnkqT2d8uk.cache +1 -0
  444. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sZ/sZnBgLQeC27m15QvEAXbloikoNWzddEDaPmr-lKOgkI.cache +0 -0
  445. data/test/dummy/tmp/cache/assets/sprockets/v3.0/si/si-4z5KexIjFjYuqH_Yz3fLONaUBRtFrFUVN6zy16Es.cache +0 -0
  446. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sr/srtX18E81WBmTV4cjOzMoyKxP9LRBEOcVsTjJM5Pwrg.cache +0 -0
  447. data/test/dummy/tmp/cache/assets/sprockets/v3.0/st/st1788tIY_Naize_TalkSeNPSUmHpWn3UX3IkYh4Eb4.cache +1 -0
  448. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sv/svtrb8U8HcnPeRqEWgmTlPoNyfvEyVpK17aiHvDhWyE.cache +1 -0
  449. data/test/dummy/tmp/cache/assets/sprockets/v3.0/sx/sxHZwwsXsQHYG5LUfQ4x2rIyxwYe74KQ9AugSeUDzzE.cache +0 -0
  450. data/test/dummy/tmp/cache/assets/sprockets/v3.0/t-/t-nKszWydLQex7rYgOXejEAJIKfNSGiMXoSQ5-8BjYc.cache +1 -0
  451. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tF/tF1MjGbbRLDDz9207OyceqxQHvdzf9ANadsFuSMzMFc.cache +0 -0
  452. data/test/dummy/tmp/cache/assets/sprockets/v3.0/tm/tmHA_f2vg3xGaX9vbYch03U9Ru2ZrYuH6EfM1Oo3p2c.cache +0 -0
  453. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uX/uXHu1j-3uOkbRGmJtVix_Ff-ccnhMi498CLShZlUUpA.cache +1 -0
  454. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uc/uc8aNVobwrNxhdjyhr8l9EfrcRC80aMKuLFuyECuPFA.cache +1 -0
  455. data/test/dummy/tmp/cache/assets/sprockets/v3.0/up/upOjGtFRi3ICAfKf2NvPfPoPLSTZCK2JtYq81AHYxX0.cache +1 -0
  456. data/test/dummy/tmp/cache/assets/sprockets/v3.0/uu/uu3gKPMvdqBfzVl0K4thb0KWtTq3lAEzCz_Y6Fhgx70.cache +1 -0
  457. data/test/dummy/tmp/cache/assets/sprockets/v3.0/v9/v97nzsSKsYea3uZ0M6bxAhDW2LGQKUNL5zB3-JJfBf4.cache +1 -0
  458. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vQ/vQgAjvNr_feNXlJrEznq8Dj2-20QeaIH0OktuV8vPrI.cache +0 -0
  459. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vk/vk-yEq28UDM7hqhSKtHAXZX2qnUZHrv4xCu1H3Hv9b8.cache +0 -0
  460. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vr/vrbhDLBEdxNctR4GeI_6qXrmCcoddh4pWy0uYjZXkVg.cache +1 -0
  461. data/test/dummy/tmp/cache/assets/sprockets/v3.0/vw/vwgONuryOxkXZcQetbnnNgbo7FSVlgt_Hqr-oM2TE0U.cache +0 -0
  462. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wS/wSN2ZtMLsxSL6Dkahc1ZwZQVKyJzCHHYHhkV20xCMu8.cache +1 -0
  463. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wo/woYCH6WspNF7vxO1S5MhRRTSBxKsQbOCx6zaEAzWD88.cache +0 -0
  464. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wo/woiCCOdJdP-_dTvanOghZpR9_wZohfQs_MsIQ5bfLOM.cache +0 -0
  465. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wp/wpDjC-4A8sVSd7NDyEwbQK833mXADN89e_4VBpjBGd4.cache +1 -0
  466. data/test/dummy/tmp/cache/assets/sprockets/v3.0/wr/wrVo07uP9SAJYrL4uwAKd2As77H7PgmbRYwqtrBTO08.cache +1 -0
  467. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ww/wwEzJr_xf0ci2mqw_XSzZmIQpJvQN5zcSHybubzBDww.cache +0 -0
  468. data/test/dummy/tmp/cache/assets/sprockets/v3.0/x2/x2IHehe_gBb_fk5LRtfi99cZ78VEnXdip43J5Wq7uQQ.cache +0 -0
  469. data/test/dummy/tmp/cache/assets/sprockets/v3.0/x7/x7NsmnxTDQIGaO_3c5-aYjdvXzLvwXsgtGXLGd4_FXw.cache +0 -0
  470. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xA/xAAzQsrnEG4kiINT10L0PPkDwg1uFJhyH7otw3QMDjE.cache +1 -0
  471. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xA/xA_18IvFPnhPg0IeD-AU642PkZApOC6ZtkXkrs9PIHI.cache +0 -0
  472. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xB/xBFuOuuomRsZKZKb01buuDj-zEw7zB4x5KRG3tQ4tDI.cache +1 -0
  473. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xD/xD_eYq0dqwf2Qo1Sjg3TMpEENaJzzIxwRUZEVCgjdK8.cache +0 -0
  474. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xG/xGKF2FHOV7funLYbn4Fk9pS5lN-8vZe1o70u5YgzBes.cache +1 -0
  475. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xQ/xQquG8acFW0ffG-mKH7XyzKGvWB_OkeA6pRpqVmlgis.cache +0 -0
  476. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xc/xcvMMjAm60ntxxAOflflJoT_TB_-fNRmhOUzXwmgqo8.cache +1 -0
  477. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xs/xsNaF1ExOUS_B7nrm0GytB-LgVbfDPbua8boocz_WBc.cache +1 -0
  478. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xu/xuIMx-fsH37-NIAT5YU5C-XQSLsQA8iz1PUCGnU876U.cache +1 -0
  479. data/test/dummy/tmp/cache/assets/sprockets/v3.0/xx/xxIsEK7pSAOwDkivd32A_JcyS2_-MMdVkhFUAKFSvwY.cache +0 -0
  480. data/test/dummy/tmp/cache/assets/sprockets/v3.0/ye/ye6ahFx70vr4IrjXSFnoSo8TxXQT-WVFNKa2D5Zy3Dg.cache +1 -0
  481. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zB/zBX1l0Twye8fbeTl8EbjELzyUK1y1NKngVa6fCttyXU.cache +1 -0
  482. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zE/zEknbUrkhbEDAA25p7e5o5lkNW8GxfIwmi2987CDR-c.cache +0 -0
  483. data/test/dummy/tmp/cache/assets/sprockets/v3.0/za/zazcVfJ8LCckQNrY2ZGiySu91rNfiz421g-7VGiQ7f8.cache +1 -0
  484. data/test/dummy/tmp/cache/assets/sprockets/v3.0/zj/zjzCwS7WV_khBlIWYyTJVwSRnO4wJEccptl0bXeNkJw.cache +1 -0
  485. data/test/fixtures/cally/invitations.yml +15 -0
  486. data/test/fixtures/cally/users.yml +28 -0
  487. data/test/integration/cally/create_invitation_test.rb +54 -0
  488. data/test/integration/cally/create_user_test.rb +83 -0
  489. data/test/integration/cally/delete_invitation_test.rb +44 -0
  490. data/test/integration/cally/delete_user_test.rb +44 -0
  491. data/test/integration/cally/edit_user_test.rb +59 -0
  492. data/test/integration/cally/index_invitations_test.rb +36 -0
  493. data/test/integration/cally/login_logout_test.rb +51 -0
  494. data/test/integration/cally/reset_password_test.rb +90 -0
  495. data/test/integration/cally/send_invitation_test.rb +45 -0
  496. data/test/integration/cally/show_all_users_test.rb +30 -0
  497. data/test/integration/cally/show_user_profile_test.rb +31 -0
  498. data/test/integration/cally/toggle_admin_rights_test.rb +52 -0
  499. data/test/integration/navigation_test.rb +8 -0
  500. data/test/models/cally/invitation_test.rb +33 -0
  501. data/test/models/cally/user_test.rb +82 -0
  502. data/test/test_helper.rb +27 -0
  503. metadata +1137 -0
@@ -0,0 +1,59 @@
1
+ require 'test_helper'
2
+
3
+ class EditUserTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+ end
9
+
10
+ test 'change username as owner (valid)' do
11
+ login_as(@john, 'john12345678901234567890')
12
+ get "/cally/users/#{@john.id}/edit"
13
+ assert_template 'users/edit'
14
+ put "/cally/users/#{@john.id}", params: { user: { username: 'John2' } }
15
+ follow_redirect!
16
+ assert_template 'users/show'
17
+ assert_match 'Your profile is updated successfully.', response.body
18
+ end
19
+
20
+ test 'change email as owner (valid)' do
21
+ login_as(@john, 'john12345678901234567890')
22
+ get "/cally/users/#{@john.id}/edit"
23
+ assert_template 'users/edit'
24
+ put "/cally/users/#{@john.id}", params: { user: { email: 'John2@example.com' } }
25
+ follow_redirect!
26
+ assert_template 'users/show'
27
+ assert_match 'Your profile is updated successfully.', response.body
28
+ end
29
+
30
+ test 'change password as owner (valid)' do
31
+ login_as(@john, 'john12345678901234567890')
32
+ get "/cally/users/#{@john.id}/edit"
33
+ assert_template 'users/edit'
34
+ put "/cally/users/#{@john.id}", params: { user: { password: 'john1234567890123456789011' } }
35
+ follow_redirect!
36
+ assert_template 'users/show'
37
+ assert_match 'Your profile is updated successfully.', response.body
38
+ end
39
+
40
+ test 'change profile when not logged in (invalid)' do
41
+ get "/cally/users/#{@john.id}/edit"
42
+ follow_redirect!
43
+ assert_template 'users/login'
44
+ put "/cally/users/#{@john.id}", params: { user: { username: 'John2' } }
45
+ follow_redirect!
46
+ assert_match 'You can only view your own profile.', response.body
47
+ end
48
+
49
+ test 'change other user profile (invalid)' do
50
+ login_as(@john, 'john12345678901234567890')
51
+ get "/cally/users/#{@joe.id}/edit"
52
+ follow_redirect!
53
+ assert_template 'users/login'
54
+ put "/cally/users/#{@joe.id}", params: { user: { password: 'john1234567890123456789011' } }
55
+ follow_redirect!
56
+ assert_template 'users/login'
57
+ assert_match 'You can only view your own profile.', response.body
58
+ end
59
+ end
@@ -0,0 +1,36 @@
1
+ require 'test_helper'
2
+
3
+ class IndexInvitationsTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+
9
+ ENV['INVITATION_ONLY'] = 'true'
10
+ end
11
+
12
+ def teardown
13
+ ENV['INVITATION_ONLY'] = 'false'
14
+ end
15
+
16
+ test 'show all invitations as admin (valid).' do
17
+ login_as(@john, 'john12345678901234567890')
18
+ get '/cally/invitations/all'
19
+ assert_template 'invitations/index'
20
+ end
21
+
22
+ test 'show all invitations as non-admin (invalid).' do
23
+ login_as(@joe, 'joe12345678901234567890')
24
+ get '/cally/invitations/all'
25
+ follow_redirect!
26
+ assert_template 'users/show'
27
+ assert_match 'You need to be admin for this action.', response.body
28
+ end
29
+
30
+ test 'show all invitations when not logged in (invalid).' do
31
+ get '/cally/invitations/all'
32
+ follow_redirect!
33
+ assert_template 'users/login'
34
+ assert_match 'You need to be admin for this action.', response.body
35
+ end
36
+ end
@@ -0,0 +1,51 @@
1
+ require 'test_helper'
2
+
3
+ class LoginLogoutTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ end
8
+
9
+ test 'login with valid email and password (valid)' do
10
+ get '/cally/login'
11
+ assert_template 'users/login'
12
+ post '/cally/login', params: { session: { email: @john.email, password: 'john12345678901234567890' } }
13
+ follow_redirect!
14
+ assert_template 'users/show'
15
+ assert_match "Welcome #{@john.username}", response.body
16
+ end
17
+
18
+ test 'login with invalid email (invalid)' do
19
+ get '/cally/login'
20
+ #follow_redirect!
21
+ assert_template 'users/login'
22
+ post '/cally/login', params: { session: { email: 'test@test.com', password: 'john12345678901234567890' } }
23
+ follow_redirect!
24
+ assert_template 'users/login'
25
+ assert_match 'Error logging in', response.body
26
+ end
27
+
28
+ test 'login with invalid password (invalid)' do
29
+ get '/cally/login'
30
+ #follow_redirect!
31
+ assert_template 'users/login'
32
+ post '/cally/login', params: { session: { email: @john.email, password: 'john' } }
33
+ follow_redirect!
34
+ assert_template 'users/login'
35
+ assert_match 'Error logging in', response.body
36
+ end
37
+
38
+ test 'logout (valid)' do
39
+ get '/cally/login'
40
+ #follow_redirect!
41
+ assert_template 'users/login'
42
+ post '/cally/login', params: { session: { email: @john.email, password: 'john12345678901234567890' } }
43
+ follow_redirect!
44
+ assert_template 'users/show'
45
+ assert_match "Welcome #{@john.username}", response.body
46
+ delete '/cally/logout'
47
+ follow_redirect!
48
+ assert_template 'users/login'
49
+ assert_match 'Successfully logged out', response.body
50
+ end
51
+ end
@@ -0,0 +1,90 @@
1
+ require 'test_helper'
2
+
3
+ class ResetPasswordTest < ActionDispatch::IntegrationTest
4
+
5
+ include Delorean
6
+
7
+ def setup
8
+ @john = cally_users(:john)
9
+ Delorean.back_to_the_present
10
+ end
11
+
12
+ def teardown
13
+ Delorean.back_to_the_present
14
+ end
15
+
16
+ #test 'reset password (valid)' do
17
+ # Delorean.jump(86400)
18
+ # retries = @john.retry
19
+ # get '/cally/forgot_password'
20
+ # assert_template 'users/forgot_password'
21
+ # post '/cally/forgot_password', params: { user: { email: @john.email } }
22
+ # #follow_redirect!
23
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
24
+ # follow_redirect!
25
+ # assert_match "Reset key is sent to '#{@john.email}'.", response.body
26
+ # assert_equal retries+1, @john.reload.retry
27
+ #end
28
+
29
+ #test 'reset password with invalid email address (invalid).' do
30
+ # get '/cally/forgot_password'
31
+ # assert_template 'users/forgot_password'
32
+ # post '/cally/forgot_password', params: { user: { email: 'a@example.com' } }
33
+ # follow_redirect!
34
+ # assert_match "User with email: 'a@example.com' not found.",response.body
35
+ #end
36
+
37
+ #test 'reset password with invalid security answer (invalid).' do
38
+ # retries = @john.retry
39
+ # get '/cally/forgot_password'
40
+ # assert_template 'users/forgot_password'
41
+ # post '/cally/forgot_password', params: { user: { email: @john.email } }
42
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: 'invalid' } }
43
+ # follow_redirect!
44
+ # assert_match 'The security answer is incorrect.', response.body
45
+ # assert_equal retries, @john.reload.retry
46
+ #end
47
+
48
+ #test 'resetting password more than allowed retries (invalid).' do
49
+ # retries = @john.retry
50
+ # get '/cally/forgot_password'
51
+ # assert_template 'users/forgot_password'
52
+ # post '/cally/forgot_password', params: { user: { email: @john.email } }
53
+ #follow_redirect!
54
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
55
+ #follow_redirect!
56
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
57
+ #follow_redirect!
58
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
59
+ #follow_redirect!
60
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
61
+ # follow_redirect!
62
+ # assert_match 'You has reached the limit of allowed password resets.', response.body
63
+ # assert_equal retries+2, @john.reload.retry
64
+ #end
65
+
66
+ #test 'reset password day after limit of retries was reached (valid).' do
67
+ # retries = @john.retry
68
+ # get '/cally/forgot_password'
69
+ # assert_template 'users/forgot_password'
70
+ # post '/cally/forgot_password', params: { user: { email: @john.email } }
71
+ #follow_redirect!
72
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
73
+ #follow_redirect!
74
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
75
+ #follow_redirect!
76
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
77
+ #follow_redirect!
78
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
79
+ # follow_redirect!
80
+ # assert_match 'You has reached the limit of allowed password resets.', response.body
81
+ # assert_equal retries+2, @john.reload.retry
82
+
83
+ # Delorean.jump(86400) {
84
+ # put '/cally/forgot_password', params: { user: { email: @john.email, security_answer: @john.security_answer } }
85
+ # assert_match "Reset key is sent to '#{@john.email}'.", response.body
86
+ # assert_equal 0, @john.reload.retry
87
+ # }
88
+ # Delorean.back_to_the_present
89
+ #end
90
+ end
@@ -0,0 +1,45 @@
1
+ require 'test_helper'
2
+
3
+ class SendInvitationTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+ @invite1 = cally_invitations(:invite1)
9
+ ENV['INVITATION_ONLY'] = 'true'
10
+ end
11
+
12
+ def teardown
13
+ ENV['INVITATION_ONLY'] = 'false'
14
+ end
15
+
16
+ test 'send invitation as admin (valid).' do
17
+ login_as(@john, 'john12345678901234567890')
18
+ get '/cally/invitations/all'
19
+ assert_template 'invitations/index'
20
+ get "/cally/send_invitation/#{@invite1.id}"
21
+ follow_redirect!
22
+ assert_match "Sent invitation to '#{@invite1.email}'", response.body
23
+ end
24
+
25
+ test 'send invitation as non-admin (invalid).' do
26
+ login_as(@joe, 'joe12345678901234567890')
27
+ get '/cally/invitations/all'
28
+ follow_redirect!
29
+ assert_template 'users/show'
30
+ assert_match 'You need to be admin for this action.', response.body
31
+ get "/cally/send_invitation/#{@invite1.id}"
32
+ follow_redirect!
33
+ assert_match 'You need to be admin for this action.', response.body
34
+ end
35
+
36
+ test 'send invitation when not logged in (invalid).' do
37
+ get '/cally/invitations/all'
38
+ follow_redirect!
39
+ assert_template 'users/login'
40
+ assert_match 'You need to be admin for this action.', response.body
41
+ get "/cally/send_invitation/#{@invite1.id}"
42
+ follow_redirect!
43
+ assert_match 'You need to be admin for this action.', response.body
44
+ end
45
+ end
@@ -0,0 +1,30 @@
1
+ require 'test_helper'
2
+
3
+ class ShowAllUsersTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+ end
9
+
10
+ test 'show all users as admin (valid)' do
11
+ login_as(@john, 'john12345678901234567890')
12
+ get '/cally/users'
13
+ assert_template 'users/index'
14
+ end
15
+
16
+ test 'show all users as non-admin (invalid)' do
17
+ login_as(@joe, 'joe12345678901234567890')
18
+ get '/cally/users'
19
+ follow_redirect!
20
+ assert_template 'users/show'
21
+ assert_match 'You need to be admin for this action.', response.body
22
+ end
23
+
24
+ test 'show all users when not logged in (invalid)' do
25
+ get '/cally/users'
26
+ follow_redirect!
27
+ assert_template 'users/login'
28
+ assert_match 'You need to be admin for this action.', response.body
29
+ end
30
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ class ShowUserProfileTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+ end
9
+
10
+ test 'show own profile (valid)' do
11
+ login_as(@john, 'john12345678901234567890')
12
+ get "/cally/users/#{@john.id}"
13
+ assert_template 'users/show'
14
+ assert_match "Welcome #{@john.username}", response.body
15
+ end
16
+
17
+ test 'show other user profile (invalid)' do
18
+ login_as(@joe, 'joe12345678901234567890')
19
+ get "/cally/users/#{@john.id}"
20
+ follow_redirect!
21
+ assert_template 'users/login'
22
+ assert_match 'You can only view your own profile.', response.body
23
+ end
24
+
25
+ test 'show profile when not logged in (invalid)' do
26
+ get "/cally/users/#{@john.id}"
27
+ follow_redirect!
28
+ assert_template 'users/login'
29
+ assert_match 'You can only view your own profile.', response.body
30
+ end
31
+ end
@@ -0,0 +1,52 @@
1
+ require 'test_helper'
2
+
3
+ class ToggleAdminRightsTest < ActionDispatch::IntegrationTest
4
+
5
+ def setup
6
+ @john = cally_users(:john)
7
+ @joe = cally_users(:joe)
8
+ end
9
+
10
+ test 'give user admin rights as admin (valid)' do
11
+ login_as(@john, 'john12345678901234567890')
12
+ assert_not @joe.admin
13
+ post "/cally/toggle_admin/#{@joe.id}"
14
+ follow_redirect!
15
+ assert @joe.reload.admin
16
+ assert_match 'Admin status updated successfully.', response.body
17
+ end
18
+
19
+ test 'revoke user admin rights as admin (valid)' do
20
+ login_as(@john, 'john12345678901234567890')
21
+ post "/cally/toggle_admin/#{@joe.id}"
22
+ follow_redirect!
23
+ assert @joe.reload.admin
24
+ post "/cally/toggle_admin/#{@joe.id}"
25
+ follow_redirect!
26
+ assert_not @joe.reload.admin
27
+ assert_match 'Admin status updated successfully.', response.body
28
+ end
29
+
30
+ test 'toggle admin rights for first user (invalid)' do
31
+ login_as(@john, 'john12345678901234567890')
32
+ post "/cally/toggle_admin/#{@john.id}"
33
+ follow_redirect!
34
+ assert @john.reload.admin
35
+ assert_match 'Error updating admin status.' , response.body
36
+ end
37
+
38
+ test 'toggle admin rights as non-admin (invalid)' do
39
+ login_as(@joe, 'joe12345678901234567890')
40
+ post "/cally/toggle_admin/#{@joe.id}"
41
+ follow_redirect!
42
+ assert_not @joe.reload.admin
43
+ assert_match 'You need to be admin for this action.' , response.body
44
+ end
45
+
46
+ test 'toggle admin rights when not logged in (invalid)' do
47
+ post "/cally/toggle_admin/#{@joe.id}"
48
+ follow_redirect!
49
+ assert_not @joe.reload.admin
50
+ assert_match 'You need to be admin for this action.' , response.body
51
+ end
52
+ end
@@ -0,0 +1,8 @@
1
+ require 'test_helper'
2
+
3
+ class NavigationTest < ActionDispatch::IntegrationTest
4
+ # test "the truth" do
5
+ # assert true
6
+ # end
7
+ end
8
+
@@ -0,0 +1,33 @@
1
+ require 'test_helper'
2
+
3
+ module Cally
4
+ class InvitationTest < ActiveSupport::TestCase
5
+
6
+ require 'omw_random_string'
7
+
8
+ def setup
9
+ @john = cally_users(:john)
10
+ @invitation = Invitation.new(email: @john.email, invitation_key: OmwRandomString.generate(32))
11
+ end
12
+
13
+ test 'created invitation in setup is valid (valid)' do
14
+ assert @invitation.valid?
15
+ end
16
+
17
+ test 'create new invitation with same email (invalid)' do
18
+ @invitation.save
19
+ invite2 = Invitation.new(email: @john.email, invitation_key: OmwRandomString.generate(32))
20
+ assert_not invite2.valid?
21
+ end
22
+
23
+ test 'create invitaion with invalid email address (invalid)' do
24
+ @invitation.email = 'aa.com'
25
+ assert_not @invitation.valid?
26
+ end
27
+
28
+ test 'create invitation without email (invalid)' do
29
+ @invitation.email = ''
30
+ assert_not @invitation.valid?
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,82 @@
1
+ require 'test_helper'
2
+
3
+ module Cally
4
+ class UserTest < ActiveSupport::TestCase
5
+
6
+ def setup
7
+ @user = User.new(username: 'aaa',
8
+ email: 'aaa@example.com',
9
+ password: 'aaa12345678901234567890',
10
+ security_question: 'firstname',
11
+ security_answer: 'aaa')
12
+ end
13
+
14
+ test 'user created in setup is valid?' do
15
+ assert @user.valid?
16
+ end
17
+
18
+ test 'username must be minimum 3 characters (invalid)' do
19
+ @user.username = 'aa'
20
+ assert_not @user.valid?
21
+ end
22
+
23
+ test 'username cannot contain more than 25 characters (invalid)' do
24
+ @user.username = 'qbcdefghijklmnopqrstuvwxyz'
25
+ assert_not @user.valid?
26
+ end
27
+
28
+ test 'username should be unique (invalid)' do
29
+ @user.save
30
+ user2 = User.new(username: 'aaa',
31
+ email: 'bbb@example.com',
32
+ password: 'bbb12345678901234567890',
33
+ security_question: 'firstname',
34
+ security_answer: 'aaa')
35
+ assert_not user2.valid?
36
+ end
37
+
38
+ test 'username should not be empty (invalid)' do
39
+ @user.username = ''
40
+ assert_not @user.valid?
41
+ end
42
+
43
+ test 'user must have valid e-mail address (invalid)' do
44
+ @user.email = 'aaa'
45
+ assert_not @user.valid?
46
+ end
47
+
48
+ test 'user e-mail cannot be empty (invalid)' do
49
+ @user.email = ''
50
+ assert_not @user.valid?
51
+ end
52
+
53
+ test 'user must have security question (invalid)' do
54
+ @user.security_question = ''
55
+ assert_not @user.valid?
56
+ end
57
+
58
+ test 'user must have security answer (invalid)' do
59
+ @user.security_answer = ''
60
+ assert_not @user.valid?
61
+ end
62
+
63
+ test 'user e-mail must be unique (invalid)' do
64
+ @user.save
65
+ user2 = User.new(username: 'bbb',
66
+ email: 'aaa@example.com',
67
+ password: 'bbb12345678901234567890',
68
+ security_question: 'firstname',
69
+ security_answer: 'bbb')
70
+ assert_not user2.valid?
71
+ end
72
+
73
+ test 'user password must be at least 15 characters (invalid)' do
74
+ user2 = User.new(username: 'bbb',
75
+ email: 'bbb@example.com',
76
+ password: 'bb',
77
+ security_question: 'firstname',
78
+ security_answer: 'bbb')
79
+ assert_not user2.valid?
80
+ end
81
+ end
82
+ end
@@ -0,0 +1,27 @@
1
+ # Configure Rails Environment
2
+ ENV["RAILS_ENV"] = "test"
3
+
4
+ require File.expand_path("../../test/dummy/config/environment.rb", __FILE__)
5
+ ActiveRecord::Migrator.migrations_paths = [File.expand_path("../../test/dummy/db/migrate", __FILE__)]
6
+ ActiveRecord::Migrator.migrations_paths << File.expand_path('../../db/migrate', __FILE__)
7
+ require "rails/test_help"
8
+
9
+ # Filter out Minitest backtrace while allowing backtrace from other libraries
10
+ # to be shown.
11
+ Minitest.backtrace_filter = Minitest::BacktraceFilter.new
12
+
13
+ # Load support files
14
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
15
+
16
+ # Load fixtures from the engine
17
+ if ActiveSupport::TestCase.respond_to?(:fixture_path=)
18
+ ActiveSupport::TestCase.fixture_path = File.expand_path("../fixtures", __FILE__)
19
+ ActionDispatch::IntegrationTest.fixture_path = ActiveSupport::TestCase.fixture_path
20
+ ActiveSupport::TestCase.fixtures :all
21
+ end
22
+
23
+ ActiveRecord::Migration.maintain_test_schema!
24
+
25
+ def login_as user, password
26
+ post '/cally/login', params: { session: { email: user.email, password: password } }
27
+ end