#!/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 [[raw text]]. Do not touch!',
:plain_text => '[[raw text]]'
)
end
def test_include_nowiki
match(NoWiki, 'This sentence contains [[!include foo]]. Do not touch!',
:plain_text => '[[!include foo]]'
)
end
def test_markdown_nowiki
match(NoWiki, 'This sentence contains *raw text*. Do not touch!',
:plain_text => '*raw text*'
)
end
def test_sanitize_nowiki
match(NoWiki, 'This sentence contains [[test]]&shebang *foo*. Do not touch!',
:plain_text => "[[test]]&shebang <script>alert(\"xss!\");</script> *foo*"
)
end
# Here, the input is not namespace-well-formed, but the output is.
# I think that's OK.
def test_sanitize_nowiki_ill_formed
match(NoWiki, "",
:plain_text => ''
)
end
def test_sanitize_nowiki_ill_formed_II
match(NoWiki, "\000",
:plain_text => ''
)
end
def test_sanitize_nowiki_ill_formed_III
match(NoWiki, "\000",
:plain_text => ''
)
end
def test_sanitize_nowiki_bad_utf8
match(NoWiki, "\357elephant & \302ivory",
:plain_text => "".respond_to?(:force_encoding) ? "elephant & ivory" : "ephant & vory"
)
end
def test_sanitize_empty_nowiki
match(NoWiki, "",
:plain_text => ''
)
end
def test_sanitize_blank_nowiki
match(NoWiki, "\n",
:plain_text => "\n"
)
end
end