Skip to content

Commit

Permalink
Merge branch 'MDL-73339-master' of https://github.com/sarjona/moodle
Browse files Browse the repository at this point in the history
  • Loading branch information
rezaies committed Dec 31, 2021
2 parents 541d999 + b90bc54 commit 33f1288
Show file tree
Hide file tree
Showing 37 changed files with 1,188 additions and 43 deletions.
12 changes: 12 additions & 0 deletions blocks/accessreview/block_accessreview.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,18 @@ public function get_content() {
return $this->content;
}

/**
* This block shouldn't be added to a page if the accessibility tools setting is disabled.
*
* @param moodle_page $page
* @return bool
*/
public function can_block_be_added(moodle_page $page): bool {
global $CFG;

return $CFG->enableaccessibilitytools;
}

/**
* Fetches and groups the relevent error data for the table to display.
* @param int $courseid The ID of the course.
Expand Down
27 changes: 27 additions & 0 deletions blocks/accessreview/tests/accessibility_review_test.php
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
* @copyright 2020 onward: Learning Technology Services, www.lts.ie
* @author Jay Churchward ([email protected])
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \block_accessreview
*/
class accessibility_review_test extends advanced_testcase {
public static function setUpBeforeClass(): void {
Expand Down Expand Up @@ -96,4 +97,30 @@ public function test_get_report_link() {
$result = $rm->invoke($block, context_course::instance($course->id));
$this->assertEmpty($result);
}

/**
* Test the behaviour of can_block_be_added() method.
*
* @covers ::can_block_be_added
*/
public function test_can_block_be_added(): void {
$this->resetAfterTest();
$this->setAdminUser();

// Create a course and prepare the page where the block will be added.
$course = $this->getDataGenerator()->create_course();
$page = new \moodle_page();
$page->set_context(context_course::instance($course->id));
$page->set_pagelayout('course');

$block = new block_accessreview();

// If the accessibility tools is enabled, the method should return true.
set_config('enableaccessibilitytools', true);
$this->assertTrue($block->can_block_be_added($page));

// However, if the accessibility tools is disabled, the method should return false.
set_config('enableaccessibilitytools', false);
$this->assertFalse($block->can_block_be_added($page));
}
}
24 changes: 16 additions & 8 deletions blocks/badges/block_badges.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,13 @@
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @author Yuliya Bozhko <[email protected]>
*/

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

require_once($CFG->libdir . "/badgeslib.php");

/**
* Displays recent badges
*/
class block_badges extends block_base {

public function init() {
global $CFG;

require_once($CFG->libdir . "/badgeslib.php");

$this->title = get_string('pluginname', 'block_badges');
}

Expand Down Expand Up @@ -105,4 +101,16 @@ public function get_content() {

return $this->content;
}

/**
* This block shouldn't be added to a page if the badges advanced feature is disabled.
*
* @param moodle_page $page
* @return bool
*/
public function can_block_be_added(moodle_page $page): bool {
global $CFG;

return $CFG->enablebadges;
}
}
63 changes: 63 additions & 0 deletions blocks/badges/tests/badges_test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?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/>.

namespace block_badges\tests;

use advanced_testcase;
use block_badges;
use context_course;

/**
* PHPUnit block_badges tests
*
* @package block_badges
* @category test
* @copyright 2021 Sara Arjona ([email protected])
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \block_badges
*/
class badges_test extends advanced_testcase {
public static function setUpBeforeClass(): void {
require_once(__DIR__ . '/../../moodleblock.class.php');
require_once(__DIR__ . '/../block_badges.php');
}

/**
* Test the behaviour of can_block_be_added() method.
*
* @covers ::can_block_be_added
*/
public function test_can_block_be_added(): void {
$this->resetAfterTest();
$this->setAdminUser();

// Create a course and prepare the page where the block will be added.
$course = $this->getDataGenerator()->create_course();
$page = new \moodle_page();
$page->set_context(context_course::instance($course->id));
$page->set_pagelayout('course');

$block = new block_badges();

// If badges advanced feature is enabled, the method should return true.
set_config('enablebadges', true);
$this->assertTrue($block->can_block_be_added($page));

// However, if the badges advanced feature is disabled, the method should return false.
set_config('enablebadges', false);
$this->assertFalse($block->can_block_be_added($page));
}
}
9 changes: 4 additions & 5 deletions blocks/badges/tests/behat/block_badges.feature
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@ Feature: Enable Block Badges in a course without badges
| teacher1 | C1 | editingteacher |

Scenario: Add the block to a the course when badges are disabled
Given I log in as "admin"
And the following config values are set as admin:
| enablebadges | 0 |
And I log out
And I log in as "teacher1"
Given I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
When I add the "Latest badges" block
And the following config values are set as admin:
| enablebadges | 0 |
And I reload the page
Then I should see "Badges are not enabled on this site." in the "Latest badges" "block"

Scenario: Add the block to a the course when badges are enabled
Expand Down
12 changes: 12 additions & 0 deletions blocks/blog_menu/block_blog_menu.php
Original file line number Diff line number Diff line change
Expand Up @@ -123,4 +123,16 @@ function get_content() {
public function get_aria_role() {
return 'navigation';
}

/**
* This block shouldn't be added to a page if the blogs advanced feature is disabled.
*
* @param moodle_page $page
* @return bool
*/
public function can_block_be_added(moodle_page $page): bool {
global $CFG;

return $CFG->enableblogs;
}
}
9 changes: 4 additions & 5 deletions blocks/blog_menu/tests/behat/block_blog_menu.feature
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@ Feature: Enable Block blog menu in a course
| teacher1 | C1 | editingteacher |

Scenario: Add the block to a the course when blogs are disabled
Given I log in as "admin"
And the following config values are set as admin:
| enableblogs | 0 |
And I log out
And I log in as "teacher1"
Given I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
When I add the "Blog menu" block
And the following config values are set as admin:
| enableblogs | 0 |
And I reload the page
Then I should see "Blogging is disabled!" in the "Blog menu" "block"

Scenario: Add the block to a the course when blog associations are disabled
Expand Down
63 changes: 63 additions & 0 deletions blocks/blog_menu/tests/blog_menu_test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?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/>.

namespace block_blog_menu\tests;

use advanced_testcase;
use block_blog_menu;
use context_course;

/**
* PHPUnit block_blog_menu tests
*
* @package block_blog_menu
* @category test
* @copyright 2021 Sara Arjona ([email protected])
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \block_blog_menu
*/
class blog_menu_test extends advanced_testcase {
public static function setUpBeforeClass(): void {
require_once(__DIR__ . '/../../moodleblock.class.php');
require_once(__DIR__ . '/../block_blog_menu.php');
}

/**
* Test the behaviour of can_block_be_added() method.
*
* @covers ::can_block_be_added
*/
public function test_can_block_be_added(): void {
$this->resetAfterTest();
$this->setAdminUser();

// Create a course and prepare the page where the block will be added.
$course = $this->getDataGenerator()->create_course();
$page = new \moodle_page();
$page->set_context(context_course::instance($course->id));
$page->set_pagelayout('course');

$block = new block_blog_menu();

// If blogs advanced feature is enabled, the method should return true.
set_config('enableblogs', true);
$this->assertTrue($block->can_block_be_added($page));

// However, if the blogs advanced feature is disabled, the method should return false.
set_config('enableblogs', false);
$this->assertFalse($block->can_block_be_added($page));
}
}
12 changes: 12 additions & 0 deletions blocks/blog_recent/block_blog_recent.php
Original file line number Diff line number Diff line change
Expand Up @@ -142,4 +142,16 @@ public function get_config_for_external() {
'plugin' => new stdClass(),
];
}

