diff --git a/test/test_tags.rb b/test/test_tags.rb index 9fbd9e39..931c3830 100644 --- a/test/test_tags.rb +++ b/test/test_tags.rb @@ -7,7 +7,7 @@ class TestTags < Test::Unit::TestCase def create_post(content, override = {}, converter_class = Jekyll::Converters::Markdown) stub(Jekyll).configuration do site_configuration({ - "highlighter" => "pygments" + "highlighter" => "rouge" }.merge(override)) end site = Site.new(Jekyll.configuration) @@ -136,63 +136,65 @@ CONTENT end end - context "post content has highlight tag" do - setup do - fill_post("test") + context "with the pygments highlighter" do + context "post content has highlight tag" do + setup do + fill_post("test", {'highlighter' => 'pygments'}) + end + + should "not cause a markdown error" do + assert_no_match /markdown\-html\-error/, @result + end + + should "render markdown with pygments" do + assert_match %{
test
}, @result + end + + should "render markdown with pygments with line numbers" do + assert_match %{
1 test
}, @result + end end - should "not cause a markdown error" do - assert_no_match /markdown\-html\-error/, @result + context "post content has highlight with file reference" do + setup do + fill_post("./jekyll.gemspec", {'highlighter' => 'pygments'}) + end + + should "not embed the file" do + assert_match %{
./jekyll.gemspec
}, @result + end end - should "render markdown with pygments" do - assert_match %{
test
}, @result + context "post content has highlight tag with UTF character" do + setup do + fill_post("Æ", {'highlighter' => 'pygments'}) + end + + should "render markdown with pygments line handling" do + assert_match %{
Æ
}, @result + end end - should "render markdown with pygments with line numbers" do - assert_match %{
1 test
}, @result - end - end - - context "post content has highlight with file reference" do - setup do - fill_post("./jekyll.gemspec") - end - - should "not embed the file" do - assert_match %{
./jekyll.gemspec
}, @result - end - end - - context "post content has highlight tag with UTF character" do - setup do - fill_post("Æ") - end - - should "render markdown with pygments line handling" do - assert_match %{
Æ
}, @result - end - end - - context "post content has highlight tag with preceding spaces & lines" do - setup do - fill_post <<-EOS + context "post content has highlight tag with preceding spaces & lines" do + setup do + code = <<-EOS [,1] [,2] [1,] FALSE TRUE [2,] FALSE TRUE EOS + fill_post(code, {'highlighter' => 'pygments'}) + end + + should "only strip the preceding newlines" do + assert_match %{
     [,1] [,2]}, @result
+      end
     end
 
-    should "only strip the preceding newlines" do
-      assert_match %{
     [,1] [,2]}, @result
-    end
-  end
-
-  context "post content has highlight tag with preceding spaces & lines in several places" do
-    setup do
-      fill_post <<-EOS
+    context "post content has highlight tag with preceding spaces & lines in several places" do
+      setup do
+        code = <<-EOS
 
 
      [,1] [,2]
@@ -203,34 +205,133 @@ EOS
 
 
 EOS
+        fill_post(code, {'highlighter' => 'pygments'})
+      end
+
+      should "only strip the newlines which precede and succeed the entire block" do
+        assert_match "
     [,1] [,2]\n\n\n[1,] FALSE TRUE\n[2,] FALSE TRUE
", @result + end end - should "only strip the newlines which precede and succeed the entire block" do - assert_match "
     [,1] [,2]\n\n\n[1,] FALSE TRUE\n[2,] FALSE TRUE
", @result - end - end + context "post content has highlight tag with preceding spaces & Windows-style newlines" do + setup do + fill_post "\r\n\r\n\r\n [,1] [,2]", {'highlighter' => 'pygments'} + end - context "post content has highlight tag with preceding spaces & Windows-style newlines" do - setup do - fill_post "\r\n\r\n\r\n [,1] [,2]" + should "only strip the preceding newlines" do + assert_match %{
     [,1] [,2]}, @result
+      end
     end
 
-    should "only strip the preceding newlines" do
-      assert_match %{
     [,1] [,2]}, @result
-    end
-  end
-
-  context "post content has highlight tag with only preceding spaces" do
-    setup do
-      fill_post <<-EOS
+    context "post content has highlight tag with only preceding spaces" do
+      setup do
+        code = <<-EOS
      [,1] [,2]
 [1,] FALSE TRUE
 [2,] FALSE TRUE
 EOS
+        fill_post(code, {'highlighter' => 'pygments'})
+      end
+
+      should "only strip the preceding newlines" do
+        assert_match %{
     [,1] [,2]}, @result
+      end
+    end
+  end
+
+  context "with the rouge highlighter" do
+    context "post content has highlight tag" do
+      setup do
+        fill_post("test")
+      end
+
+      should "render markdown with rouge" do
+        assert_match %{
test
}, @result + end + + should "render markdown with rouge with line numbers" do + assert_match %{
1
test\n
}, @result + end end - should "only strip the preceding newlines" do - assert_match %{
     [,1] [,2]}, @result
+    context "post content has highlight with file reference" do
+      setup do
+        fill_post("./jekyll.gemspec")
+      end
+
+      should "not embed the file" do
+        assert_match %{
./jekyll.gemspec
}, @result + end + end + + context "post content has highlight tag with UTF character" do + setup do + fill_post("Æ") + end + + should "render markdown with pygments line handling" do + assert_match %{
Æ
}, @result + end + end + + context "post content has highlight tag with preceding spaces & lines" do + setup do + fill_post <<-EOS + + + [,1] [,2] +[1,] FALSE TRUE +[2,] FALSE TRUE +EOS + end + + should "only strip the preceding newlines" do + assert_match %{
     [,1] [,2]}, @result
+      end
+    end
+
+    context "post content has highlight tag with preceding spaces & lines in several places" do
+      setup do
+        fill_post <<-EOS
+
+
+     [,1] [,2]
+
+
+[1,] FALSE TRUE
+[2,] FALSE TRUE
+
+
+EOS
+      end
+
+      should "only strip the newlines which precede and succeed the entire block" do
+        assert_match "
     [,1] [,2]\n\n\n[1,] FALSE TRUE\n[2,] FALSE TRUE
", @result + end + end + + context "post content has highlight tag with preceding spaces & Windows-style newlines" do + setup do + fill_post "\r\n\r\n\r\n [,1] [,2]" + end + + should "only strip the preceding newlines" do + assert_match %{
     [,1] [,2]}, @result
+      end
+    end
+
+    context "post content has highlight tag with only preceding spaces" do
+      setup do
+        fill_post <<-EOS
+     [,1] [,2]
+[1,] FALSE TRUE
+[2,] FALSE TRUE
+EOS
+      end
+
+      should "only strip the preceding newlines" do
+        assert_match %{
     [,1] [,2]}, @result
+      end
     end
   end