. /** * These tests rely on the rsstest.xml file on download.moodle.org, * from eloys listing: * rsstest.xml: One valid rss feed. * md5: 8fd047914863bf9b3a4b1514ec51c32c * size: 32188 * * If networking/proxy configuration is wrong these tests will fail.. * * @package core * @category phpunit * @copyright © 2006 The Open University * @author T.J.Hunt@open.ac.uk * @license http://www.gnu.org/copyleft/gpl.html GNU Public License */ defined('MOODLE_INTERNAL') || die(); class web_testcase extends basic_testcase { function test_format_string() { global $CFG; // Ampersands $this->assertEquals(format_string("& &&&&& &&"), "& &&&&& &&"); $this->assertEquals(format_string("ANother & &&&&& Category"), "ANother & &&&&& Category"); $this->assertEquals(format_string("ANother & &&&&& Category", true), "ANother & &&&&& Category"); $this->assertEquals(format_string("Nick's Test Site & Other things", true), "Nick's Test Site & Other things"); // String entities $this->assertEquals(format_string("""), """); // Digital entities $this->assertEquals(format_string("&11234;"), "&11234;"); // Unicode entities $this->assertEquals(format_string("ᅻ"), "ᅻ"); // < and > signs $originalformatstringstriptags = $CFG->formatstringstriptags; $CFG->formatstringstriptags = false; $this->assertEquals(format_string('x < 1'), 'x < 1'); $this->assertEquals(format_string('x > 1'), 'x > 1'); $this->assertEquals(format_string('x < 1 and x > 0'), 'x < 1 and x > 0'); $CFG->formatstringstriptags = true; $this->assertEquals(format_string('x < 1'), 'x < 1'); $this->assertEquals(format_string('x > 1'), 'x > 1'); $this->assertEquals(format_string('x < 1 and x > 0'), 'x < 1 and x > 0'); $CFG->formatstringstriptags = $originalformatstringstriptags; } function test_s() { $this->assertEquals(s("This Breaks \" Strict"), "This Breaks " Strict"); $this->assertEquals(s("This Breaks \" Strict"), "This Breaks <a>" Strict</a>"); } function test_format_text_email() { $this->assertEquals("This is a TEST", format_text_email('
This is a test
',FORMAT_HTML)); $this->assertEquals("This is a TEST", format_text_email('This is a test
',FORMAT_HTML)); $this->assertEquals('& so is this', format_text_email('& so is this',FORMAT_HTML)); $this->assertEquals('Two bullets: '.textlib::code2utf8(8226).' *', format_text_email('Two bullets: • •',FORMAT_HTML)); $this->assertEquals(textlib::code2utf8(0x7fd2).textlib::code2utf8(0x7fd2), format_text_email('習習',FORMAT_HTML)); } function test_highlight() { $this->assertEquals(highlight('good', 'This is good'), 'This is good'); $this->assertEquals(highlight('SpaN', 'span'), 'span'); $this->assertEquals(highlight('span', 'SpaN'), 'SpaN'); $this->assertEquals(highlight('span', 'span'), 'span'); $this->assertEquals(highlight('good is', 'He is good'), 'He is good'); $this->assertEquals(highlight('+good', 'This is good'), 'This is good'); $this->assertEquals(highlight('-good', 'This is good'), 'This is good'); $this->assertEquals(highlight('+good', 'This is goodness'), 'This is goodness'); $this->assertEquals(highlight('good', 'This is goodness'), 'This is goodness'); } function test_replace_ampersands() { $this->assertEquals(replace_ampersands_not_followed_by_entity("This & that "), "This & that "); $this->assertEquals(replace_ampersands_not_followed_by_entity("This   that "), "This   that "); } function test_strip_links() { $this->assertEquals(strip_links('this is a link'), 'this is a link'); } function test_wikify_links() { $this->assertEquals(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->assertEquals($strurl, $url->out(false)); $strurl = 'http://moodle.org/user/index.php?contextid=53&sifirst=M&silast=D'; $url = new moodle_url($strurl); $this->assertEquals($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->assertEquals($strurl, $url->out(false)); $url = new moodle_url('http://example.com/?a[1]=1&a[2]=2'); $this->assertEquals($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->assertEquals($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)); } function test_out_as_local_url() { $url1 = new moodle_url('/lib/tests/weblib_test.php'); $this->assertEquals('/lib/tests/weblib_test.php', $url1->out_as_local_url()); } /** * @expectedException coding_exception * @return void */ function test_out_as_local_url_error() { $url2 = new moodle_url('http://www.google.com/lib/simpletest/testweblib.php'); $url2->out_as_local_url(); } public function test_clean_text() { $text = "lala "; $this->assertEquals($text, clean_text($text, FORMAT_PLAIN)); $this->assertEquals('lala xx', clean_text($text, FORMAT_MARKDOWN)); $this->assertEquals('lala xx', clean_text($text, FORMAT_MOODLE)); $this->assertEquals('lala xx', clean_text($text, FORMAT_HTML)); } }