first commit

This commit is contained in:
CHIEFSOFT\ameye
2024-09-30 18:11:26 -04:00
commit e592ca6823
27270 changed files with 5002257 additions and 0 deletions
@@ -0,0 +1,123 @@
<?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_accessreview;
use ReflectionClass;
use advanced_testcase;
use block_accessreview;
use context_course;
/**
* PHPUnit block_accessibility_review tests
*
* @package block_accessreview
* @copyright 2020 onward: Learning Technology Services, www.lts.ie
* @author Jay Churchward (jay.churchward@poetopensource.org)
* @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 {
require_once(__DIR__ . '/../../moodleblock.class.php');
require_once(__DIR__ . '/../block_accessreview.php');
}
public function test_get_toggle_link(): void {
$rc = new ReflectionClass(block_accessreview::class);
$rm = $rc->getMethod('get_toggle_link');
$block = new block_accessreview();
$output = $rm->invoke($block);
$this->assertNotEmpty($output);
}
public function test_get_download_link(): void {
$this->resetAfterTest();
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course();
// Enrol users in the course.
$this->getDataGenerator()->enrol_user($user1->id, $course->id, 'teacher');
$this->getDataGenerator()->enrol_user($user2->id, $course->id, 'student');
$rc = new ReflectionClass(block_accessreview::class);
$rm = $rc->getMethod('get_download_link');
$block = new block_accessreview();
$this->setUser($user1);
$result = $rm->invoke($block, context_course::instance($course->id));
$this->assertNotEmpty($result);
$this->setUser($user2);
$result = $rm->invoke($block, context_course::instance($course->id));
$this->assertEmpty($result);
}
public function test_get_report_link(): void {
$this->resetAfterTest();
$user1 = $this->getDataGenerator()->create_user();
$user2 = $this->getDataGenerator()->create_user();
$course = $this->getDataGenerator()->create_course();
// Enrol users in the course.
$this->getDataGenerator()->enrol_user($user1->id, $course->id, 'teacher');
$this->getDataGenerator()->enrol_user($user2->id, $course->id, 'student');
$rc = new ReflectionClass(block_accessreview::class);
$rm = $rc->getMethod('get_report_link');
$block = new block_accessreview();
$this->setUser($user1);
$result = $rm->invoke($block, context_course::instance($course->id));
$this->assertNotEmpty($result);
$this->setUser($user2);
$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));
}
}
@@ -0,0 +1,30 @@
@block @block_accessreview @javascript
Feature: Block accessreview
In order to overview accessibility information on my course
As a manager
I can add the accessreview block in a course
Background:
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
Scenario: View accessreview block on a course
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility Review" block
Then I should see "Accessibility Review"
And I should see "Your accessibility toolkit needs to be registered."
Scenario: Hide/show accessreview view
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility Review" block
Then I should see "Accessibility Review"
And I should see "Your accessibility toolkit needs to be registered."
And I click on "Actions menu" "icon" in the "Accessibility Review" "block"
And I follow "Hide Accessibility Review block"
And I should not see "Your accessibility toolkit needs to be registered."
And I click on "Actions menu" "icon" in the "Accessibility Review" "block"
And I follow "Show Accessibility Review block"
And I should see "Your accessibility toolkit needs to be registered."
@@ -0,0 +1,68 @@
@block @block_accessreview @javascript
Feature: Block accessreview results
In order to overview accessibility information on my course
As a manager
I can add the accessreview block in a course after running the scheduled task
Background:
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| label | Label one | <b>Bold text is bold.</b> | C1 | id001 |
| label | Label two | <a href="modle.org">Click here</a> | C1 | id002 |
And I run the scheduled task "\tool_brickfield\task\process_analysis_requests"
And I run the scheduled task "\tool_brickfield\task\bulk_process_courses"
And I run the scheduled task "\tool_brickfield\task\bulk_process_caches"
Scenario: View accessreview block results on a course
Given I log in as "admin"
And I navigate to "Plugins > Admin tools > Accessibility > Brickfield registration" in site administration
And I set the field "id_key" to "123456789012345678901234567890ab"
And I set the field "id_hash" to "ab123456789012345678901234567890"
And I press "Activate"
Then I should see "Your accessibility toolkit is still being validated."
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility Review" block
Then I should see "Accessibility Review"
And I press "Submit for analysis"
Then I should see "This course has been scheduled for analysis."
And I run the scheduled task "\tool_brickfield\task\process_analysis_requests"
And I run the scheduled task "\tool_brickfield\task\bulk_process_courses"
And I run the scheduled task "\tool_brickfield\task\bulk_process_caches"
And I reload the page
And I should see "Image" in the "Accessibility Review" "block"
And I should see "Layout" in the "Accessibility Review" "block"
And I should see "Link" in the "Accessibility Review" "block"
And I should see "Media" in the "Accessibility Review" "block"
And I should see "Table" in the "Accessibility Review" "block"
And I should see "Text" in the "Accessibility Review" "block"
# We created one link error above.
And I should see "1" in the "Link" "table_row"
# We created one text issue, and the standard Behat course generator creates another (too much content).
And I should see "2" in the "Text" "table_row"
And "View Brickfield Accessibility Report" "icon" should exist in the "Accessibility Review" "block"
And "Toggle Brickfield Accessibility Heatmap" "icon" should exist in the "Accessibility Review" "block"
And "Download Brickfield Accessibility Report" "icon" should exist in the "Accessibility Review" "block"
Scenario: Toggle highlighting on/off
Given I log in as "admin"
Given the following "user preferences" exist:
| user | preference | value |
| admin | block_accessreviewtogglestate | 0 |
And I navigate to "Plugins > Admin tools > Accessibility > Brickfield registration" in site administration
And I set the field "id_key" to "123456789012345678901234567890ab"
And I set the field "id_hash" to "ab123456789012345678901234567890"
And I press "Activate"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility Review" block
And I press "Submit for analysis"
And I run the scheduled task "\tool_brickfield\task\process_analysis_requests"
And I run the scheduled task "\tool_brickfield\task\bulk_process_courses"
And I run the scheduled task "\tool_brickfield\task\bulk_process_caches"
And I reload the page
And I click on "Toggle Brickfield Accessibility Heatmap" "icon"
And ".block_accessreview_view" "css_element" should be visible
And I click on "Toggle Brickfield Accessibility Heatmap" "icon"
And ".block_accessreview_view" "css_element" should not be visible
@@ -0,0 +1,32 @@
@block @block_accessreview @javascript
Feature: Block accessreview
In order to overview accessibility information on my course
As a manager
I can add the accessreview block in a course
Background:
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following config values are set as admin:
| analysistype | 1 | tool_brickfield |
Scenario: View accessreview block on a course
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility review" block
Then I should see "Accessibility review"
And I should see "Your accessibility toolkit needs to be registered."
Scenario: Hide/show accessreview view
Given I log in as "admin"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility review" block
Then I should see "Accessibility review"
And I should see "Your accessibility toolkit needs to be registered."
And I click on "Actions menu" "icon" in the "Accessibility review" "block"
And I follow "Hide Accessibility review block"
And I should not see "Your accessibility toolkit needs to be registered."
And I click on "Actions menu" "icon" in the "Accessibility review" "block"
And I follow "Show Accessibility review block"
And I should see "Your accessibility toolkit needs to be registered."
@@ -0,0 +1,67 @@
@block @block_accessreview @javascript
Feature: Block accessreview results
In order to overview accessibility information on my course
As a manager
I can add the accessreview block in a course after running the scheduled task
Background:
Given the following "courses" exist:
| fullname | shortname | format |
| Course 1 | C1 | topics |
And the following "activities" exist:
| activity | name | intro | course | idnumber |
| label | Label one | <b>Bold text is bold.</b> | C1 | id001 |
| label | Label two | <a href="modle.org">Click here</a> | C1 | id002 |
And the following config values are set as admin:
| analysistype | 1 | tool_brickfield |
Scenario: View accessreview block results on a course
Given I log in as "admin"
And I navigate to "Plugins > Admin tools > Accessibility > Brickfield registration" in site administration
And I set the field "id_key" to "123456789012345678901234567890ab"
And I set the field "id_hash" to "ab123456789012345678901234567890"
And I press "Activate"
Then I should see "Your accessibility toolkit is functional while being validated."
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility review" block
Then I should see "Accessibility review"
And I press "Submit for analysis"
Then I should see "This course has been scheduled for analysis."
And I run the scheduled task "\tool_brickfield\task\process_analysis_requests"
And I run the scheduled task "\tool_brickfield\task\bulk_process_courses"
And I run the scheduled task "\tool_brickfield\task\bulk_process_caches"
And I reload the page
And I should see "Image" in the "Accessibility review" "block"
And I should see "Layout" in the "Accessibility review" "block"
And I should see "Link" in the "Accessibility review" "block"
And I should see "Media" in the "Accessibility review" "block"
And I should see "Table" in the "Accessibility review" "block"
And I should see "Text" in the "Accessibility review" "block"
# We created one link error above.
And I should see "1" in the "Link" "table_row"
# We created one text issue, and the standard Behat course generator creates another (too much content).
And I should see "2" in the "Text" "table_row"
And "View accessibility toolkit" "icon" should exist in the "Accessibility review" "block"
And "Toggle accessibility heatmap" "icon" should exist in the "Accessibility review" "block"
And "Download accessibility summary report" "icon" should exist in the "Accessibility review" "block"
Scenario: Toggle highlighting on/off
Given I log in as "admin"
Given the following "user preferences" exist:
| user | preference | value |
| admin | block_accessreviewtogglestate | 0 |
And I navigate to "Plugins > Admin tools > Accessibility > Brickfield registration" in site administration
And I set the field "id_key" to "123456789012345678901234567890ab"
And I set the field "id_hash" to "ab123456789012345678901234567890"
And I press "Activate"
And I am on "Course 1" course homepage with editing mode on
When I add the "Accessibility review" block
And I press "Submit for analysis"
And I run the scheduled task "\tool_brickfield\task\process_analysis_requests"
And I run the scheduled task "\tool_brickfield\task\bulk_process_courses"
And I run the scheduled task "\tool_brickfield\task\bulk_process_caches"
And I reload the page
And I click on "Toggle accessibility heatmap" "icon"
And ".block_accessreview_view" "css_element" should be visible
And I click on "Toggle accessibility heatmap" "icon"
And ".block_accessreview_view" "css_element" should not be visible