proclaim 0.5.6 → 0.6.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (236) hide show
  1. checksums.yaml +5 -5
  2. data/Rakefile +5 -38
  3. data/app/assets/config/proclaim_manifest.js +2 -0
  4. data/app/assets/images/{ajax_loader.gif → proclaim/ajax_loader.gif} +0 -0
  5. data/app/assets/javascripts/proclaim.js +7 -7
  6. data/app/assets/javascripts/proclaim/{comments_handler.js.coffee → comments_handler.coffee} +16 -10
  7. data/app/assets/javascripts/proclaim/editor.coffee +55 -0
  8. data/app/assets/stylesheets/{proclaim.css.scss → proclaim.scss} +7 -8
  9. data/app/assets/stylesheets/proclaim/{comments.css.scss → comments.scss} +0 -0
  10. data/app/assets/stylesheets/proclaim/{posts.css.scss → posts.scss} +60 -25
  11. data/app/assets/stylesheets/proclaim/{subscriptions.css.scss → subscriptions.scss} +0 -0
  12. data/app/controllers/proclaim/application_controller.rb +60 -56
  13. data/app/controllers/proclaim/comments_controller.rb +13 -42
  14. data/app/controllers/proclaim/posts_controller.rb +25 -57
  15. data/app/controllers/proclaim/subscriptions_controller.rb +3 -3
  16. data/app/jobs/proclaim/application_job.rb +4 -0
  17. data/app/mailers/proclaim/application_mailer.rb +5 -0
  18. data/app/mailers/proclaim/subscription_mailer.rb +19 -17
  19. data/app/models/proclaim/application_record.rb +5 -0
  20. data/app/models/proclaim/comment.rb +6 -1
  21. data/app/models/proclaim/post.rb +20 -28
  22. data/app/models/proclaim/subscription.rb +33 -11
  23. data/app/views/layouts/proclaim/subscription_mailer.html.erb +15 -36
  24. data/app/views/proclaim/comments/_comment.html.erb +7 -7
  25. data/app/views/proclaim/comments/_form.html.erb +7 -5
  26. data/app/views/proclaim/posts/_form.html.erb +34 -21
  27. data/app/views/proclaim/posts/show.html.erb +16 -3
  28. data/app/views/proclaim/subscription_mailer/welcome_email.html.erb +2 -6
  29. data/config/initializers/friendly_id.rb +20 -1
  30. data/config/routes.rb +1 -5
  31. data/db/migrate/20141108222616_create_proclaim_posts.rb +8 -1
  32. data/db/migrate/20141114235359_create_proclaim_comments.rb +1 -1
  33. data/db/migrate/20141115022230_create_proclaim_comment_hierarchies.rb +1 -1
  34. data/db/migrate/20141210234057_create_proclaim_subscriptions.rb +5 -4
  35. data/db/migrate/20150213015321_create_friendly_id_slugs.rb +1 -1
  36. data/lib/generators/proclaim/install_generator.rb +1 -1
  37. data/lib/generators/proclaim/templates/initialize_proclaim.rb +31 -29
  38. data/lib/generators/proclaim/views_generator.rb +1 -1
  39. data/lib/proclaim.rb +15 -15
  40. data/lib/proclaim/engine.rb +21 -19
  41. data/lib/proclaim/version.rb +1 -1
  42. data/vendor/assets/fonts/KaTeX_AMS-Regular.ttf +0 -0
  43. data/vendor/assets/fonts/KaTeX_AMS-Regular.woff +0 -0
  44. data/vendor/assets/fonts/KaTeX_AMS-Regular.woff2 +0 -0
  45. data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.ttf +0 -0
  46. data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.woff +0 -0
  47. data/vendor/assets/fonts/KaTeX_Caligraphic-Bold.woff2 +0 -0
  48. data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.ttf +0 -0
  49. data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.woff +0 -0
  50. data/vendor/assets/fonts/KaTeX_Caligraphic-Regular.woff2 +0 -0
  51. data/vendor/assets/fonts/KaTeX_Fraktur-Bold.ttf +0 -0
  52. data/vendor/assets/fonts/KaTeX_Fraktur-Bold.woff +0 -0
  53. data/vendor/assets/fonts/KaTeX_Fraktur-Bold.woff2 +0 -0
  54. data/vendor/assets/fonts/KaTeX_Fraktur-Regular.ttf +0 -0
  55. data/vendor/assets/fonts/KaTeX_Fraktur-Regular.woff +0 -0
  56. data/vendor/assets/fonts/KaTeX_Fraktur-Regular.woff2 +0 -0
  57. data/vendor/assets/fonts/KaTeX_Main-Bold.ttf +0 -0
  58. data/vendor/assets/fonts/KaTeX_Main-Bold.woff +0 -0
  59. data/vendor/assets/fonts/KaTeX_Main-Bold.woff2 +0 -0
  60. data/vendor/assets/fonts/KaTeX_Main-BoldItalic.ttf +0 -0
  61. data/vendor/assets/fonts/KaTeX_Main-BoldItalic.woff +0 -0
  62. data/vendor/assets/fonts/KaTeX_Main-BoldItalic.woff2 +0 -0
  63. data/vendor/assets/fonts/KaTeX_Main-Italic.ttf +0 -0
  64. data/vendor/assets/fonts/KaTeX_Main-Italic.woff +0 -0
  65. data/vendor/assets/fonts/KaTeX_Main-Italic.woff2 +0 -0
  66. data/vendor/assets/fonts/KaTeX_Main-Regular.ttf +0 -0
  67. data/vendor/assets/fonts/KaTeX_Main-Regular.woff +0 -0
  68. data/vendor/assets/fonts/KaTeX_Main-Regular.woff2 +0 -0
  69. data/vendor/assets/fonts/KaTeX_Math-BoldItalic.ttf +0 -0
  70. data/vendor/assets/fonts/KaTeX_Math-BoldItalic.woff +0 -0
  71. data/vendor/assets/fonts/KaTeX_Math-BoldItalic.woff2 +0 -0
  72. data/vendor/assets/fonts/KaTeX_Math-Italic.ttf +0 -0
  73. data/vendor/assets/fonts/KaTeX_Math-Italic.woff +0 -0
  74. data/vendor/assets/fonts/KaTeX_Math-Italic.woff2 +0 -0
  75. data/vendor/assets/fonts/KaTeX_SansSerif-Bold.ttf +0 -0
  76. data/vendor/assets/fonts/KaTeX_SansSerif-Bold.woff +0 -0
  77. data/vendor/assets/fonts/KaTeX_SansSerif-Bold.woff2 +0 -0
  78. data/vendor/assets/fonts/KaTeX_SansSerif-Italic.ttf +0 -0
  79. data/vendor/assets/fonts/KaTeX_SansSerif-Italic.woff +0 -0
  80. data/vendor/assets/fonts/KaTeX_SansSerif-Italic.woff2 +0 -0
  81. data/vendor/assets/fonts/KaTeX_SansSerif-Regular.ttf +0 -0
  82. data/vendor/assets/fonts/KaTeX_SansSerif-Regular.woff +0 -0
  83. data/vendor/assets/fonts/KaTeX_SansSerif-Regular.woff2 +0 -0
  84. data/vendor/assets/fonts/KaTeX_Script-Regular.ttf +0 -0
  85. data/vendor/assets/fonts/KaTeX_Script-Regular.woff +0 -0
  86. data/vendor/assets/fonts/KaTeX_Script-Regular.woff2 +0 -0
  87. data/vendor/assets/fonts/KaTeX_Size1-Regular.ttf +0 -0
  88. data/vendor/assets/fonts/KaTeX_Size1-Regular.woff +0 -0
  89. data/vendor/assets/fonts/KaTeX_Size1-Regular.woff2 +0 -0
  90. data/vendor/assets/fonts/KaTeX_Size2-Regular.ttf +0 -0
  91. data/vendor/assets/fonts/KaTeX_Size2-Regular.woff +0 -0
  92. data/vendor/assets/fonts/KaTeX_Size2-Regular.woff2 +0 -0
  93. data/vendor/assets/fonts/KaTeX_Size3-Regular.ttf +0 -0
  94. data/vendor/assets/fonts/KaTeX_Size3-Regular.woff +0 -0
  95. data/vendor/assets/fonts/KaTeX_Size3-Regular.woff2 +0 -0
  96. data/vendor/assets/fonts/KaTeX_Size4-Regular.ttf +0 -0
  97. data/vendor/assets/fonts/KaTeX_Size4-Regular.woff +0 -0
  98. data/vendor/assets/fonts/KaTeX_Size4-Regular.woff2 +0 -0
  99. data/vendor/assets/fonts/KaTeX_Typewriter-Regular.ttf +0 -0
  100. data/vendor/assets/fonts/KaTeX_Typewriter-Regular.woff +0 -0
  101. data/vendor/assets/fonts/KaTeX_Typewriter-Regular.woff2 +0 -0
  102. data/vendor/assets/javascripts/contrib/auto-render.js +339 -0
  103. data/vendor/assets/javascripts/contrib/auto-render.min.js +1 -0
  104. data/vendor/assets/javascripts/contrib/auto-render.mjs +215 -0
  105. data/vendor/assets/javascripts/contrib/copy-tex.css +14 -0
  106. data/vendor/assets/javascripts/contrib/copy-tex.js +213 -0
  107. data/vendor/assets/javascripts/contrib/copy-tex.min.css +1 -0
  108. data/vendor/assets/javascripts/contrib/copy-tex.min.js +1 -0
  109. data/vendor/assets/javascripts/contrib/copy-tex.mjs +85 -0
  110. data/vendor/assets/javascripts/contrib/mathtex-script-type.js +137 -0
  111. data/vendor/assets/javascripts/contrib/mathtex-script-type.min.js +1 -0
  112. data/vendor/assets/javascripts/contrib/mathtex-script-type.mjs +24 -0
  113. data/vendor/assets/javascripts/contrib/mhchem.js +3241 -0
  114. data/vendor/assets/javascripts/contrib/mhchem.min.js +1 -0
  115. data/vendor/assets/javascripts/contrib/mhchem.mjs +3109 -0
  116. data/vendor/assets/javascripts/katex.js +16517 -0
  117. data/vendor/assets/javascripts/katex.min.js +1 -0
  118. data/vendor/assets/javascripts/katex.mjs +16122 -0
  119. data/vendor/assets/javascripts/quill.core.js +8522 -0
  120. data/vendor/assets/javascripts/quill.js +11489 -0
  121. data/vendor/assets/javascripts/quill.min.js +8 -0
  122. data/vendor/assets/javascripts/quill.min.js.map +1 -0
  123. data/vendor/assets/stylesheets/katex.css +1011 -0
  124. data/vendor/assets/stylesheets/katex.min.css +1 -0
  125. data/vendor/assets/stylesheets/quill.bubble.css +952 -0
  126. data/vendor/assets/stylesheets/quill.core.css +397 -0
  127. data/vendor/assets/stylesheets/quill.snow.css +945 -0
  128. metadata +169 -278
  129. data/CHANGELOG +0 -77
  130. data/Gemfile +0 -14
  131. data/VERSION +0 -1
  132. data/app/assets/javascripts/proclaim/editor.js.coffee +0 -52
  133. data/app/assets/javascripts/proclaim/images.js.coffee +0 -3
  134. data/app/assets/javascripts/proclaim/subscriptions.js.coffee +0 -3
  135. data/app/assets/stylesheets/proclaim/images.scss +0 -3
  136. data/app/controllers/proclaim/images_controller.rb +0 -67
  137. data/app/helpers/proclaim/comments_helper.rb +0 -4
  138. data/app/helpers/proclaim/images_helper.rb +0 -4
  139. data/app/helpers/proclaim/subscriptions_helper.rb +0 -4
  140. data/app/models/proclaim/image.rb +0 -19
  141. data/app/policies/proclaim/image_policy.rb +0 -29
  142. data/app/uploaders/proclaim/image_uploader.rb +0 -82
  143. data/db/migrate/20141222224905_create_proclaim_images.rb +0 -12
  144. data/db/migrate/20150123115226_add_name_to_subscriptions.rb +0 -7
  145. data/db/migrate/20150213015850_add_slug_to_posts.rb +0 -20
  146. data/proclaim.gemspec +0 -51
  147. data/test/controllers/proclaim/comments_controller_test.rb +0 -228
  148. data/test/controllers/proclaim/images_controller_test.rb +0 -166
  149. data/test/controllers/proclaim/posts_controller_test.rb +0 -465
  150. data/test/controllers/proclaim/subscriptions_controller_test.rb +0 -154
  151. data/test/dummy/README.rdoc +0 -28
  152. data/test/dummy/Rakefile +0 -6
  153. data/test/dummy/app/assets/javascripts/application.js +0 -14
  154. data/test/dummy/app/assets/stylesheets/application.css +0 -16
  155. data/test/dummy/app/controllers/application_controller.rb +0 -15
  156. data/test/dummy/app/helpers/application_helper.rb +0 -28
  157. data/test/dummy/app/models/user.rb +0 -7
  158. data/test/dummy/app/views/layouts/application.html.erb +0 -16
  159. data/test/dummy/bin/bundle +0 -3
  160. data/test/dummy/bin/rails +0 -4
  161. data/test/dummy/bin/rake +0 -4
  162. data/test/dummy/config.ru +0 -4
  163. data/test/dummy/config/application.rb +0 -24
  164. data/test/dummy/config/boot.rb +0 -5
  165. data/test/dummy/config/database.yml +0 -25
  166. data/test/dummy/config/environment.rb +0 -5
  167. data/test/dummy/config/environments/development.rb +0 -45
  168. data/test/dummy/config/environments/production.rb +0 -80
  169. data/test/dummy/config/environments/test.rb +0 -49
  170. data/test/dummy/config/initializers/assets.rb +0 -8
  171. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -7
  172. data/test/dummy/config/initializers/cookies_serializer.rb +0 -3
  173. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -4
  174. data/test/dummy/config/initializers/inflections.rb +0 -16
  175. data/test/dummy/config/initializers/mime_types.rb +0 -4
  176. data/test/dummy/config/initializers/session_store.rb +0 -3
  177. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  178. data/test/dummy/config/locales/en.yml +0 -23
  179. data/test/dummy/config/routes.rb +0 -5
  180. data/test/dummy/config/secrets.yml +0 -22
  181. data/test/dummy/db/migrate/20141117214323_create_users.rb +0 -10
  182. data/test/dummy/db/schema.rb +0 -91
  183. data/test/dummy/public/404.html +0 -67
  184. data/test/dummy/public/422.html +0 -67
  185. data/test/dummy/public/500.html +0 -66
  186. data/test/dummy/public/favicon.ico +0 -0
  187. data/test/factories/proclaim/comment.rb +0 -11
  188. data/test/factories/proclaim/image.rb +0 -6
  189. data/test/factories/proclaim/post.rb +0 -14
  190. data/test/factories/proclaim/subscription.rb +0 -14
  191. data/test/factories/user.rb +0 -6
  192. data/test/helpers/proclaim/comments_helper_test.rb +0 -6
  193. data/test/helpers/proclaim/posts_helper_test.rb +0 -6
  194. data/test/helpers/proclaim/subscriptions_helper_test.rb +0 -6
  195. data/test/integration/with_javascript/comment_test.rb +0 -391
  196. data/test/integration/with_javascript/post_form_test.rb +0 -225
  197. data/test/integration/with_javascript/post_show_test.rb +0 -47
  198. data/test/integration/with_javascript/post_subscription_test.rb +0 -302
  199. data/test/integration/without_javascript/blog_subscription_test.rb +0 -114
  200. data/test/integration/without_javascript/manage_subscriptions_test.rb +0 -37
  201. data/test/integration/without_javascript/post_test.rb +0 -234
  202. data/test/integration/without_javascript/subscription_email_test.rb +0 -95
  203. data/test/integration/without_javascript/unsubscribe_test.rb +0 -32
  204. data/test/mailers/previews/proclaim/subscription_mailer_preview.rb +0 -22
  205. data/test/mailers/proclaim/subscription_mailer_test.rb +0 -91
  206. data/test/models/proclaim/comment_test.rb +0 -41
  207. data/test/models/proclaim/image_test.rb +0 -70
  208. data/test/models/proclaim/post_test.rb +0 -193
  209. data/test/models/proclaim/subscription_test.rb +0 -77
  210. data/test/policies/application_policy_test.rb +0 -87
  211. data/test/policies/proclaim/comment_policy_test.rb +0 -71
  212. data/test/policies/proclaim/image_policy_test.rb +0 -83
  213. data/test/policies/proclaim/post_policy_test.rb +0 -98
  214. data/test/policies/proclaim/subscription_policy_test.rb +0 -103
  215. data/test/proclaim_test.rb +0 -7
  216. data/test/support/images/test.jpg +0 -0
  217. data/test/support/pages/posts/edit_page.rb +0 -5
  218. data/test/support/pages/posts/show_page.rb +0 -47
  219. data/test/support/wait_for_ajax.rb +0 -11
  220. data/test/test_helper.rb +0 -71
  221. data/test/unit/proclaim/new_comment_callback_test.rb +0 -62
  222. data/test/unit/proclaim/new_subscription_callback_test.rb +0 -62
  223. data/test/unit/proclaim/post_published_callback_test.rb +0 -74
  224. data/vendor/assets/images/link.png +0 -0
  225. data/vendor/assets/images/remove.png +0 -0
  226. data/vendor/assets/images/resize-bigger.png +0 -0
  227. data/vendor/assets/images/resize-smaller.png +0 -0
  228. data/vendor/assets/images/unlink.png +0 -0
  229. data/vendor/assets/javascripts/addons/medium-editor-insert-embeds.js +0 -197
  230. data/vendor/assets/javascripts/addons/medium-editor-insert-images.js +0 -572
  231. data/vendor/assets/javascripts/addons/medium-editor-insert-maps.js +0 -50
  232. data/vendor/assets/javascripts/addons/medium-editor-insert-plugin.js +0 -496
  233. data/vendor/assets/javascripts/addons/medium-editor-insert-tables.js +0 -132
  234. data/vendor/assets/javascripts/medium-editor-insert-plugin.all.js +0 -1415
  235. data/vendor/assets/stylesheets/medium-editor-insert-plugin-frontend.css.scss +0 -55
  236. data/vendor/assets/stylesheets/medium-editor-insert-plugin.css.scss +0 -277