/**
* This block shouldn't be added to a page if the blogs advanced feature is disabled.
*
* @param moodle_page $page
* @return bool
*/
public function can_block_be_added(moodle_page $page): bool {
global $CFG;

return $CFG->enableblogs;
}
}
9 changes: 4 additions & 5 deletions blocks/blog_recent/tests/behat/block_blog_recent.feature
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,12 @@ Feature: Feature: Users can use the recent blog entries block to view recent blo
| teacher1 | C1 | editingteacher |

Scenario: Add the recent blogs block to a course when blogs are disabled
Given I log in as "admin"
And the following config values are set as admin:
| enableblogs | 0 |
And I log out
And I log in as "teacher1"
Given I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
When I add the "Recent blog entries" block
And the following config values are set as admin:
| enableblogs | 0 |
And I reload the page
Then I should see "Blogging is disabled!" in the "Recent blog entries" "block"

Scenario: Add the recent blogs block to a course when there are not any blog posts
Expand Down
63 changes: 63 additions & 0 deletions blocks/blog_recent/tests/blog_recent_test.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?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/>.

namespace block_blog_recent\tests;

use advanced_testcase;
use block_blog_recent;
use context_course;

/**
* PHPUnit block_blog_recent tests
*
* @package block_blog_recent
* @category test
* @copyright 2021 Sara Arjona ([email protected])
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
* @coversDefaultClass \block_blog_recent
*/
class blog_recent_test extends advanced_testcase {
public static function setUpBeforeClass(): void {
require_once(__DIR__ . '/../../moodleblock.class.php');
require_once(__DIR__ . '/../block_blog_recent.php');
}

/**
* Test the behaviour of can_block_be_added() method.
*
* @covers ::can_block_be_added
*/
public function test_can_block_be_added(): void {
$this->resetAfterTest();
$this->setAdminUser();

// Create a course and prepare the page where the block will be added.
$course = $this->getDataGenerator()->create_course();
$page = new \moodle_page();
$page->set_context(context_course::instance($course->id));
$page->set_pagelayout('course');

$block = new block_blog_recent();

// If blogs advanced feature is enabled, the method should return true.
set_config('enableblogs', true);
$this->assertTrue($block->can_block_be_added($page));

// However, if the blogs advanced feature is disabled, the method should return false.
set_config('enableblogs', false);
$this->assertFalse($block->can_block_be_added($page));
}
}
Loading

0 comments on commit 33f1288

Please sign in to comment.