. /** * Unit tests for /lib/filelib.php. * * @package core_files * @category phpunit * @copyright 2009 Jerome Mouneyrac * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); global $CFG; require_once($CFG->libdir . '/filelib.php'); class filelib_testcase extends basic_testcase { public function test_format_postdata_for_curlcall() { //POST params with just simple types $postdatatoconvert =array( 'userid' => 1, 'roleid' => 22, 'name' => 'john'); $expectedresult = "userid=1&roleid=22&name=john"; $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEquals($postdata, $expectedresult); //POST params with a string containing & character $postdatatoconvert =array( 'name' => 'john&emilie', 'roleid' => 22); $expectedresult = "name=john%26emilie&roleid=22"; //urlencode: '%26' => '&' $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEquals($postdata, $expectedresult); //POST params with an empty value $postdatatoconvert =array( 'name' => null, 'roleid' => 22); $expectedresult = "name=&roleid=22"; $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEquals($postdata, $expectedresult); //POST params with complex types $postdatatoconvert =array( 'users' => array( array( 'id' => 2, 'customfields' => array( array ( 'type' => 'Color', 'value' => 'violet' ) ) ) ) ); $expectedresult = "users[0][id]=2&users[0][customfields][0][type]=Color&users[0][customfields][0][value]=violet"; $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEquals($postdata, $expectedresult); //POST params with other complex types $postdatatoconvert = array ('members' => array( array('groupid' => 1, 'userid' => 1) , array('groupid' => 1, 'userid' => 2) ) ); $expectedresult = "members[0][groupid]=1&members[0][userid]=1&members[1][groupid]=1&members[1][userid]=2"; $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEquals($postdata, $expectedresult); } public function test_download_file_content() { $testhtml = "http://download.moodle.org/unittest/test.html"; $contents = download_file_content($testhtml); $this->assertEquals('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); } }