@@ -1,77 +0,0 @@
1
- # == Schema Information
2
- #
3
- # Table name: proclaim_subscriptions
4
- #
5
- # id :integer not null, primary key
6
- # post_id :integer
7
- # email :string
8
- # created_at :datetime not null
9
- # updated_at :datetime not null
10
- #
11
-
12
- require 'test_helper'
13
-
14
- module Proclaim
15
- class SubscriptionTest < ActiveSupport::TestCase
16
- test "subscriptions should be unique" do
17
- FactoryGirl.create(:subscription, email: "foo@bar.com")
18
- subscription = FactoryGirl.build(:subscription, email: "foo@bar.com")
19
- refute subscription.save,
20
- "Blog subscriptions should have unique emails!"
21
-
22
- subscription = FactoryGirl.create(:post_subscription, email: "foo@bar.com")
23
- subscription = FactoryGirl.build(:post_subscription,
24
- post: subscription.post,
25
- email: subscription.email)
26
- refute subscription.save,
27
- "Post subscriptions should have unique emails!"
28
- end
29
-
30
- test "should require a name" do
31
- subscription = FactoryGirl.build(:subscription, name: nil)
32
- refute subscription.save, "Subscription should require a name!"
33
- end
34
-
35
- test "should not save without valid email address" do
36
- subscription = FactoryGirl.build(:subscription, email: nil)
37
- refute subscription.save,
38
- "Subscription should require an email address!"
39
-
40
- subscription = FactoryGirl.build(:subscription, email: "blah")
41
- refute subscription.save,
42
- "Subscription should require a valid email address!"
43
- end
44
-
45
- test "token should be able to identify subscriptions" do
46
- subscription1 = FactoryGirl.create(:subscription)
47
- subscription2 = FactoryGirl.create(:subscription)
48
-
49
- token1 = subscription1.token
50
- token2 = subscription2.token
51
-
52
- assert_equal subscription1, Subscription.from_token(token1)
53
- assert_equal subscription2, Subscription.from_token(token2)
54
- end
55
-
56
- test "an invalid token should raise a NotFound" do
57
- assert_raises ActiveRecord::RecordNotFound do
58
- Subscription.from_token("123456")
59
- end
60
- end
61
-
62
- test "should require valid post or none at all" do
63
- # Post 12345 doesn't exist
64
- subscription = FactoryGirl.build(:subscription, post_id: 12345)
65
- refute subscription.save,
66
- "Subscription should require a valid post!"
67
-
68
- subscription = FactoryGirl.build(:subscription,
69
- post: FactoryGirl.create(:published_post))
70
- assert subscription.save
71
-
72
- subscription = FactoryGirl.build(:subscription, post: nil)
73
- assert subscription.save,
74
- "Subscription shouldn't require a post!"
75
- end
76
- end
77
- end
@@ -1,87 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ApplicationPolicyTest < ActiveSupport::TestCase
4
- test "application index" do
5
- user = FactoryGirl.create(:user)
6
-
7
- # Verify that a user cannot visit the index by default
8
- policy = ApplicationPolicy.new(user, nil)
9
- refute policy.index?, "A user should be not able to visit the index by default"
10
-
11
- # Verify that a guest cannot visit the index by default
12
- policy = ApplicationPolicy.new(nil, nil)
13
- refute policy.index?, "A guest should not be able to visit the index by default"
14
- end
15
-
16
- test "application show" do
17
- user = FactoryGirl.create(:user)
18
-
19
- # Verify that a user cannot view an object by default
20
- policy = ApplicationPolicy.new(user, nil)
21
- refute policy.show?, "A user should be not able to view an object by default"
22
-
23
- # Verify that a guest cannot view an object by default
24
- policy = ApplicationPolicy.new(nil, nil)
25
- refute policy.show?, "A guest should not be able to view an object by default"
26
- end
27
-
28
- test "application create" do
29
- user = FactoryGirl.create(:user)
30
-
31
- # Verify that a user cannot create an object by default
32
- policy = ApplicationPolicy.new(user, nil)
33
- refute policy.create?, "A user should be not able to create an object by default"
34
-
35
- # Verify that a guest cannot create an object by default
36
- policy = ApplicationPolicy.new(nil, nil)
37
- refute policy.create?, "A guest should not be able to create an object by default"
38
- end
39
-
40
- test "application new" do
41
- user = FactoryGirl.create(:user)
42
-
43
- # Verify that a user cannot visit the new action by default
44
- policy = ApplicationPolicy.new(user, nil)
45
- refute policy.new?, "A user should be not able to visit the new action by default"
46
-
47
- # Verify that a guest cannot visit the new action by default
48
- policy = ApplicationPolicy.new(nil, nil)
49
- refute policy.new?, "A guest should not be able to visit the new action by default"
50
- end
51
-
52
- test "application update" do
53
- user = FactoryGirl.create(:user)
54
-
55
- # Verify that a user cannot update an object by default
56
- policy = ApplicationPolicy.new(user, nil)
57
- refute policy.update?, "A user should be not able to update an object by default"
58
-
59
- # Verify that a guest cannot update an object by default
60
- policy = ApplicationPolicy.new(nil, nil)
61
- refute policy.update?, "A guest should not be able to update an object by default"
62
- end
63
-
64
- test "application edit" do
65
- user = FactoryGirl.create(:user)
66
-
67
- # Verify that a user cannot visit the edit action by default
68
- policy = ApplicationPolicy.new(user, nil)
69
- refute policy.edit?, "A user should be not able to visit the edit action by default"
70
-
71
- # Verify that a guest cannot visit the edit action by default
72
- policy = ApplicationPolicy.new(nil, nil)
73
- refute policy.edit?, "A guest should not be able to visit the edit action by default"
74
- end
75
-
76
- test "application destroy" do
77
- user = FactoryGirl.create(:user)
78
-
79
- # Verify that a user cannot destroy an object by default
80
- policy = ApplicationPolicy.new(user, nil)
81
- refute policy.destroy?, "A user should be not able to destroy an object by default"
82
-
83
- # Verify that a guest cannot destroy an object by default
84
- policy = ApplicationPolicy.new(nil, nil)
85
- refute policy.destroy?, "A guest should not be able to destroy an object by default"
86
- end
87
- end
@@ -1,71 +0,0 @@
1
- require 'test_helper'
2
-
3
- class CommentPolicyTest < ActiveSupport::TestCase
4
- test "comment scope" do
5
- user = FactoryGirl.create(:user)
6
- comment1 = FactoryGirl.create(:comment)
7
- comment2 = FactoryGirl.create(:comment)
8
-
9
- # Verify that a user can view both comments
10
- comments = Pundit.policy_scope(user, Proclaim::Comment)
11
- assert_includes comments, comment1
12
- assert_includes comments, comment2
13
-
14
- # Verify that even without a user, both comments can still be viewed
15
- comments = Pundit.policy_scope(nil, Proclaim::Comment)
16
- assert_includes comments, comment1
17
- assert_includes comments, comment2
18
- end
19
-
20
- test "comment creation" do
21
- user = FactoryGirl.create(:user)
22
- publishedComment = FactoryGirl.build(:published_comment)
23
- unpublishedComment = FactoryGirl.build(:comment)
24
-
25
- # Verify that a user can create a comment on a published post
26
- policy = Proclaim::CommentPolicy.new(user, publishedComment)
27
- assert policy.create?,
28
- "A user should be able to create comments on published posts!"
29
-
30
- # Verify that a user can create a comment on an unpublished post
31
- policy = Proclaim::CommentPolicy.new(user, unpublishedComment)
32
- assert policy.create?,
33
- "A user should be able to create comments on unpublished posts!"
34
-
35
- # Verify that a guest can create a comment on a published post
36
- policy = Proclaim::CommentPolicy.new(nil, publishedComment)
37
- assert policy.create?,
38
- "A guest should be able to create comments on published posts!"
39
-
40
- # Verify that a guest cannot create a comment on an unpublished post
41
- policy = Proclaim::CommentPolicy.new(nil, unpublishedComment)
42
- refute policy.create?,
43
- "A guest should not be able to create comments on unpublished posts!"
44
- end
45
-
46
- test "comment update" do
47
- user = FactoryGirl.create(:user)
48
- comment = FactoryGirl.create(:comment)
49
-
50
- # Verify that a user can update a comment
51
- policy = Proclaim::CommentPolicy.new(user, comment)
52
- assert policy.update?, "A user should be able to update comments!"
53
-
54
- # Verify that a guest cannot update a comment
55
- policy = Proclaim::CommentPolicy.new(nil, comment)
56
- refute policy.update?, "A guest should not be able to update comments!"
57
- end
58
-
59
- test "comment destroy" do
60
- user = FactoryGirl.create(:user)
61
- comment = FactoryGirl.create(:comment)
62
-
63
- # Verify that a user can destroy a comment
64
- policy = Proclaim::CommentPolicy.new(user, comment)
65
- assert policy.destroy?, "A user should be able to destroy comments!"
66
-
67
- # Verify that a guest cannot destroy a comment
68
- policy = Proclaim::CommentPolicy.new(nil, comment)
69
- refute policy.destroy?, "A guest should not be able to destroy comments!"
70
- end
71
- end
@@ -1,83 +0,0 @@
1
- require 'test_helper'
2
-
3
- class ImagePolicyTest < ActiveSupport::TestCase
4
- teardown do
5
- image = Proclaim::Image.new
6
- FileUtils.rm_rf(File.join(Rails.public_path, image.image.cache_dir))
7
- FileUtils.rm_rf(File.join(Rails.public_path, image.image.store_dir))
8
- end
9
-
10
- test "image scope" do
11
- user = FactoryGirl.create(:user)
12
- image = FactoryGirl.create(:image)
13
-
14
- # Verify that a user can view the image
15
- images = Pundit.policy_scope(user, Proclaim::Image)
16
- assert_includes images, image
17
-
18
- # Verify that a guest cannot see any images
19
- images = Pundit.policy_scope(nil, Proclaim::Image)
20
- assert_empty images
21
- end
22
-
23
- test "image caching" do
24
- user = FactoryGirl.create(:user)
25
- image = FactoryGirl.build(:image)
26
-
27
- # Verify that a user can cache an image
28
- policy = Proclaim::ImagePolicy.new(user, image)
29
- assert policy.cache?, "A user should be able to cache images"
30
-
31
- # Verify that a guest cannot cache an image
32
- policy = Proclaim::ImagePolicy.new(nil, image)
33
- refute policy.cache?, "A guest should not be able to cache images"
34
- end
35
-
36
- test "image creation" do
37
- user = FactoryGirl.create(:user)
38
- image = FactoryGirl.build(:image)
39
-
40
- # Verify that a user can create an image
41
- policy = Proclaim::ImagePolicy.new(user, image)
42
- assert policy.create?, "A user should be able to create images"
43
-
44
- # Verify that a guest cannot create an image
45
- policy = Proclaim::ImagePolicy.new(nil, image)
46
- refute policy.create?, "A guest should not be able to create images"
47
- end
48
-
49
- test "image discard" do
50
- user = FactoryGirl.create(:user)
51
- cached_image = FactoryGirl.build(:image)
52
- saved_image = FactoryGirl.create(:image)
53
-
54
- # Verify that a user can discard a cached image
55
- policy = Proclaim::ImagePolicy.new(user, cached_image)
56
- assert policy.discard?, "A user should be able to discard a cached image"
57
-
58
- # Verify that a user can discard a saved image
59
- policy = Proclaim::ImagePolicy.new(user, saved_image)
60
- assert policy.discard?, "A user should be able to discard a saved image"
61
-
62
- # Verify that a guest cannot discard a cached image
63
- policy = Proclaim::ImagePolicy.new(nil, cached_image)
64
- refute policy.discard?, "A guest should not be able to discard a cached image"
65
-
66
- # Verify that a guest cannot discard a saved image
67
- policy = Proclaim::ImagePolicy.new(nil, saved_image)
68
- refute policy.discard?, "A guest should not be able to discard a saved image"
69
- end
70
-
71
- test "image destroy" do
72
- user = FactoryGirl.create(:user)
73
- image = FactoryGirl.create(:image)
74
-
75
- # Verify that a user can destroy an image
76
- policy = Proclaim::ImagePolicy.new(user, image)
77
- assert policy.destroy?, "A user should be able to destroy image"
78
-
79
- # Verify that a guest cannot destroy an image
80
- policy = Proclaim::ImagePolicy.new(nil, image)
81
- refute policy.destroy?, "A guest should not be able to destroy image"
82
- end
83
- end
@@ -1,98 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PostPolicyTest < ActiveSupport::TestCase
4
- test "post scope" do
5
- user = FactoryGirl.create(:user)
6
- post1 = FactoryGirl.create(:post)
7
- post2 = FactoryGirl.create(:published_post)
8
-
9
- # Verify that a user can see all posts
10
- posts = Pundit.policy_scope(user, Proclaim::Post)
11
- assert_includes posts, post1
12
- assert_includes posts, post2
13
-
14
- # Verify that guests can only see published posts
15
- posts = Pundit.policy_scope(nil, Proclaim::Post)
16
- assert_not_includes posts, post1
17
- assert_includes posts, post2
18
- end
19
-
20
- test "post index" do
21
- user = FactoryGirl.create(:user)
22
-
23
- # Verify that a user can visit the index
24
- policy = Proclaim::PostPolicy.new(user, Proclaim::Post)
25
- assert policy.index?, "A user should be able to visit the index"
26
-
27
- # Verify that a guest can also visit the index
28
- policy = Proclaim::PostPolicy.new(nil, Proclaim::Post)
29
- assert policy.index?, "A guest should be able to visit the index"
30
- end
31
-
32
- test "post create" do
33
- user = FactoryGirl.create(:user)
34
- post = FactoryGirl.create(:post)
35
-
36
- # Verify that a user can create posts
37
- policy = Proclaim::PostPolicy.new(user, post)
38
- assert policy.create?
39
-
40
- # Verify that guests can't create posts
41
- policy = Proclaim::PostPolicy.new(nil, post)
42
- refute policy.create?
43
- end
44
-
45
- test "post show" do
46
- user = FactoryGirl.create(:user)
47
- post1 = FactoryGirl.create(:post)
48
- post2 = FactoryGirl.create(:published_post)
49
-
50
- # Verify that a user can see both posts
51
- policy = Proclaim::PostPolicy.new(user, post1)
52
- assert policy.show?
53
- policy = Proclaim::PostPolicy.new(user, post2)
54
- assert policy.show?
55
-
56
- # Verify that a guest can only see published post
57
- policy = Proclaim::PostPolicy.new(nil, post1)
58
- refute policy.show?
59
- policy = Proclaim::PostPolicy.new(nil, post2)
60
- assert policy.show?
61
- end
62
-
63
- test "post update" do
64
- user = FactoryGirl.create(:user)
65
- post1 = FactoryGirl.create(:post)
66
- post2 = FactoryGirl.create(:published_post)
67
-
68
- # Verify that a user can update any post
69
- policy = Proclaim::PostPolicy.new(user, post1)
70
- assert policy.update?
71
- policy = Proclaim::PostPolicy.new(user, post2)
72
- assert policy.update?
73
-
74
- # Verify that guests can't update post
75
- policy = Proclaim::PostPolicy.new(nil, post1)
76
- refute policy.update?
77
- policy = Proclaim::PostPolicy.new(nil, post2)
78
- refute policy.update?
79
- end
80
-
81
- test "post destroy" do
82
- user = FactoryGirl.create(:user)
83
- post1 = FactoryGirl.create(:post)
84
- post2 = FactoryGirl.create(:published_post)
85
-
86
- # Verify that a user can destroy any post
87
- policy = Proclaim::PostPolicy.new(user, post1)
88
- assert policy.destroy?
89
- policy = Proclaim::PostPolicy.new(user, post2)
90
- assert policy.destroy?
91
-
92
- # Verify that guests can't destroy post
93
- policy = Proclaim::PostPolicy.new(nil, post1)
94
- refute policy.destroy?
95
- policy = Proclaim::PostPolicy.new(nil, post2)
96
- refute policy.destroy?
97
- end
98
- end
@@ -1,103 +0,0 @@
1
- require 'test_helper'
2
-
3
- class SubscriptionPolicyTest < ActiveSupport::TestCase
4
- test "subscription scope" do
5
- user = FactoryGirl.create(:user)
6
- subscription1 = FactoryGirl.create(:subscription)
7
- subscription2 = FactoryGirl.create(:subscription)
8
-
9
- # Verify that a user can view both subscriptions
10
- subscriptions = Pundit.policy_scope(user, Proclaim::Subscription)
11
- assert_includes subscriptions, subscription1
12
- assert_includes subscriptions, subscription2
13
-
14
- # Verify that without a user, no subscription can be seen
15
- subscriptions = Pundit.policy_scope(nil, Proclaim::Subscription)
16
- assert_empty subscriptions
17
- end
18
-
19
- test "subscription index" do
20
- user = FactoryGirl.create(:user)
21
-
22
- # Verify that a user can visit the index
23
- policy = Proclaim::SubscriptionPolicy.new(user, Proclaim::Subscription)
24
- assert policy.index?, "A user should be able to visit the index"
25
-
26
- # Verify that a guest cannot visit the index
27
- policy = Proclaim::SubscriptionPolicy.new(nil, Proclaim::Subscription)
28
- refute policy.index?, "A guest should not be able to visit the index"
29
- end
30
-
31
- test "subscription show" do
32
- user = FactoryGirl.create(:user)
33
- subscription = FactoryGirl.create(:subscription)
34
-
35
- # Verify that a user can view a subscription
36
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
37
- assert policy.show?, "A user should be able to view a subscription"
38
-
39
- # Verify that a guest can also view a subscription
40
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
41
- assert policy.show?, "A guest should be able to view a subscription"
42
- end
43
-
44
- test "subscription creation" do
45
- user = FactoryGirl.create(:user)
46
-
47
- # Verify that a user can create a subscription to the blog
48
- subscription = FactoryGirl.build(:subscription)
49
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
50
- assert policy.create?, "A user should be able to create subscriptions to the blog"
51
-
52
- # Verify that a user can create a subscription to an unpublished post
53
- subscription = FactoryGirl.build(:post_subscription)
54
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
55
- assert policy.create?, "A user should be able to create subscriptions to unpublished posts"
56
-
57
- # Verify that a user can create a subscription to a published post
58
- subscription = FactoryGirl.build(:published_post_subscription)
59
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
60
- assert policy.create?, "A user should be able to create subscriptions to published posts"
61
-
62
- # Verify that a guest can create a subscription to the blog
63
- subscription = FactoryGirl.build(:subscription)
64
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
65
- assert policy.create?, "A guest should be able to create subscriptions to the blog"
66
-
67
- # Verify that a guest cannot create a subscription to an unpublished post
68
- subscription = FactoryGirl.build(:post_subscription)
69
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
70
- refute policy.create?, "A guest should not be able to create subscriptions to unpublished posts"
71
-
72
- # Verify that a guest can create a subscription to a published post
73
- subscription = FactoryGirl.build(:published_post_subscription)
74
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
75
- assert policy.create?, "A guest should be able to create subscriptions to published posts"
76
- end
77
-
78
- test "subscription update" do
79
- user = FactoryGirl.create(:user)
80
- subscription = FactoryGirl.create(:subscription)
81
-
82
- # Verify that a even a user can't update a subscription
83
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
84
- refute policy.update?, "A user should not be able to update subscriptions!"
85
-
86
- # Verify that a guest cannot update a subscription
87
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
88
- refute policy.update?, "A guest should not be able to update subscription!"
89
- end
90
-
91
- test "subscription destroy" do
92
- user = FactoryGirl.create(:user)
93
- subscription = FactoryGirl.create(:subscription)
94
-
95
- # Verify that a user can destroy a subscription
96
- policy = Proclaim::SubscriptionPolicy.new(user, subscription)
97
- assert policy.destroy?, "A user should be able to destroy subscriptions!"
98
-
99
- # Verify that a guest can also destroy a subscription
100
- policy = Proclaim::SubscriptionPolicy.new(nil, subscription)
101
- assert policy.destroy?, "A guest should be able to destroy subscriptions!"
102
- end
103
- end