radiant-comments-extension 0.0.6 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -1
- data/CHANGELOG +6 -0
- data/Gemfile +4 -0
- data/README.rdoc +9 -0
- data/Rakefile +0 -16
- data/TODO +0 -1
- data/app/controllers/admin/comments_controller.rb +1 -5
- data/app/controllers/comments_controller.rb +46 -4
- data/app/models/akismet_spam_filter.rb +1 -1
- data/app/models/comment.rb +7 -1
- data/app/models/mollom_spam_filter.rb +17 -7
- data/app/models/spam_filter.rb +1 -0
- data/app/views/admin/comments/_comment.html.haml +26 -0
- data/app/views/admin/comments/_form.html.haml +37 -0
- data/app/views/admin/comments/edit.html.haml +4 -0
- data/app/views/admin/comments/index.html.haml +57 -0
- data/app/views/admin/pages/{_comments.rhtml → _comments.html.haml} +0 -0
- data/app/views/admin/pages/_edit_comments_enabled.html.haml +7 -0
- data/app/views/admin/pages/_index_head_view_comments.html.haml +1 -0
- data/app/views/admin/pages/_index_view_comments.html.haml +7 -0
- data/comments_extension.rb +11 -27
- data/config/locales/en.yml +26 -0
- data/config/locales/nl.yml +26 -0
- data/config/routes.rb +16 -0
- data/db/migrate/002_create_snippets.rb +4 -4
- data/lib/comment_page_extensions.rb +15 -2
- data/lib/comment_tags.rb +55 -0
- data/lib/radiant-comments-extension.rb +2 -0
- data/lib/radiant-comments-extension/version.rb +3 -0
- data/public/stylesheets/admin/comments.css +21 -29
- data/radiant-comments-extension.gemspec +8 -117
- data/spec/controllers/page_postback_spec.rb +2 -1
- data/spec/models/comment_spec.rb +7 -23
- data/spec/models/mollom_spam_filter_spec.rb +5 -0
- metadata +30 -32
- data/VERSION +0 -1
- data/app/views/admin/comments/_comment.rhtml +0 -34
- data/app/views/admin/comments/_form.rhtml +0 -36
- data/app/views/admin/comments/edit.rhtml +0 -5
- data/app/views/admin/comments/index.rhtml +0 -55
- data/app/views/admin/pages/_edit_comments_enabled.rhtml +0 -8
- data/app/views/admin/pages/_index_head_view_comments.rhtml +0 -1
- data/app/views/admin/pages/_index_view_comments.rhtml +0 -11
- data/app/views/comments/_comment.rhtml +0 -1
- data/app/views/comments/_form.rhtml +0 -23
- data/app/views/comments/_new.rhtml +0 -5
- data/lib/mollom.rb +0 -246
@@ -0,0 +1,26 @@
|
|
1
|
+
en:
|
2
|
+
actions: Actions
|
3
|
+
allow_comments_on_page: Allow Comments on this page?
|
4
|
+
author: Author
|
5
|
+
approve_comment: Approve comment
|
6
|
+
are_you_sure_you_want_to_delete_this_comment: Are you sure you want to delete this comment?
|
7
|
+
click_to_toggle: Click to toggle complete text
|
8
|
+
currently_x_view_comments: Currently {{count}} - show reactions
|
9
|
+
comment: Comment
|
10
|
+
comments: Comments
|
11
|
+
comment_form: Comment Form
|
12
|
+
comment_states:
|
13
|
+
all: All
|
14
|
+
unapproved: Unapproved
|
15
|
+
approved: Approved
|
16
|
+
date_string: Date
|
17
|
+
delete_comment: Delete comment
|
18
|
+
delete_unapproved: Delete unapproved comments
|
19
|
+
download_csv: Download CSV
|
20
|
+
edit_comment: Edit comment
|
21
|
+
edit_comment_on: Edit comment on
|
22
|
+
email: E-mail
|
23
|
+
message_unsure: Please type the letters that you see to prove that you are not a spambot
|
24
|
+
unapprove_comment: Unapprove comment
|
25
|
+
url: URL
|
26
|
+
your_name: Your Name (as you'd like it to appear on this comment)
|
@@ -0,0 +1,26 @@
|
|
1
|
+
nl:
|
2
|
+
actions: Acties
|
3
|
+
allow_comments_on_page: Reacties toelaten?
|
4
|
+
author: Auteur
|
5
|
+
approve_comment: Reactie goedkeuren
|
6
|
+
are_you_sure_you_want_to_delete_this_comment: Ben je zeker dat je deze reactie wilt verwijderen?
|
7
|
+
click_to_toggle: Klik om de volledige reactie te tonen
|
8
|
+
currently_x_view_comments: Momenteel {{count}} - toon reacties
|
9
|
+
comment: Reactie
|
10
|
+
comments: Reacties
|
11
|
+
comment_form: Reactieformulier
|
12
|
+
comment_states:
|
13
|
+
all: Alle
|
14
|
+
unapproved: Te modereren
|
15
|
+
approved: Doorgelaten
|
16
|
+
date_string: Datum
|
17
|
+
delete_comment: Reactie verwijderen
|
18
|
+
delete_unapproved: Te modereren reacties verwijderen
|
19
|
+
download_csv: CSV downloaden
|
20
|
+
edit_comment: Wijzig reactie
|
21
|
+
edit_comment_on: Wijzig reactie op
|
22
|
+
email: E-mail
|
23
|
+
message_unsure: Vul onderstaande CAPTCHA in om te bewijzen dat je geen spam-bot bent
|
24
|
+
unapprove_comment: Reactie terug naar Te modereren
|
25
|
+
url: URL
|
26
|
+
your_name: Naam (die je bij deze reactie wilt tonen)
|
data/config/routes.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
ActionController::Routing::Routes.draw do |map|
|
2
|
+
map.namespace :admin do |admin|
|
3
|
+
admin.connect 'comments/:status', :controller => 'comments', :status => 'unapproved', :conditions => { :method => :get }, :requirements => { :status => /all|unapproved|approved/ }
|
4
|
+
admin.connect 'comments/:status.:format', :controller => 'comments', :status => /all|approved|unapproved/, :conditions => { :method => :get }
|
5
|
+
admin.resources :comments, :member => { :remove => :get, :approve => :put, :unapprove => :put }, :collection => {:destroy_unapproved => :delete}
|
6
|
+
admin.page_enable_comments '/pages/:page_id/comments/enable', :controller => 'comments', :action => 'enable', :conditions => {:method => :put}
|
7
|
+
end
|
8
|
+
map.with_options(:controller => 'admin/comments') do |comments|
|
9
|
+
comments.connect 'admin/pages/:page_id/comments/:status', :status => /all|approved|unapproved/, :conditions => { :method => :get }
|
10
|
+
comments.connect 'admin/pages/:page_id/comments/:status.:format', :status => /all|approved|unapproved/, :conditions => { :method => :get }
|
11
|
+
comments.admin_page_comments 'admin/pages/:page_id/comments/:action'
|
12
|
+
comments.admin_page_comment 'admin/pages/:page_id/comments/:id/:action'
|
13
|
+
end
|
14
|
+
# This needs to be last, otherwise it hoses the admin routes.
|
15
|
+
map.resources :comments, :name_prefix => "page_", :path_prefix => "*url", :controller => "comments"
|
16
|
+
end
|
@@ -77,20 +77,20 @@ CONTENT
|
|
77
77
|
<r:error><p style="color:red">Please correct the errors below.</p></r:error>
|
78
78
|
<p><label for="comment_author">Your Name</label><br />
|
79
79
|
<r:error on="author"><p style="color:red">Name <r:message /></p></r:error>
|
80
|
-
<r:text_field_tag name="author" id="author" class="required" /></p>
|
80
|
+
<p><r:text_field_tag name="author" id="author" class="required" /></p>
|
81
81
|
|
82
82
|
<p><label for="comment_author_email">Your Email Address</label> (required, but not displayed)<br />
|
83
83
|
<r:error on="author_email"><p style="color:red">Email <r:message /></p></r:error>
|
84
|
-
<r:text_field_tag name="author_email" class="required" /></p>
|
84
|
+
<p><r:text_field_tag name="author_email" class="required" /></p>
|
85
85
|
|
86
86
|
<p><label for="comment_author_url">Your Web Address</label> (optional)<br />
|
87
87
|
<r:error on="author_url"><p style="color:red">Web Address <r:message /></p></r:error>
|
88
|
-
<r:text_field_tag name="author_url" /></p>
|
88
|
+
<p><r:text_field_tag name="author_url" /></p>
|
89
89
|
|
90
90
|
<p><label for="comment_content">Your Comment</label><br />
|
91
91
|
<r:error on="content"><p style="color:red">Comment <r:message /></p></r:error>
|
92
92
|
<label for="comment_filter_id">Filter: <r:filter_box_tag name="filter_id" value="Textile" /></label><br />
|
93
|
-
<r:text_area_tag name="content" class="required" rows="9" cols="40" /></p>
|
93
|
+
<p><r:text_area_tag name="content" class="required" rows="9" cols="40" /></p>
|
94
94
|
|
95
95
|
<r:if_comments_simple_spam_filter_enabled>
|
96
96
|
<r:snippet name="comment_spam_block" />
|
@@ -6,6 +6,9 @@ module CommentPageExtensions
|
|
6
6
|
has_many :comments, :dependent => :delete_all, :order => "created_at ASC"
|
7
7
|
attr_accessor :last_comment
|
8
8
|
attr_accessor :selected_comment
|
9
|
+
attr_accessor :captcha_url
|
10
|
+
attr_accessor :comment_mollom_id
|
11
|
+
attr_accessor :posted_comment_is_spam
|
9
12
|
end
|
10
13
|
end
|
11
14
|
|
@@ -29,13 +32,23 @@ module CommentPageExtensions
|
|
29
32
|
absolute_url = "#{request.protocol}#{request.host_with_port}#{relative_url_for(url, request)}#comment-#{comment.id}"
|
30
33
|
response.redirect(absolute_url, 303)
|
31
34
|
return
|
32
|
-
|
33
|
-
self.
|
35
|
+
elsif Comment.spam_filter == MollomSpamFilter && MollomSpamFilter.mollom_response(comment).to_s == 'unsure'
|
36
|
+
self.last_comment = comment
|
37
|
+
captcha = MollomSpamFilter.mollom.image_captcha
|
38
|
+
comment.update_attribute(:mollom_id, captcha['session_id']) # because mollom does not guarantee the session_id will be kept when you pass one to mollom.image_captcha
|
39
|
+
self.captcha_url = captcha['url']
|
40
|
+
self.comment_mollom_id = captcha['session_id']
|
34
41
|
end
|
42
|
+
rescue Mollom::NoAvailableServers
|
43
|
+
logger.error "*** Mollom was unavailable (Mollom::NoAvailableServers)"
|
35
44
|
rescue ActiveRecord::RecordInvalid
|
36
45
|
self.last_comment = comment
|
46
|
+
rescue SpamFilter::Spam
|
47
|
+
self.posted_comment_is_spam = true
|
48
|
+
comment.destroy
|
37
49
|
end
|
38
50
|
end
|
39
51
|
process_without_comments(request, response)
|
40
52
|
end
|
53
|
+
|
41
54
|
end
|
data/lib/comment_tags.rb
CHANGED
@@ -206,6 +206,61 @@ module CommentTags
|
|
206
206
|
tag 'comments:error:message' do |tag|
|
207
207
|
tag.locals.error_message
|
208
208
|
end
|
209
|
+
|
210
|
+
desc %{
|
211
|
+
Renders the nested content if the posted comment was found unsure by Mollom.
|
212
|
+
}
|
213
|
+
tag "comments:if_unsure" do |tag|
|
214
|
+
tag.expand if tag.locals.page.captcha_url
|
215
|
+
end
|
216
|
+
desc %{
|
217
|
+
Renders the nested content unless the posted comment was found unsure by Mollom.
|
218
|
+
}
|
219
|
+
tag "comments:unless_unsure" do |tag|
|
220
|
+
tag.expand unless tag.locals.page.captcha_url
|
221
|
+
end
|
222
|
+
|
223
|
+
desc %{
|
224
|
+
Renders a CAPTCHA if the posted comment was found unsure by Mollom.
|
225
|
+
|
226
|
+
*Usage:*
|
227
|
+
<r:comments:mollom_captcha [label="hey.. are you even human?"] />
|
228
|
+
}
|
229
|
+
tag "comments:mollom_captcha" do |tag|
|
230
|
+
if tag.locals.page.captcha_url
|
231
|
+
url = tag.locals.page.captcha_url
|
232
|
+
text = tag.attr['label']||I18n.t('message_unsure')
|
233
|
+
return %{
|
234
|
+
<div id="captcha_form">
|
235
|
+
<form method="post" action="#{tag.locals.page.url}comments/solve_captcha">
|
236
|
+
<label for="captcha_answer">#{text}</label>
|
237
|
+
<img src="#{url}" alt="Mollom image CAPTCHA" /><br />
|
238
|
+
<input type="text" name="captcha_answer" />
|
239
|
+
<input type="hidden" name="comment_mollom_id" value="#{tag.locals.page.comment_mollom_id}"/>
|
240
|
+
<input type="submit" />
|
241
|
+
</form>
|
242
|
+
</div>
|
243
|
+
}
|
244
|
+
end
|
245
|
+
end
|
246
|
+
|
247
|
+
desc %{
|
248
|
+
Only expands if the posted comment is thought to be spam.
|
249
|
+
|
250
|
+
*Usage:*
|
251
|
+
<pre><code><r:comments:if_spam message="we don't like your spamming around here.." /></code></pre>
|
252
|
+
or use a double tag to send your own content:
|
253
|
+
<pre><code><r:comments:if_spam><p class="error">...</p></r:comments:if_spam></code></pre>
|
254
|
+
}
|
255
|
+
tag "comments:if_spam" do |tag|
|
256
|
+
if tag.locals.page.posted_comment_is_spam == true
|
257
|
+
if tag.double?
|
258
|
+
tag.expand
|
259
|
+
else
|
260
|
+
tag.attr["message"]
|
261
|
+
end
|
262
|
+
end
|
263
|
+
end
|
209
264
|
|
210
265
|
%w(text password hidden).each do |type|
|
211
266
|
desc %{Builds a #{type} form field for comments.}
|
@@ -1,41 +1,33 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
.comment-nav {
|
2
|
+
background: #ccc;
|
3
|
+
border-top: 1px solid #ccc;
|
4
|
+
border-bottom: 1px solid #ccc;
|
3
5
|
list-style: none;
|
4
|
-
margin:
|
5
|
-
padding:
|
6
|
-
|
6
|
+
margin: 0;
|
7
|
+
padding: 10px; }
|
8
|
+
.comment-nav li {
|
7
9
|
display: inline;
|
8
10
|
margin: 0 5px 0 0; }
|
9
|
-
|
11
|
+
.comment-nav a, .comment-nav span {
|
10
12
|
padding: 5px 5px 5px 25px;
|
11
13
|
background-position: 5px center;
|
12
14
|
background-repeat: no-repeat; }
|
13
|
-
|
15
|
+
.comment-nav a, .comment-nav a:visited {
|
14
16
|
color: black; }
|
15
|
-
|
16
|
-
border: 1px solid #
|
17
|
-
background-color: #
|
18
|
-
|
17
|
+
.comment-nav span {
|
18
|
+
border: 1px solid #e8e8e8;
|
19
|
+
background-color: #eee; }
|
20
|
+
.all span, .all a {
|
19
21
|
background-image: url(/images/admin/comments.png); }
|
20
|
-
|
22
|
+
.approved span, .approved a {
|
21
23
|
background-image: url(/images/admin/accept.png); }
|
22
|
-
|
24
|
+
.unapproved span, .unapproved a {
|
23
25
|
background-image: url(/images/admin/error.png); }
|
24
|
-
#comment-nav li.csv a, #comment-nav li.csv span {
|
25
|
-
background-image: url(/images/admin/table_save.png); }
|
26
26
|
|
27
|
-
|
28
|
-
|
27
|
+
#content .outset {
|
28
|
+
margin-bottom: 40px;
|
29
|
+
}
|
29
30
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
#content tr.comment td.content { color: #333; padding-right: 8px; width: 45%; font-size: 75%; }
|
34
|
-
#content tr.comment blockquote.short { display: inline; margin: 0 }
|
35
|
-
#content tr.comment blockquote.expanded { display:block; margin: 0; padding: 4px; border: 1px solid #bbc; background-color: #eef; }
|
36
|
-
#content tr.comment td.controls, #content tr.comment td.date { white-space: nowrap }
|
37
|
-
#content tr.comment.approved { background-color: #efe; }
|
38
|
-
#content tr.comment a { color: black; }
|
39
|
-
#content tr.comment a:visited { color: black; }
|
40
|
-
|
41
|
-
button.delete-unapproved { padding: 5px; font-size: 120%; }
|
31
|
+
.controls-column, .date-column, .author-column { white-space: nowrap }
|
32
|
+
.comment-unapproved { background-color: #ffe; }
|
33
|
+
.comment a, .comment a:visited { color: black; }
|
@@ -1,133 +1,24 @@
|
|
1
|
-
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
-
# -*- encoding: utf-8 -*-
|
1
|
+
require File.expand_path("../lib/radiant-comments-extension/version", __FILE__)
|
5
2
|
|
6
3
|
Gem::Specification.new do |s|
|
7
4
|
s.name = %q{radiant-comments-extension}
|
8
|
-
s.version =
|
5
|
+
s.version = RadiantCommentsExtension::VERSION
|
6
|
+
s.platform = Gem::Platform::RUBY
|
9
7
|
|
10
|
-
s.required_rubygems_version =
|
8
|
+
s.required_rubygems_version = ">= 1.3.6"
|
11
9
|
s.authors = ["Jim Gay", "Ryan Heneise", "Sean Cribbs", "John Muhl", "Sven Schwyn", "Gerrit Kaiser", "Stephen Lombardo", "Benny Degezelle", "Frank Louwers", "Michael Hale", "Nathaniel Talbott", "John Croisant", "Jon Leighton", "Witter Cheng", "Keith Bingman"]
|
12
|
-
s.date = %q{2010-
|
10
|
+
s.date = %q{2010-10-11}
|
11
|
+
s.summary = %q{Comments Extension for Radiant CMS}
|
13
12
|
s.description = %q{Adds blog-like comment functionality to Radiant.}
|
14
13
|
s.email = %q{jim@saturnflyer.com}
|
15
14
|
s.extra_rdoc_files = [
|
16
15
|
"README.rdoc",
|
17
16
|
"TODO"
|
18
17
|
]
|
19
|
-
s.files =
|
20
|
-
".gitignore",
|
21
|
-
"CHANGELOG",
|
22
|
-
"HELP_admin.markdown",
|
23
|
-
"HELP_designer.markdown",
|
24
|
-
"MIT-LICENSE",
|
25
|
-
"README.rdoc",
|
26
|
-
"Rakefile",
|
27
|
-
"TODO",
|
28
|
-
"VERSION",
|
29
|
-
"app/controllers/admin/comments_controller.rb",
|
30
|
-
"app/controllers/comments_controller.rb",
|
31
|
-
"app/helpers/admin/comments_helper.rb",
|
32
|
-
"app/models/akismet_spam_filter.rb",
|
33
|
-
"app/models/comment.rb",
|
34
|
-
"app/models/comment_mailer.rb",
|
35
|
-
"app/models/mollom_spam_filter.rb",
|
36
|
-
"app/models/simple_spam_filter.rb",
|
37
|
-
"app/models/spam_filter.rb",
|
38
|
-
"app/views/admin/comments/_comment.rhtml",
|
39
|
-
"app/views/admin/comments/_form.rhtml",
|
40
|
-
"app/views/admin/comments/edit.rhtml",
|
41
|
-
"app/views/admin/comments/index.rhtml",
|
42
|
-
"app/views/admin/pages/_comments.rhtml",
|
43
|
-
"app/views/admin/pages/_edit_comments_enabled.rhtml",
|
44
|
-
"app/views/admin/pages/_index_head_view_comments.rhtml",
|
45
|
-
"app/views/admin/pages/_index_view_comments.rhtml",
|
46
|
-
"app/views/comment_mailer/comment_notification.rhtml",
|
47
|
-
"app/views/comments/_comment.rhtml",
|
48
|
-
"app/views/comments/_form.rhtml",
|
49
|
-
"app/views/comments/_new.rhtml",
|
50
|
-
"autotest/discover.rb",
|
51
|
-
"comments_extension.rb",
|
52
|
-
"cucumber.yml",
|
53
|
-
"db/migrate/001_create_comments.rb",
|
54
|
-
"db/migrate/002_create_snippets.rb",
|
55
|
-
"db/migrate/003_change_filter_id_from_integer_to_string.rb",
|
56
|
-
"db/migrate/004_add_approval_columns.rb",
|
57
|
-
"db/migrate/005_add_mollomid_column.rb",
|
58
|
-
"db/migrate/006_move_config_to_migrations.rb",
|
59
|
-
"db/migrate/007_add_preference_for_simple_spamcheck.rb",
|
60
|
-
"features/support/env.rb",
|
61
|
-
"features/support/paths.rb",
|
62
|
-
"lib/akismet.rb",
|
63
|
-
"lib/comment_page_extensions.rb",
|
64
|
-
"lib/comment_tags.rb",
|
65
|
-
"lib/mollom.rb",
|
66
|
-
"lib/radiant-comments-extension.rb",
|
67
|
-
"lib/tasks/comments_extension_tasks.rake",
|
68
|
-
"public/images/admin/accept.png",
|
69
|
-
"public/images/admin/comment_edit.png",
|
70
|
-
"public/images/admin/comments.png",
|
71
|
-
"public/images/admin/comments_delete.png",
|
72
|
-
"public/images/admin/delete.png",
|
73
|
-
"public/images/admin/email.png",
|
74
|
-
"public/images/admin/error.png",
|
75
|
-
"public/images/admin/link.png",
|
76
|
-
"public/images/admin/page_white_edit.png",
|
77
|
-
"public/images/admin/table_save.png",
|
78
|
-
"public/images/admin/tick.png",
|
79
|
-
"public/stylesheets/admin/comments.css",
|
80
|
-
"radiant-comments-extension.gemspec",
|
81
|
-
"spec/controllers/admin/comments_controller_spec.rb",
|
82
|
-
"spec/controllers/admin/comments_routing_spec.rb",
|
83
|
-
"spec/controllers/page_postback_spec.rb",
|
84
|
-
"spec/datasets/comments_dataset.rb",
|
85
|
-
"spec/models/akismet_spam_filter_spec.rb",
|
86
|
-
"spec/models/comment_spec.rb",
|
87
|
-
"spec/models/comment_tags_spec.rb",
|
88
|
-
"spec/models/mollom_spam_filter_spec.rb",
|
89
|
-
"spec/models/simple_spam_filter_spec.rb",
|
90
|
-
"spec/models/spam_filter_spec.rb",
|
91
|
-
"spec/spec.opts",
|
92
|
-
"spec/spec_helper.rb",
|
93
|
-
"test/fixtures/users.yml",
|
94
|
-
"test/integration/comment_enabling_test.rb",
|
95
|
-
"test/test_helper.rb",
|
96
|
-
"test/unit/comment_test.rb"
|
97
|
-
]
|
18
|
+
s.files = `git ls-files`.split("\n")
|
98
19
|
s.homepage = %q{http://github.com/saturnflyer/radiant-comments-extension}
|
99
20
|
s.rdoc_options = ["--charset=UTF-8"]
|
100
21
|
s.require_paths = ["lib"]
|
101
|
-
s.
|
102
|
-
s.summary = %q{Comments Extension for Radiant CMS}
|
103
|
-
s.test_files = [
|
104
|
-
"spec/controllers/admin/comments_controller_spec.rb",
|
105
|
-
"spec/controllers/admin/comments_routing_spec.rb",
|
106
|
-
"spec/controllers/page_postback_spec.rb",
|
107
|
-
"spec/datasets/comments_dataset.rb",
|
108
|
-
"spec/models/akismet_spam_filter_spec.rb",
|
109
|
-
"spec/models/comment_spec.rb",
|
110
|
-
"spec/models/comment_tags_spec.rb",
|
111
|
-
"spec/models/mollom_spam_filter_spec.rb",
|
112
|
-
"spec/models/simple_spam_filter_spec.rb",
|
113
|
-
"spec/models/spam_filter_spec.rb",
|
114
|
-
"spec/spec_helper.rb",
|
115
|
-
"test/integration/comment_enabling_test.rb",
|
116
|
-
"test/test_helper.rb",
|
117
|
-
"test/unit/comment_test.rb"
|
118
|
-
]
|
119
|
-
|
120
|
-
if s.respond_to? :specification_version then
|
121
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
122
|
-
s.specification_version = 3
|
123
|
-
|
124
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
125
|
-
s.add_development_dependency(%q<radiant>, [">= 0"])
|
126
|
-
else
|
127
|
-
s.add_dependency(%q<radiant>, [">= 0"])
|
128
|
-
end
|
129
|
-
else
|
130
|
-
s.add_dependency(%q<radiant>, [">= 0"])
|
131
|
-
end
|
22
|
+
s.test_files = `git ls-files spec test`.split("\n")
|
132
23
|
end
|
133
24
|
|
@@ -4,7 +4,8 @@ describe SiteController, "Comments form posting to page" do
|
|
4
4
|
dataset :pages
|
5
5
|
|
6
6
|
before :each do
|
7
|
-
Radiant::Config['comments.post_to_page?'] = true
|
7
|
+
Radiant::Config['comments.post_to_page?'] = 'true'
|
8
|
+
Radiant::Config['comments.auto_approve'] = 'true'
|
8
9
|
end
|
9
10
|
|
10
11
|
def do_post(comment_params={})
|
data/spec/models/comment_spec.rb
CHANGED
@@ -33,29 +33,18 @@ describe "Comment" do
|
|
33
33
|
@comment.stub!(:using_logic_spam_filter?).and_return(false)
|
34
34
|
Radiant::Config['comments.filters_enabled'] = "true"
|
35
35
|
end
|
36
|
-
|
37
|
-
it "should
|
36
|
+
|
37
|
+
it "should remove script elements from the content" do
|
38
38
|
@comment.content = %{<script type="text/javascript">alert('hello')</script>}
|
39
|
-
@comment.save!
|
40
|
-
@comment.content_html.should == %{<p>alert('hello')</p>}
|
41
|
-
end
|
42
|
-
it "should sanitize the content" do
|
43
|
-
@comment.content = %{*hello* <script type="text/javascript">alert('hello')</script>}
|
44
39
|
@comment.save!
|
45
|
-
@comment.content_html.should_not
|
40
|
+
@comment.content_html.should_not =~ /script/
|
46
41
|
end
|
47
|
-
|
42
|
+
|
43
|
+
it "should pass content for content_html through filter when one is selected" do
|
48
44
|
@comment.filter_id = 'Textile'
|
49
|
-
@comment.content = %{*hello*
|
45
|
+
@comment.content = %{*hello*}
|
50
46
|
@comment.save!
|
51
|
-
@comment.content_html.should
|
52
|
-
end
|
53
|
-
it "should escape the content for content_html when a filter is not selected" do
|
54
|
-
Radiant::Config['comments.filters_enabled'] = 'true'
|
55
|
-
@comment.filter_id = ''
|
56
|
-
@comment.content = %{*hello* <script type="text/javascript">alert('hello')</script>}
|
57
|
-
@comment.save!
|
58
|
-
@comment.content_html.should_not include_text('script')
|
47
|
+
@comment.content_html.should == '<p><strong>hello</strong></p>'
|
59
48
|
end
|
60
49
|
|
61
50
|
it "should successfully create comment" do
|
@@ -63,11 +52,6 @@ describe "Comment" do
|
|
63
52
|
lambda{@comment.save!}.should_not raise_error
|
64
53
|
end
|
65
54
|
|
66
|
-
it "should set content_html with filter when saving" do
|
67
|
-
@comment.save
|
68
|
-
@comment.content_html.should eql("<p>That's all I have to say about that.</p>")
|
69
|
-
end
|
70
|
-
|
71
55
|
it "should validate that author is supplied" do
|
72
56
|
comment = create_comment(:author => nil)
|
73
57
|
comment.valid?.should be_false
|