mirror of
https://github.com/moodle/moodle.git
synced 2025-04-16 14:02:32 +02:00
Merge branch 'MDL-59908-master' of git://github.com/ankitagarwal/moodle
This commit is contained in:
commit
7f56c2679d
@ -167,15 +167,25 @@ class backup_course_task extends backup_task {
|
||||
/**
|
||||
* Helper method, used by encode_content_links.
|
||||
* @param string $content content in which to encode links.
|
||||
* @param unknown_type $name the name of this type of encoded link.
|
||||
* @param unknown_type $path the path that identifies this type of link, up
|
||||
* @param string $name the name of this type of encoded link.
|
||||
* @param string $path the path that identifies this type of link, up
|
||||
* to the ?paramname= bit.
|
||||
* @return string content with one type of link encoded.
|
||||
*/
|
||||
static private function encode_links_helper($content, $name, $path) {
|
||||
global $CFG;
|
||||
$base = preg_quote($CFG->wwwroot . $path, '/');
|
||||
return preg_replace('/(' . $base . ')([0-9]+)/', '$@' . $name . '*$2@$', $content);
|
||||
// We want to convert both http and https links.
|
||||
$root = $CFG->wwwroot;
|
||||
$httpsroot = str_replace('http://', 'https://', $root);
|
||||
$httproot = str_replace('https://', 'http://', $root);
|
||||
|
||||
$httpsbase = preg_quote($httpsroot . $path, '/');
|
||||
$httpbase = preg_quote($httproot . $path, '/');
|
||||
|
||||
$return = preg_replace('/(' . $httpsbase . ')([0-9]+)/', '$@' . $name . '*$2@$', $content);
|
||||
$return = preg_replace('/(' . $httpbase . ')([0-9]+)/', '$@' . $name . '*$2@$', $return);
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
// Protected API starts here
|
||||
|
@ -44,13 +44,33 @@ class backup_course_task_testcase extends basic_testcase {
|
||||
*/
|
||||
public function test_course_encode_content_links() {
|
||||
global $CFG;
|
||||
$httpsroot = "https://moodle.org";
|
||||
$httproot = "http://moodle.org";
|
||||
$oldroot = $CFG->wwwroot;
|
||||
|
||||
// HTTPS root and links of both types in content.
|
||||
$CFG->wwwroot = $httpsroot;
|
||||
$encoded = backup_course_task::encode_content_links(
|
||||
$CFG->wwwroot . '/course/view.php?id=123, ' .
|
||||
$CFG->wwwroot . '/grade/index.php?id=123, ' .
|
||||
$CFG->wwwroot . '/grade/report/index.php?id=123, ' .
|
||||
$CFG->wwwroot . '/badges/view.php?type=2&id=123 and ' .
|
||||
$CFG->wwwroot . '/user/index.php?id=123.');
|
||||
$this->assertEquals('$@COURSEVIEWBYID*123@$, $@GRADEINDEXBYID*123@$, ' .
|
||||
$httproot . '/course/view.php?id=123, ' .
|
||||
$httpsroot . '/course/view.php?id=123, ' .
|
||||
$httpsroot . '/grade/index.php?id=123, ' .
|
||||
$httpsroot . '/grade/report/index.php?id=123, ' .
|
||||
$httpsroot . '/badges/view.php?type=2&id=123 and ' .
|
||||
$httpsroot . '/user/index.php?id=123.');
|
||||
$this->assertEquals('$@COURSEVIEWBYID*123@$, $@COURSEVIEWBYID*123@$, $@GRADEINDEXBYID*123@$, ' .
|
||||
'$@GRADEREPORTINDEXBYID*123@$, $@BADGESVIEWBYID*123@$ and $@USERINDEXVIEWBYID*123@$.', $encoded);
|
||||
|
||||
// HTTP root and links of both types in content.
|
||||
$CFG->wwwroot = $httproot;
|
||||
$encoded = backup_course_task::encode_content_links(
|
||||
$httproot . '/course/view.php?id=123, ' .
|
||||
$httpsroot . '/course/view.php?id=123, ' .
|
||||
$httproot . '/grade/index.php?id=123, ' .
|
||||
$httproot . '/grade/report/index.php?id=123, ' .
|
||||
$httproot . '/badges/view.php?type=2&id=123 and ' .
|
||||
$httproot . '/user/index.php?id=123.');
|
||||
$this->assertEquals('$@COURSEVIEWBYID*123@$, $@COURSEVIEWBYID*123@$, $@GRADEINDEXBYID*123@$, ' .
|
||||
'$@GRADEREPORTINDEXBYID*123@$, $@BADGESVIEWBYID*123@$ and $@USERINDEXVIEWBYID*123@$.', $encoded);
|
||||
$CFG->wwwroot = $oldroot;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user