a6429f8c22
Completely removed the html5lib sanitizer. Fixed the string-handling to work in both Ruby 1.8.x and 1.9.2. There are still, inexplicably, two functional tests that fail. But the rest seems to work quite well.
52 lines
1.6 KiB
Ruby
Executable file
52 lines
1.6 KiB
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
require File.expand_path(File.dirname(__FILE__) + '/../../test_helper')
|
|
require 'chunks/nowiki'
|
|
|
|
class NoWikiTest < Test::Unit::TestCase
|
|
include ChunkMatch
|
|
|
|
def test_simple_nowiki
|
|
match(NoWiki, 'This sentence contains <nowiki>[[raw text]]</nowiki>. Do not touch!',
|
|
:plain_text => '[[raw text]]'
|
|
)
|
|
end
|
|
|
|
def test_include_nowiki
|
|
match(NoWiki, 'This sentence contains <nowiki>[[!include foo]]</nowiki>. Do not touch!',
|
|
:plain_text => '[[!include foo]]'
|
|
)
|
|
end
|
|
|
|
def test_markdown_nowiki
|
|
match(NoWiki, 'This sentence contains <nowiki>*raw text*</nowiki>. Do not touch!',
|
|
:plain_text => '*raw text*'
|
|
)
|
|
end
|
|
|
|
def test_sanitize_nowiki
|
|
match(NoWiki, 'This sentence contains <nowiki>[[test]]&<a href="a&b">shebang</a> <script>alert("xss!");</script> *foo*</nowiki>. Do not touch!',
|
|
:plain_text => "[[test]]&<a href='a&b'>shebang</a> <script>alert("xss!");</script> *foo*"
|
|
)
|
|
end
|
|
|
|
def test_sanitize_nowiki_ill_formed
|
|
match(NoWiki, "<nowiki><animateColor xlink:href='#foo'/></nowiki>",
|
|
:plain_text => "<animateColor xlink:href='#foo'/>"
|
|
)
|
|
end
|
|
|
|
def test_sanitize_nowiki_ill_formed_II
|
|
match(NoWiki, "<nowiki><animateColor xlink:href='#foo'/>\000</nowiki>",
|
|
:plain_text => %(<animateColor xlink:href='#foo'/>)
|
|
)
|
|
end
|
|
|
|
def test_sanitize_nowiki_bad_utf8
|
|
match(NoWiki, "<nowiki>\357elephant & \302ivory</nowiki>",
|
|
:plain_text => "".respond_to?(:force_encoding) ? "elephant &AMP; ivory" : "ephant &AMP; vory"
|
|
)
|
|
end
|
|
|
|
end
|