for_redcloth.rb
76 lines
| 2.9 KiB
| text/x-ruby
|
RubyLexer
|
r4619 | require 'test/unit' | |
$:.unshift 'lib' | |||
require 'coderay' | |||
begin | |||
require 'rubygems' unless defined? Gem | |||
gem 'RedCloth', '>= 4.0.3' rescue nil | |||
require 'redcloth' | |||
rescue LoadError | |||
warn 'RedCloth not found - skipping for_redcloth tests.' | |||
end | |||
class BasicTest < Test::Unit::TestCase | |||
def test_for_redcloth | |||
require 'coderay/for_redcloth' | |||
assert_equal "<p><span lang=\"ruby\" class=\"CodeRay\">puts <span style=\"background-color:#fff0f0;color:#D20\"><span style=\"color:#710\">"</span><span style=\"\">Hello, World!</span><span style=\"color:#710\">"</span></span></span></p>", | |||
RedCloth.new('@[ruby]puts "Hello, World!"@').to_html | |||
assert_equal <<-BLOCKCODE.chomp, | |||
<div lang="ruby" class="CodeRay"> | |||
<div class="code"><pre>puts <span style="background-color:#fff0f0;color:#D20"><span style="color:#710">"</span><span style="">Hello, World!</span><span style="color:#710">"</span></span></pre></div> | |||
</div> | |||
BLOCKCODE | |||
RedCloth.new('bc[ruby]. puts "Hello, World!"').to_html | |||
end | |||
def test_for_redcloth_no_lang | |||
require 'coderay/for_redcloth' | |||
assert_equal "<p><code>puts \"Hello, World!\"</code></p>", | |||
RedCloth.new('@puts "Hello, World!"@').to_html | |||
assert_equal <<-BLOCKCODE.chomp, | |||
<pre><code>puts \"Hello, World!\"</code></pre> | |||
BLOCKCODE | |||
RedCloth.new('bc. puts "Hello, World!"').to_html | |||
end | |||
def test_for_redcloth_style | |||
require 'coderay/for_redcloth' | |||
assert_equal <<-BLOCKCODE.chomp, | |||
<pre style=\"color: red;\"><code style=\"color: red;\">puts \"Hello, World!\"</code></pre> | |||
BLOCKCODE | |||
RedCloth.new('bc{color: red}. puts "Hello, World!"').to_html | |||
end | |||
def test_for_redcloth_escapes | |||
require 'coderay/for_redcloth' | |||
assert_equal '<p><span lang="ruby" class="CodeRay">></span></p>', | |||
RedCloth.new('@[ruby]>@').to_html | |||
assert_equal <<-BLOCKCODE.chomp, | |||
<div lang="ruby" class="CodeRay"> | |||
<div class="code"><pre>&</pre></div> | |||
</div> | |||
BLOCKCODE | |||
RedCloth.new('bc[ruby]. &').to_html | |||
end | |||
def test_for_redcloth_escapes2 | |||
require 'coderay/for_redcloth' | |||
assert_equal "<p><span lang=\"c\" class=\"CodeRay\"><span style=\"color:#579\">#include</span> <span style=\"color:#B44;font-weight:bold\"><test.h></span></span></p>", | |||
RedCloth.new('@[c]#include <test.h>@').to_html | |||
end | |||
# See http://jgarber.lighthouseapp.com/projects/13054/tickets/124-code-markup-does-not-allow-brackets. | |||
def test_for_redcloth_false_positive | |||
require 'coderay/for_redcloth' | |||
assert_equal '<p><code>[project]_dff.skjd</code></p>', | |||
RedCloth.new('@[project]_dff.skjd@').to_html | |||
# false positive, but expected behavior / known issue | |||
assert_equal "<p><span lang=\"ruby\" class=\"CodeRay\">_dff.skjd</span></p>", | |||
RedCloth.new('@[ruby]_dff.skjd@').to_html | |||
assert_equal <<-BLOCKCODE.chomp, | |||
<pre><code>[project]_dff.skjd</code></pre> | |||
BLOCKCODE | |||
RedCloth.new('bc. [project]_dff.skjd').to_html | |||
end | |||
end if defined? RedCloth |