Sha256: b891bb9f4b3f0b95a8ad3d04f03a5cebbc409d453f6b42405ae11c52640b3aea

Contents?: true

Size: 1.84 KB

Versions: 3

Compression:

Stored size: 1.84 KB

Contents

require_relative '../../../test_helper'

class ContentTagsHelperTest < ActiveSupport::TestCase

  def test_init
    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "helper_method")
    assert_equal "helper_method", tag.method_name
    assert_equal [], tag.params
  end

  def test_init_with_params
    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "helper_method, param, key: val")
    assert_equal "helper_method", tag.method_name
    assert_equal ["param", {"key" => "val"}], tag.params
  end

  def test_init_without_method_name
    message = "Missing method name for helper tag"
    assert_exception_raised ComfortableMexicanSofa::Content::Tag::Error, message do
      ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "")
    end
  end

  def test_content
    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "method_name, param, key: val")
    assert_equal "<%= method_name(\"param\",{\"key\"=>\"val\"}) %>", tag.content
  end

  def test_render
    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "method_name, param, key: val")
    assert_equal "<%= method_name(\"param\",{\"key\"=>\"val\"}) %>", tag.render
  end

  def test_render_with_whitelist
    ComfortableMexicanSofa.config.allowed_helpers = [:tester, :eval]
    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "tester")
    assert_equal "<%= tester() %>", tag.render

    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "eval")
    assert_equal "<%= eval() %>", tag.render

    tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, "not_whitelisted")
    assert_nil tag.render
  end

  def test_render_with_blacklist
    ComfortableMexicanSofa::Content::Tag::Helper::BLACKLIST.each do |method|
      tag = ComfortableMexicanSofa::Content::Tag::Helper.new(@page, method)
      assert_nil tag.render
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
comfortable_mexican_sofa-2.0.2 test/lib/content/tags/helper_test.rb
comfortable_mexican_sofa-2.0.1 test/lib/content/tags/helper_test.rb
comfortable_mexican_sofa-2.0.0 test/lib/content/tags/helper_test.rb