MDL-55348 wiki: Convert 'section' WS params to PARAM_RAW
authorDani Palou <dani@moodle.com>
Wed, 27 Jul 2016 07:05:58 +0000 (09:05 +0200)
committerDani Palou <dani@moodle.com>
Thu, 28 Jul 2016 08:35:24 +0000 (10:35 +0200)
mod/wiki/classes/external.php
mod/wiki/tests/externallib_test.php

index c79f544..91e710d 100644 (file)
@@ -824,7 +824,7 @@ class mod_wiki_external extends external_api {
         return new external_function_parameters (
             array(
                 'pageid' => new external_value(PARAM_INT, 'Page ID to edit.'),
         return new external_function_parameters (
             array(
                 'pageid' => new external_value(PARAM_INT, 'Page ID to edit.'),
-                'section' => new external_value(PARAM_TEXT, 'Section page title.', VALUE_DEFAULT, null)
+                'section' => new external_value(PARAM_RAW, 'Section page title.', VALUE_DEFAULT, null)
             )
         );
     }
             )
         );
     }
@@ -1088,7 +1088,7 @@ class mod_wiki_external extends external_api {
             array(
                 'pageid' => new external_value(PARAM_INT, 'Page ID.'),
                 'content' => new external_value(PARAM_RAW, 'Page contents.'),
             array(
                 'pageid' => new external_value(PARAM_INT, 'Page ID.'),
                 'content' => new external_value(PARAM_RAW, 'Page contents.'),
-                'section' => new external_value(PARAM_TEXT, 'Section page title.', VALUE_DEFAULT, null)
+                'section' => new external_value(PARAM_RAW, 'Section page title.', VALUE_DEFAULT, null)
             )
         );
     }
             )
         );
     }
index 2e1660b..37b6435 100644 (file)
@@ -1155,7 +1155,8 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
 
         $this->create_individual_wikis_with_groups();
 
 
         $this->create_individual_wikis_with_groups();
 
-        $sectioncontent = '<h1>Title1</h1>Text inside section';
+        // We add a <span> in the first title to verify the WS works sending HTML in section.
+        $sectioncontent = '<h1><span>Title1</span></h1>Text inside section';
         $pagecontent = $sectioncontent.'<h1>Title2</h1>Text inside section';
         $newpage = $this->getDataGenerator()->get_plugin_generator('mod_wiki')->create_page(
                                 $this->wiki, array('content' => $pagecontent));
         $pagecontent = $sectioncontent.'<h1>Title2</h1>Text inside section';
         $newpage = $this->getDataGenerator()->get_plugin_generator('mod_wiki')->create_page(
                                 $this->wiki, array('content' => $pagecontent));
@@ -1181,7 +1182,7 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
             'version' => '1'
         );
 
             'version' => '1'
         );
 
-        $result = mod_wiki_external::get_page_for_editing($newpage->id, 'Title1');
+        $result = mod_wiki_external::get_page_for_editing($newpage->id, '<span>Title1</span>');
         $result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
         $this->assertEquals($expected, $result['pagesection']);
     }
         $result = external_api::clean_returnvalue(mod_wiki_external::get_page_for_editing_returns(), $result);
         $this->assertEquals($expected, $result['pagesection']);
     }
@@ -1273,8 +1274,9 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
             array('group' => $this->group1->id, 'content' => 'Test'));
 
         // Test edit whole page.
             array('group' => $this->group1->id, 'content' => 'Test'));
 
         // Test edit whole page.
-        $sectioncontent = '<h1>Title1</h1>Text inside section';
-        $newpagecontent = $sectioncontent.'<h1>Title2</h1>Text inside section';
+        // We add <span> in the titles to verify the WS works sending HTML in section.
+        $sectioncontent = '<h1><span>Title1</span></h1>Text inside section';
+        $newpagecontent = $sectioncontent.'<h1><span>Title2</span></h1>Text inside section';
 
         $result = mod_wiki_external::edit_page($newpage->id, $newpagecontent);
         $result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
 
         $result = mod_wiki_external::edit_page($newpage->id, $newpagecontent);
         $result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
@@ -1284,8 +1286,8 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
         $this->assertEquals($newpagecontent, $version->content);
 
         // Test edit section.
         $this->assertEquals($newpagecontent, $version->content);
 
         // Test edit section.
-        $newsectioncontent = '<h1>Title2</h1>New test2';
-        $section = 'Title2';
+        $newsectioncontent = '<h1><span>Title2</span></h1>New test2';
+        $section = '<span>Title2</span>';
 
         $result = mod_wiki_external::edit_page($newpage->id, $newsectioncontent, $section);
         $result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
 
         $result = mod_wiki_external::edit_page($newpage->id, $newsectioncontent, $section);
         $result = external_api::clean_returnvalue(mod_wiki_external::edit_page_returns(), $result);
@@ -1297,8 +1299,8 @@ class mod_wiki_external_testcase extends externallib_advanced_testcase {
         $this->assertEquals($expected, $version->content);
 
         // Test locked section.
         $this->assertEquals($expected, $version->content);
 
         // Test locked section.
-        $newsectioncontent = '<h1>Title2</h1>New test2';
-        $section = 'Title2';
+        $newsectioncontent = '<h1><span>Title2</span></h1>New test2';
+        $section = '<span>Title2</span>';
 
         try {
             // Using user 1 to avoid other users to edit.
 
         try {
             // Using user 1 to avoid other users to edit.