diff --git a/plugins/comment_paragraph/lib/ext/article.rb b/plugins/comment_paragraph/lib/ext/article.rb index 0ef3d23..874a521 100644 --- a/plugins/comment_paragraph/lib/ext/article.rb +++ b/plugins/comment_paragraph/lib/ext/article.rb @@ -22,22 +22,19 @@ class Article comment_paragraph_plugin_set_initial_value unless persisted? return unless comment_paragraph_plugin_activated? if body && (body_changed? || setting_changed?(:comment_paragraph_plugin_activate)) - parsed_paragraphs = [] updated = body_changed? ? body_change[1] : body - doc = Nokogiri::HTML(updated).css('body') - - doc.children.each do |paragraph| - if paragraph.to_html =~ /^
paragraph 1
paragraph 2
" + article.body = "paragraph 1
paragraph 1
paragraph 2
" + article.body = "paragraph 1
" article.comment_paragraph_plugin_activate = true article.save! - assert_match /data-macro="comment_paragraph_plugin\/allow_comment"/, article.body + assert_mark_paragraph article.body, 'p', 'paragraph 1' article.comment_paragraph_plugin_activate = false article.save! - assert_match /data-macro="comment_paragraph_plugin\/allow_comment"/, article.body + assert_mark_paragraph article.body, 'p', 'paragraph 1' end should 'parse html when activate comment paragraph' do @@ -56,7 +66,42 @@ class ArticleTest < ActiveSupport::TestCase assert_equal "paragraph 1
paragraph 2
", article.body article.comment_paragraph_plugin_activate = true article.save! - assert_match /data-macro="comment_paragraph_plugin\/allow_comment"/, article.body + + assert_mark_paragraph article.body, 'p', 'paragraph 1' + assert_mark_paragraph article.body, 'p', 'paragraph 2' + end + + should 'parse html when add new paragraph' do + article.body = "paragraph 1
" + article.comment_paragraph_plugin_activate = true + article.save! + assert_mark_paragraph article.body, 'p', 'paragraph 1' + + article.body += "paragraph 2
" + article.save! + assert_mark_paragraph article.body, 'p', 'paragraph 1' + assert_mark_paragraph article.body, 'p', 'paragraph 2' + end + + should 'keep already marked paragraph attributes when add new paragraph' do + article.body = "paragraph 1
" + article.comment_paragraph_plugin_activate = true + article.save! + assert_mark_paragraph article.body, 'p', 'paragraph 1' + uuid = Nokogiri::HTML(article.body).at('p span.paragraph_comment')['data-macro-paragraph_uuid'] + + article.body += "paragraph 2
" + article.save! + assert_mark_paragraph article.body, 'p', 'paragraph 1' + new_uuid = Nokogiri::HTML(article.body).at('p span.paragraph_comment')['data-macro-paragraph_uuid'] + assert_equal uuid, new_uuid + end + + should 'not parse empty element' do + article.body = '' + article.comment_paragraph_plugin_activate = true + article.save! + assert_equal '', article.body end should 'be enabled if plugin is enabled and article is a kind of TextArticle' do diff --git a/plugins/comment_paragraph/test/unit/tinymce_helper_test.rb b/plugins/comment_paragraph/test/unit/tinymce_helper_test.rb new file mode 100644 index 0000000..c711702 --- /dev/null +++ b/plugins/comment_paragraph/test/unit/tinymce_helper_test.rb @@ -0,0 +1,27 @@ +require_relative '../test_helper' + +class TinymceHelperTest < ActiveSupport::TestCase + + include TinymceHelper + + def setup + expects(:top_url).returns('/') + expects(:tinymce_language).returns('en') + @plugins = mock + @plugins.expects(:dispatch).returns([]).at_least_once + @environment = Environment.default + end + + attr_accessor :top_url, :environment + + should 'set keep_styles to false in tinymce options' do + environment.enable_plugin(CommentParagraphPlugin) + assert_match /"keep_styles":false/, tinymce_init_js + end + + should 'do not set keep_styles to false when plugin is not enabled' do + environment.disable_plugin(CommentParagraphPlugin) + assert_no_match /"keep_styles":false/, tinymce_init_js + end + +end -- libgit2 0.21.2