assertEqual(format_string("& &&&&& &&"), "& &&&&& &&"); $this->assertEqual(format_string("ANother & &&&&& Category"), "ANother & &&&&& Category"); $this->assertEqual(format_string("ANother & &&&&& Category", true), "ANother & &&&&& Category"); $this->assertEqual(format_string("Nick's Test Site & Other things", true), "Nick's Test Site & Other things"); // String entities $this->assertEqual(format_string("""), """); // Digital entities $this->assertEqual(format_string("&11234;"), "&11234;"); // Unicode entities $this->assertEqual(format_string("ᅻ"), "ᅻ"); } function test_s() { $this->assertEqual(s("This Breaks \" Strict"), "This Breaks " Strict"); $this->assertEqual(s("This Breaks \" Strict"), "This Breaks <a>" Strict</a>"); } function test_format_text_email() { $this->assertEqual("\n\nThis is a TEST", format_text_email('
This is a test
',FORMAT_HTML)); $this->assertEqual("\n\nThis is a TEST", format_text_email('This is a test
',FORMAT_HTML)); $this->assertEqual('& so is this', format_text_email('& so is this',FORMAT_HTML)); $tl = textlib_get_instance(); $this->assertEqual('Two bullets: '.$tl->code2utf8(8226).' *', format_text_email('Two bullets: • •',FORMAT_HTML)); $this->assertEqual($tl->code2utf8(0x7fd2).$tl->code2utf8(0x7fd2), format_text_email('習習',FORMAT_HTML)); } function test_highlight() { $this->assertEqual(highlight('good', 'This is good'), 'This is good'); $this->assertEqual(highlight('SpaN', 'span'), 'span'); $this->assertEqual(highlight('span', 'SpaN'), 'SpaN'); $this->assertEqual(highlight('span', 'span'), 'span'); $this->assertEqual(highlight('good is', 'He is good'), 'He is good'); $this->assertEqual(highlight('+good', 'This is good'), 'This is good'); $this->assertEqual(highlight('-good', 'This is good'), 'This is good'); $this->assertEqual(highlight('+good', 'This is goodness'), 'This is goodness'); $this->assertEqual(highlight('good', 'This is goodness'), 'This is goodness'); } function test_replace_ampersands() { $this->assertEqual(replace_ampersands_not_followed_by_entity("This & that "), "This & that "); $this->assertEqual(replace_ampersands_not_followed_by_entity("This   that "), "This   that "); } function test_strip_links() { $this->assertEqual(strip_links('this is a link'), 'this is a link'); } function test_wikify_links() { $this->assertEqual(wikify_links('this is a link'), 'this is a link [ http://someaddress.com/query ]'); } function test_fix_non_standard_entities() { $this->assertEqual(fix_non_standard_entities('£ä'), '£ä'); $this->assertEqual(fix_non_standard_entities('£ä'), '£ä'); } function test_compare_url() { $url1 = new moodle_url('index.php', array('var1' => 1, 'var2' => 2)); $url2 = new moodle_url('index2.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); $this->assertFalse($url1->compare($url2, URL_MATCH_BASE)); $this->assertFalse($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); $url2 = new moodle_url('index.php', array('var1' => 1, 'var3' => 3)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertFalse($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); $url2 = new moodle_url('index.php', array('var1' => 1, 'var2' => 2, 'var3' => 3)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertTrue($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertFalse($url1->compare($url2, URL_MATCH_EXACT)); $url2 = new moodle_url('index.php', array('var2' => 2, 'var1' => 1)); $this->assertTrue($url1->compare($url2, URL_MATCH_BASE)); $this->assertTrue($url1->compare($url2, URL_MATCH_PARAMS)); $this->assertTrue($url1->compare($url2, URL_MATCH_EXACT)); } function old_convert_urls_into_links(&$text) { /// Make lone URLs into links. eg http://moodle.com/ $text = eregi_replace("([[:space:]]|^|\(|\[)([[:alnum:]]+)://([^[:space:]]*)([[:alnum:]#?/&=])", "\\1\\2://\\3\\4", $text); /// eg www.moodle.com $text = eregi_replace("([[:space:]]|^|\(|\[)www\.([^[:space:]]*)([[:alnum:]#?/&=])", "\\1www.\\2\\3", $text); } function get_test_text(){ return <<text www.moodle.org</p> text' => 'URL:
text www.moodle.org</p> text',
//decimal url parameter
'URL: www.moodle.org?u=1.23' => 'URL: www.moodle.org?u=1.23',
//escaped space in url
'URL: www.moodle.org?u=test+param&' => 'URL: www.moodle.org?u=test+param&',
//odd characters in url param
'URL: www.moodle.org?param=:)' => 'URL: www.moodle.org?param=:)',
//multiple urls
'URL: http://moodle.org www.moodle.org'
=> 'URL: http://moodle.org www.moodle.org',
//containing anchor tags including a class parameter and a url to convert
'URL: http://moodle.org www.moodle.org http://moodle.org'
=> 'URL: http://moodle.org www.moodle.org http://moodle.org',
//subdomain
'http://subdomain.moodle.org - URL' => 'http://subdomain.moodle.org - URL',
//multiple subdomains
'http://subdomain.subdomain.moodle.org - URL' => 'http://subdomain.subdomain.moodle.org - URL',
//looks almost like a link but isnt
'This contains http, http:// and www but no actual links.'=>'This contains http, http:// and www but no actual links.',
//no link at all
'This is a story about moodle.coming to a cinema near you.'=>'This is a story about moodle.coming to a cinema near you.',
//URLs containing utf 8 characters
'http://Iñtërnâtiônàlizætiøn.com?ô=nëø'=>'http://Iñtërnâtiônàlizætiøn.com?ô=nëø',
'www.Iñtërnâtiônàlizætiøn.com?ô=nëø'=>'www.Iñtërnâtiônàlizætiøn.com?ô=nëø',
//text containing utf 8 characters outside of a url
'Iñtërnâtiônàlizætiøn is important to http://moodle.org'=>'Iñtërnâtiônàlizætiøn is important to http://moodle.org',
//too hard to identify without additional regexs
'moodle.org' => 'moodle.org',
//some text with no link between related html tags
'no link here' => 'no link here',
//some text with a link between related html tags
'a link here www.moodle.org' => 'a link here www.moodle.org',
//some text containing a link within unrelated tags
'
This is some text. www.moodle.com then some more text
' => '
This is some text. www.moodle.com then some more text
',
//check we aren't modifying img tags
'image
' => 'image
',
'image
' => 'image
',
//and another url within one tag
'