From 2d572444e1a6096a736c7360abcb29bf8966a737 Mon Sep 17 00:00:00 2001 From: Rossiani Wijaya Date: Fri, 14 Jan 2011 14:52:24 +0800 Subject: [PATCH] MDL-17884: Add test_download_file_content and componentlib to unittest. Credit goes to Tomasz Muras --- lib/simpletest/testcomponentlib.php | 63 +++++++++++++++++++++++++++++ lib/simpletest/testfilelib.php | 6 +++ 2 files changed, 69 insertions(+) create mode 100644 lib/simpletest/testcomponentlib.php diff --git a/lib/simpletest/testcomponentlib.php b/lib/simpletest/testcomponentlib.php new file mode 100644 index 00000000000..a5918fc1eb9 --- /dev/null +++ b/lib/simpletest/testcomponentlib.php @@ -0,0 +1,63 @@ +. + + +/** + * Unit tests for /lib/componentlib.class.php. + * + * @package moodlecore + * @copyright 2011 Tomasz Muras + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ +if (!defined('MOODLE_INTERNAL')) { + die('Direct access to this script is forbidden.'); /// It must be included from a Moodle page +} +require_once($CFG->libdir.'/componentlib.class.php'); + +class componentlib_test extends UnitTestCase { + + public function test_component_installer() { + global $CFG; + + $ci = new component_installer('http://download.moodle.org', 'unittest', 'downloadtests.zip'); + $this->assertTrue($ci->check_requisites()); + + $destpath = $CFG->dataroot.'/downloadtests'; + + //carefully remove component files to enforce fresh installation + @unlink($destpath.'/'.'downloadtests.md5'); + @unlink($destpath.'/'.'test.html'); + @unlink($destpath.'/'.'test.jpg'); + @rmdir($destpath); + + $this->assertEqual(COMPONENT_NEEDUPDATE, $ci->need_upgrade()); + + $status = $ci->install(); + $this->assertEqual(COMPONENT_INSTALLED, $status); + $this->assertEqual('9e94f74b3efb1ff6cf075dc6b2abf15c', $ci->get_component_md5()); + + //it's already installed, so Moodle should detect it's up to date + $this->assertEqual(COMPONENT_UPTODATE, $ci->need_upgrade()); + $status = $ci->install(); + $this->assertEqual(COMPONENT_UPTODATE, $status); + + //check if correct files were downloaded + $this->assertEqual('2af180e813dc3f446a9bb7b6af87ce24', md5_file($destpath.'/'.'test.jpg')); + $this->assertEqual('47250a973d1b88d9445f94db4ef2c97a', md5_file($destpath.'/'.'test.html')); + + } +} diff --git a/lib/simpletest/testfilelib.php b/lib/simpletest/testfilelib.php index 6674106193e..ffea131f2bc 100644 --- a/lib/simpletest/testfilelib.php +++ b/lib/simpletest/testfilelib.php @@ -79,4 +79,10 @@ class filelib_test extends UnitTestCase { $postdata = format_postdata_for_curlcall($postdatatoconvert); $this->assertEqual($postdata, $expectedresult); } + + public function test_download_file_content() { + $testhtml = "http://download.moodle.org/unittest/test.html"; + $contents = download_file_content($testhtml); + $this->assertEqual('47250a973d1b88d9445f94db4ef2c97a', md5($contents)); + } }