MDL-38509 Fix the communication protocol with Moodle plugins directory
authorDavid Mudrák <david@moodle.com>
Fri, 22 Mar 2013 17:14:25 +0000 (18:14 +0100)
committerDavid Mudrák <david@moodle.com>
Thu, 28 Mar 2013 10:54:06 +0000 (11:54 +0100)
Implements the behaviour currently specified at
http://docs.moodle.org/dev/On-click_add-on_installation

admin/tool/installaddon/classes/installer.php
admin/tool/installaddon/tests/installer_test.php

index 7353684..adac7c1 100644 (file)
@@ -68,7 +68,7 @@ class tool_installaddon_installer {
         $site = array(
             'fullname' => $this->get_site_fullname(),
             'url' => $this->get_site_url(),
-            'major_version' => $this->get_site_major_version(),
+            'majorversion' => $this->get_site_major_version(),
         );
 
         $site = $this->encode_site_information($site);
@@ -228,7 +228,7 @@ class tool_installaddon_installer {
     protected function get_site_fullname() {
         global $SITE;
 
-        return $SITE->fullname;
+        return strip_tags($SITE->fullname);
     }
 
     /**
index f32bc19..7f53cb1 100644 (file)
@@ -47,9 +47,9 @@ class tool_installaddon_installer_test extends advanced_testcase {
         $site = json_decode(base64_decode($site), true);
         $this->assertEquals('array', gettype($site));
         $this->assertEquals(3, count($site));
-        $this->assertSame($installer->get_site_fullname(), $site['fullname']);
-        $this->assertSame($installer->get_site_url(), $site['url']);
-        $this->assertSame($installer->get_site_major_version(), $site['major_version']);
+        $this->assertSame('Nasty site', $site['fullname']);
+        $this->assertSame('file:///etc/passwd', $site['url']);
+        $this->assertSame("2.5'; DROP TABLE mdl_user; --", $site['majorversion']);
     }
 
     public function test_extract_installfromzip_file() {
@@ -86,7 +86,7 @@ class tool_installaddon_installer_test extends advanced_testcase {
 class testable_tool_installaddon_installer extends tool_installaddon_installer {
 
     public function get_site_fullname() {
-        return '<h1 onmouseover="alert(\'Hello Moodle.org!\');">Nasty site</h1>';
+        return strip_tags('<h1 onmouseover="alert(\'Hello Moodle.org!\');">Nasty site</h1>');
     }
 
     public function get_site_url() {