Sha256: 429aa263235be6ded3cbd9ba5fd688cf4c70ad0b3d8b91f95923fd8098976bb3

Contents?: true

Size: 1.71 KB

Versions: 28

Compression:

Stored size: 1.71 KB

Contents

require 'test_helper'
require 'tempfile'

class RedcarpetBinTest < Redcarpet::TestCase
  def setup
    @fixture_file = Tempfile.new('bin')
    @fixture_path = @fixture_file.path

    @fixture_file.write "A ==simple== fixture file -- with " \
                        "a [link](https://github.com)."
    @fixture_file.rewind
  end

  def teardown
    @fixture_file.unlink
  end

  def test_vanilla_bin
    run_bin(@fixture_path)

    expected = "<p>A ==simple== fixture file -- with " \
               "a <a href=\"https://github.com\">link</a>.</p>\n"

    assert_equal expected, @output
  end

  def test_enabling_a_parse_option
    run_bin("--parse", "highlight", @fixture_path)

    assert_output "<mark>"
    refute_output "=="
  end

  def test_enabling_a_render_option
    run_bin("--render", "no-links", @fixture_path)

    assert_output "[link]"
    refute_output "</a>"
  end

  def test_enabling_smarty_pants
    run_bin("--smarty", @fixture_path)

    assert_output "&ndash"
    refute_output "--"
  end

  def test_version_option
    run_bin("--version")
    assert_output "Redcarpet #{Redcarpet::VERSION}"
  end

  def test_legacy_option_parsing
    run_bin("--parse-highlight", "--render-no-links", @fixture_path)

    assert_output "<mark>"
    refute_output "=="

    assert_output "[link]"
    refute_output "</a>"
  end

  private

  def run_bin(*args)
    bin_path = File.expand_path('../../bin/redcarpet', __FILE__)
    ruby = "ruby " if RUBY_PLATFORM =~ /mswin|mingw/
    IO.popen("#{ruby}#{bin_path} #{args.join(" ")}") do |stream|
      @output = stream.read
    end
  end

  def assert_output(pattern)
    assert_match pattern, @output
  end

  def refute_output(pattern)
    refute_match Regexp.new(pattern), @output
  end
end

Version data entries

28 entries across 24 versions & 6 rubygems

Version Path
files.com-1.0.55 docs/vendor/bundle/ruby/2.5.0/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.13 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.12.1 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.11 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.9 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.8 vendor/bundle/ruby/2.5.0/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.8 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.8 vendor/bundle/gems/tdiary-5.0.7/vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.7 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.6 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.5 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.5 vendor/bundle/gems/tdiary-5.0.4/vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.2.0/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
etude_for_ruby-0.1.4 vendor/bundle/ruby/2.4.0/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
tdiary-5.0.4 vendor/bundle/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
mdg-1.0.1 vendor/bundle/ruby/2.3.0/gems/redcarpet-3.4.0/test/redcarpet_bin_test.rb
redcarpet-3.4.0 test/redcarpet_bin_test.rb
redcarpet_yt-0.1.0 test/redcarpet_bin_test.rb
redcarpet_yt-0.0.10 test/redcarpet_bin_test.rb
redcarpet_yt-0.0.9 test/redcarpet_bin_test.rb