#!/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 &AMP; ivory" : "ephant &AMP; 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