Skip to content

Commit

Permalink
MDL-61878 fileconverter_googledrive: Add privacy files and unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Mihail Geshoski committed Apr 19, 2018
1 parent 3e3a083 commit b784495
Show file tree
Hide file tree
Showing 3 changed files with 142 additions and 0 deletions.
91 changes: 91 additions & 0 deletions files/converter/googledrive/classes/privacy/provider.php
@@ -0,0 +1,91 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Privacy class for requesting user data.
*
* @package fileconverter_googledrive
* @copyright 2018 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

namespace fileconverter_googledrive\privacy;

defined('MOODLE_INTERNAL') || die();

use \core_privacy\local\metadata\collection;
use \core_privacy\local\request\contextlist;
use \core_privacy\local\request\approved_contextlist;

/**
* Privacy class for requesting user data.
*
* @package fileconverter_googledrive
* @copyright 2018 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class provider implements \core_privacy\local\metadata\provider, \core_privacy\local\request\plugin\provider {

/**
* Returns meta data about this system.
*
* @param collection $collection The initialised collection to add items to.
* @return collection A listing of user data stored through this system.
*/
public static function get_metadata(collection $collection) {
$collection->add_external_location_link('googledrive', [
'params' => 'privacy:metadata:fileconverter_googledrive:params',
'filecontent' => 'privacy:metadata:fileconverter_googledrive:filecontent',
'filemimetype' => 'privacy:metadata:fileconverter_googledrive:filemimetype',
], 'privacy:metadata:fileconverter_googledrive:externalpurpose');
return $collection;
}

/**
* Get the list of contexts that contain user information for the specified user.
*
* @param int $userid The user to search.
* @return contextlist $contextlist The contextlist containing the list of contexts used in this plugin.
*/
public static function get_contexts_for_userid($userid) {
$contextlist = new contextlist();
return $contextlist;
}

/**
* Export all user data for the specified user, in the specified contexts.
*
* @param approved_contextlist $contextlist The approved contexts to export information for.
*/
public static function export_user_data(approved_contextlist $contextlist) {
}

/**
* Delete all use data which matches the specified deletion_criteria.
*
* @param \context $context A user context.
*/
public static function delete_data_for_all_users_in_context(\context $context) {
}

/**
* Delete all user data for the specified user, in the specified contexts.
*
* @param approved_contextlist $contextlist The approved contexts and user information to delete information for.
*/
public static function delete_data_for_user(approved_contextlist $contextlist) {
}
}
Expand Up @@ -28,6 +28,10 @@
$string['disabled'] = 'Disabled';
$string['issuer'] = 'OAuth 2 service';
$string['issuer_help'] = 'The OAuth 2 service used to access Google Drive.';
$string['privacy:metadata:fileconverter_googledrive:externalpurpose'] = 'This information is sent to Google Drive API in order the file to be converted to an alternative format. The file is temporarily kept on Google Drive and gets deleted after the conversion is done.';
$string['privacy:metadata:fileconverter_googledrive:filecontent'] = 'The content of the file.';
$string['privacy:metadata:fileconverter_googledrive:filemimetype'] = 'The MIME type of the file.';
$string['privacy:metadata:fileconverter_googledrive:params'] = 'The query parameters passed to Google Drive API.';
$string['test_converter'] = 'Test this converter is working properly.';
$string['test_conversion'] = 'Test document conversion';
$string['test_conversionready'] = 'This document converter is configured properly.';
Expand Down
47 changes: 47 additions & 0 deletions files/converter/googledrive/tests/privacy_test.php
@@ -0,0 +1,47 @@
<?php
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle. If not, see <http://www.gnu.org/licenses/>.

/**
* Base class for unit tests for fileconverter_googledrive.
*
* @package fileconverter_googledrive
* @copyright 2018 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/

defined('MOODLE_INTERNAL') || die();

use \core_privacy\tests\provider_testcase;

/**
* Unit tests for files/converter/googledrive/classes/privacy/provider.php
*
* @copyright 2018 Mihail Geshoski <mihail@moodle.com>
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
*/
class fileconverter_googledrive_testcase extends provider_testcase {

/**
* Test getting the context for the user ID related to this plugin.
*/
public function test_get_contexts_for_userid() {
$this->resetAfterTest();

$user = $this->getDataGenerator()->create_user();
$contextlist = \fileconverter_googledrive\privacy\provider::get_contexts_for_userid($user->id);
$this->assertEmpty($contextlist);
}
}

0 comments on commit b784495

Please sign in to comment.