helpers actually render erb now

Oleg committed May 11, 2011
commit f8a26d6110330deba4fe14227af33c4bfa8bc062
Showing 3 changed files with 25 additions and 19 deletions
comfortable_mexican_sofa/view_methods.rb b/lib/comfortable_mexican_sofa/view_methods.rb +2 -2
@@ @@ -25,7 +25,7 @@ module ComfortableMexicanSofa::ViewMethods
def cms_snippet_content(snippet_slug, cms_site = nil)
return '' unless cms_site ||= (@cms_site || Cms::Site.find_by_hostname!(request.host.downcase))
return '' unless snippet = cms_site.snippets.find_by_slug(snippet_slug)
- ComfortableMexicanSofa::Tag.process_content(Cms::Page.new, snippet.content).html_safe
+ render :inline => ComfortableMexicanSofa::Tag.process_content(Cms::Page.new, snippet.content)
end
# Content of a page block. This is how you get content from page:field
@@ @@ -35,7 +35,7 @@ module ComfortableMexicanSofa::ViewMethods
def cms_page_content(block_label, page = nil)
return '' unless page ||= @cms_page
return '' unless block = page.blocks.find_by_label(block_label)
- ComfortableMexicanSofa::Tag.process_content(page, block.content).html_safe
+ render :inline => ComfortableMexicanSofa::Tag.process_content(page, block.content)
end
end
test/unit/fixtures_test.rb +1 -1
@@ @@ -1,6 +1,6 @@
require File.expand_path('../test_helper', File.dirname(__FILE__))
- class ViewMethodsTest < ActiveSupport::TestCase
+ class FixturesTest < ActiveSupport::TestCase
def setup
@site = cms_sites(:default)
test/unit/view_methods_test.rb +22 -16
@@ @@ -2,32 +2,38 @@ require File.expand_path('../test_helper', File.dirname(__FILE__))
class ViewMethodsTest < ActiveSupport::TestCase
- include ComfortableMexicanSofa::ViewMethods
+ class HelpersTestController < ActionController::Base
+ helper { def hello; 'hello' end }
+ def test_cms_snippet_content
+ render :inline => '<%= cms_snippet_content(:default) %>'
+ end
+ def test_cms_page_content
+ @cms_page = Cms::Page.root
+ render :inline => '<%= cms_page_content(:default_field_text) %>'
+ end
+ end
+
+ # Simulating a call and getting resulting output
+ def action_result(action)
+ HelpersTestController.action(action).call(ActionController::TestRequest.new.env).last.body
+ end
def test_cms_snippet_content
- assert_equal 'default_snippet_content', cms_snippet_content('default', cms_sites(:default))
- assert_equal '', cms_snippet_content('not_found', cms_sites(:default))
+ assert_equal 'default_snippet_content', action_result('test_cms_snippet_content')
end
- def test_cms_snippet_cotnent_with_tags
- snippet = cms_snippets(:default)
- snippet.update_attribute(:content, 'content {{cms:helper:test}}')
- assert_equal 'content <%= test() %>', cms_snippet_content(:default, cms_sites(:default))
+ def test_cms_snippet_content_with_tags
+ cms_snippets(:default).update_attribute(:content, '{{cms:helper:hello}}')
+ assert_equal 'hello', action_result('test_cms_snippet_content')
end
def test_cms_page_content
- assert_equal 'default_field_text_content', cms_page_content('default_field_text', cms_pages(:default))
- assert_equal '', cms_page_content('default_field_text')
- @cms_page = cms_pages(:default)
- assert_equal 'default_field_text_content', cms_page_content('default_field_text')
- assert_equal '', cms_page_content('not_found')
- @cms_page = nil
+ assert_equal 'default_field_text_content', action_result('test_cms_page_content')
end
def test_cms_page_content_with_tags
- block = cms_blocks(:default_field_text)
- block.update_attribute(:content, 'content {{cms:helper:test}}')
- assert_equal 'content <%= test() %>', cms_page_content(:default_field_text, cms_pages(:default))
+ cms_blocks(:default_field_text).update_attribute(:content, '{{cms:helper:hello}}')
+ assert_equal 'hello', action_result('test_cms_page_content')
end
end
\ No newline at end of file