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("ᅻ"), "ᅻ"); // < and > signs $originalformatstringstriptags = $CFG->formatstringstriptags; $CFG->formatstringstriptags = false; $this->assertEqual(format_string('x < 1'), 'x < 1'); $this->assertEqual(format_string('x > 1'), 'x > 1'); $this->assertEqual(format_string('x < 1 and x > 0'), 'x < 1 and x > 0'); $CFG->formatstringstriptags = true; $this->assertEqual(format_string('x < 1'), 'x < 1'); $this->assertEqual(format_string('x > 1'), 'x > 1'); $this->assertEqual(format_string('x < 1 and x > 0'), 'x < 1 and x > 0'); $CFG->formatstringstriptags = $originalformatstringstriptags; } 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_moodle_url_round_trip() { $strurl = 'http://moodle.org/course/view.php?id=5'; $url = new moodle_url($strurl); $this->assertEqual($strurl, $url->out(false)); $strurl = 'http://moodle.org/user/index.php?contextid=53&sifirst=M&silast=D'; $url = new moodle_url($strurl); $this->assertEqual($strurl, $url->out(false)); } function test_moodle_url_round_trip_array_params() { $strurl = 'http://example.com/?a%5B1%5D=1&a%5B2%5D=2'; $url = new moodle_url($strurl); $this->assertEqual($strurl, $url->out(false)); $url = new moodle_url('http://example.com/?a[1]=1&a[2]=2'); $this->assertEqual($strurl, $url->out(false)); // For un-keyed array params, we expect 0..n keys to be returned $strurl = 'http://example.com/?a%5B0%5D=0&a%5B1%5D=1'; $url = new moodle_url('http://example.com/?a[]=0&a[]=1'); $this->assertEqual($strurl, $url->out(false)); } 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)); } public function test_html_to_text_simple() { $this->assertEqual("\n\n_Hello_ WORLD!", html_to_text('Hello world!
')); } public function test_html_to_text_image() { $this->assertEqual('[edit]', html_to_text('')); } public function test_html_to_text_image_with_backslash() { $this->assertEqual('[\edit]', html_to_text('')); } public function test_html_to_text_nowrap() { $long = "Here is a long string, more than 75 characters long, since by default html_to_text wraps text at 75 chars."; $this->assertEqual($long, html_to_text($long, 0)); } public function test_html_to_text_dont_screw_up_utf8() { $this->assertEqual("\n\nAll the WORLD’S a stage.", html_to_text('All the world’s a stage.
')); } public function test_html_to_text_trailing_whitespace() { $this->assertEqual('With trailing whitespace and some more text', html_to_text("With trailing whitespace \nand some more text", 0)); } public function test_html_to_text_0() { $this->assertIdentical('0', html_to_text('0')); } public function test_html_to_text_pre_parsing_problem() { $strorig = 'Consider the following function:void FillMeUp(char* in_string) {'.
'
int i = 0;
while (in_string[i] != \'\0\') {
in_string[i] = \'X\';
i++;
}
'.
'}
What would happen if a non-terminated string were input to this function?