test_rubypants.rb
上传用户:netsea168
上传日期:2022-07-22
资源大小:4652k
文件大小:6k
源码类别:

Ajax

开发平台:

Others

  1. require 'test/unit'
  2. require './rubypants'
  3. # Test EVERYTHING against SmartyPants.pl output!
  4. class TestRubyPants < Test::Unit::TestCase
  5.   def assert_rp_equal(str, orig, options=[2])
  6.     assert_equal orig, RubyPants.new(str, options).to_html
  7.   end
  8.   def assert_verbatim(str)
  9.     assert_rp_equal str, str
  10.   end
  11.   def test_verbatim
  12.     assert_verbatim "foo!"
  13.     assert_verbatim "<div>This is HTML</div>"
  14.     assert_verbatim "<div>This is HTML with <crap </div> tags>"
  15.     assert_verbatim <<EOF
  16. multiline
  17. <b>html</b>
  18. code
  19. EOF
  20.   end
  21.   def test_quotes
  22.     assert_rp_equal '"A first example"', '&#8220;A first example&#8221;'
  23.     assert_rp_equal '"A first "nested" example"',
  24.                     '&#8220;A first &#8220;nested&#8221; example&#8221;'
  25.     assert_rp_equal '".', '&#8221;.'
  26.     assert_rp_equal '"a', '&#8220;a'
  27.     assert_rp_equal "'.", '&#8217;.'
  28.     assert_rp_equal "'a", '&#8216;a'
  29.     assert_rp_equal %{<p>He said, "'Quoted' words in a larger quote."</p>},
  30.     "<p>He said, &#8220;&#8216;Quoted&#8217; words in a larger quote.&#8221;</p>"
  31.     assert_rp_equal %{"I like the 70's"}, '&#8220;I like the 70&#8217;s&#8221;'
  32.     assert_rp_equal %{"I like the '70s"}, '&#8220;I like the &#8217;70s&#8221;'
  33.     assert_rp_equal %{"I like the '70!"}, '&#8220;I like the &#8216;70!&#8221;'
  34.     assert_rp_equal 'pre"post', 'pre&#8221;post'
  35.     assert_rp_equal 'pre "post', 'pre &#8220;post'
  36.     assert_rp_equal 'pre&nbsp;"post', 'pre&nbsp;&#8220;post'
  37.     assert_rp_equal 'pre--"post', 'pre&#8211;&#8220;post'
  38.     assert_rp_equal 'pre--"!', 'pre&#8211;&#8221;!'
  39.     assert_rp_equal "pre'post", 'pre&#8217;post'
  40.     assert_rp_equal "pre 'post", 'pre &#8216;post'
  41.     assert_rp_equal "pre&nbsp;'post", 'pre&nbsp;&#8216;post'
  42.     assert_rp_equal "pre--'post", 'pre&#8211;&#8216;post'
  43.     assert_rp_equal "pre--'!", 'pre&#8211;&#8217;!'
  44.     assert_rp_equal "<b>'</b>", "<b>&#8216;</b>"
  45.     assert_rp_equal "foo<b>'</b>", "foo<b>&#8217;</b>"
  46.     assert_rp_equal '<b>"</b>', "<b>&#8220;</b>"
  47.     assert_rp_equal 'foo<b>"</b>', "foo<b>&#8221;</b>"
  48.   end
  49.   def test_dashes
  50.     assert_rp_equal "foo--bar", 'foo&#8212;bar', 1
  51.     assert_rp_equal "foo---bar", 'foo&#8212;-bar', 1
  52.     assert_rp_equal "foo----bar", 'foo&#8212;&#8212;bar', 1
  53.     assert_rp_equal "foo-----bar", 'foo&#8212;&#8212;-bar', 1
  54.     assert_rp_equal "--foo--bar--quux--",
  55.                     '&#8212;foo&#8212;bar&#8212;quux&#8212;', 1
  56.     assert_rp_equal "foo--bar", 'foo&#8211;bar', 2
  57.     assert_rp_equal "foo---bar", 'foo&#8212;bar', 2
  58.     assert_rp_equal "foo----bar", 'foo&#8212;-bar', 2
  59.     assert_rp_equal "foo-----bar", 'foo&#8212;&#8211;bar', 2
  60.     assert_rp_equal "--foo--bar--quux--",
  61.                     '&#8211;foo&#8211;bar&#8211;quux&#8211;', 2
  62.     assert_rp_equal "foo--bar", 'foo&#8212;bar', 3
  63.     assert_rp_equal "foo---bar", 'foo&#8211;bar', 3
  64.     assert_rp_equal "foo----bar", 'foo&#8211;-bar', 3
  65.     assert_rp_equal "foo-----bar", 'foo&#8211;&#8212;bar', 3
  66.     assert_rp_equal "--foo--bar--quux--",
  67.                     '&#8212;foo&#8212;bar&#8212;quux&#8212;', 3
  68.   end
  69.   def test_ellipses
  70.     assert_rp_equal "foo..bar", 'foo..bar'
  71.     assert_rp_equal "foo...bar", 'foo&#8230;bar'
  72.     assert_rp_equal "foo....bar", 'foo&#8230;.bar'
  73.     # Nasty ones
  74.     assert_rp_equal "foo. . ..bar", 'foo&#8230;.bar'
  75.     assert_rp_equal "foo. . ...bar", 'foo. . &#8230;bar'
  76.     assert_rp_equal "foo. . ....bar", 'foo. . &#8230;.bar'
  77.   end
  78.   def test_backticks
  79.     assert_rp_equal "pre``post", 'pre&#8220;post'
  80.     assert_rp_equal "pre ``post", 'pre &#8220;post'
  81.     assert_rp_equal "pre&nbsp;``post", 'pre&nbsp;&#8220;post'
  82.     assert_rp_equal "pre--``post", 'pre&#8211;&#8220;post'
  83.     assert_rp_equal "pre--``!", 'pre&#8211;&#8220;!'
  84.     assert_rp_equal "pre''post", 'pre&#8221;post'
  85.     assert_rp_equal "pre ''post", 'pre &#8221;post'
  86.     assert_rp_equal "pre&nbsp;''post", 'pre&nbsp;&#8221;post'
  87.     assert_rp_equal "pre--''post", 'pre&#8211;&#8221;post'
  88.     assert_rp_equal "pre--''!", 'pre&#8211;&#8221;!'
  89.   end
  90.   def test_single_backticks
  91.     o = [:oldschool, :allbackticks]
  92.     assert_rp_equal "`foo'", "&#8216;foo&#8217;", o
  93.     assert_rp_equal "pre`post", 'pre&#8216;post', o
  94.     assert_rp_equal "pre `post", 'pre &#8216;post', o
  95.     assert_rp_equal "pre&nbsp;`post", 'pre&nbsp;&#8216;post', o
  96.     assert_rp_equal "pre--`post", 'pre&#8211;&#8216;post', o
  97.     assert_rp_equal "pre--`!", 'pre&#8211;&#8216;!', o
  98.     assert_rp_equal "pre'post", 'pre&#8217;post', o
  99.     assert_rp_equal "pre 'post", 'pre &#8217;post', o
  100.     assert_rp_equal "pre&nbsp;'post", 'pre&nbsp;&#8217;post', o
  101.     assert_rp_equal "pre--'post", 'pre&#8211;&#8217;post', o
  102.     assert_rp_equal "pre--'!", 'pre&#8211;&#8217;!', o
  103.   end
  104.   def test_stupefy
  105.     o = [:stupefy]
  106.     assert_rp_equal "<p>He said, &#8220;&#8216;Quoted&#8217; words " +
  107.                     "in a larger quote.&#8221;</p>",
  108.                     %{<p>He said, "'Quoted' words in a larger quote."</p>}, o
  109.     assert_rp_equal "&#8211; &#8212; &#8216;&#8217; &#8220;&#8221; &#8230;",
  110.                     %{- -- '' "" ...}, o
  111.     assert_rp_equal %{- -- '' "" ...}, %{- -- '' "" ...}, o
  112.   end
  113.   def test_process_escapes
  114.     assert_rp_equal %q{foobar}, "foo\bar"
  115.     assert_rp_equal %q{foo\bar}, "foo&#92;bar"
  116.     assert_rp_equal %q{foo\\bar}, "foo&#92;\bar"
  117.     assert_rp_equal %q{foo...bar}, "foo&#46;..bar"
  118.     assert_rp_equal %q{foo...bar}, "foo&#46;&#46;&#46;bar"
  119.     assert_rp_equal %q{foo'bar}, "foo&#39;bar"
  120.     assert_rp_equal %q{foo"bar}, "foo&#34;bar"
  121.     assert_rp_equal %q{foo-bar}, "foo&#45;bar"
  122.     assert_rp_equal %q{foo`bar}, "foo&#96;bar"
  123.     assert_rp_equal %q{foo#bar}, "foo\#bar"
  124.     assert_rp_equal %q{foo*bar}, "foo\*bar"
  125.     assert_rp_equal %q{foo&bar}, "foo\&bar"
  126.   end
  127. end