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,31 @@
@block @block_blog_recent
Feature: Feature: Users can use the recent blog entries block to view recent blog entries.
In order to enable the recent blog entries in a course
As a teacher
I can add recent blog entries block to a course
Background:
Given the following "users" exist:
| username | firstname | lastname | email | idnumber |
| teacher1 | Teacher | 1 | teacher1@example.com | T1 |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
Scenario: Add the recent blogs block to a course when blogs are disabled
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
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
Then I should see "No recent entries" in the "Recent blog entries" "block"
@@ -0,0 +1,113 @@
@block @block_blog_menu @mod_assign @block_blog_recent
Feature: Students can use the recent blog entries block to view recent entries on an activity page
In order to enable the recent blog entries block an activity page
As a teacher
I can add the recent blog entries block to an activity page
Background:
Given the following "users" exist:
| username | firstname | lastname | email | idnumber |
| teacher1 | Teacher | 1 | teacher1@example.com | T1 |
| student1 | Student | 1 | student1@example.com | S1 |
| student2 | Student | 2 | student2@example.com | S2 |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
| student2 | C1 | student |
And the following "activity" exists:
| activity | assign |
| course | C1 |
| idnumber | 0001 |
| name | Test assignment 1 |
| intro | Offline text |
| section | 1 |
| assignsubmission_file_enabled | 0 |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| blog_menu | Activity module | 0001 | mod-assign-view | side-pre |
| blog_recent | Activity module | 0001 | mod-assign-view | side-pre |
Scenario: Students use the recent blog entries block to view blogs
Given I am on the "Test assignment 1" "assign activity" page logged in as student1
And I follow "Add an entry about this Assignment"
When I set the following fields to these values:
| Entry title | S1 First Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
Then I should see "S1 First Blog"
And I should see "This is my awesome blog!"
And I follow "Test assignment 1"
And I should see "S1 First Blog"
And I follow "S1 First Blog"
And I should see "This is my awesome blog!"
Scenario: Students only see a few entries in the recent blog entries block
Given I am on the "Test assignment 1" "assign activity" page logged in as student1
And I follow "Add an entry about this Assignment"
# Blog 1 of 5
And I set the following fields to these values:
| Entry title | S1 First Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I follow "Test assignment 1"
And I follow "Add an entry about this Assignment"
# Blog 2 of 5
And I set the following fields to these values:
| Entry title | S1 Second Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Second Blog"
And I should see "This is my awesome blog!"
And I follow "Test assignment 1"
And I follow "Add an entry about this Assignment"
# Blog 3 of 5
And I set the following fields to these values:
| Entry title | S1 Third Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Third Blog"
And I should see "This is my awesome blog!"
And I follow "Test assignment 1"
And I follow "Add an entry about this Assignment"
# Blog 4 of 5
And I set the following fields to these values:
| Entry title | S1 Fourth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Fourth Blog"
And I should see "This is my awesome blog!"
And I follow "Test assignment 1"
And I follow "Add an entry about this Assignment"
# Blog 5 of 5
And I set the following fields to these values:
| Entry title | S1 Fifth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I should see "S1 Fifth Blog"
And I should see "This is my awesome blog!"
When I follow "Test assignment 1"
And I should not see "S1 First Blog"
And I should see "S1 Second Blog"
And I should see "S1 Third Blog"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
And I follow "S1 Fifth Blog"
And I should see "This is my awesome blog!"
Then I log out
And I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
And I follow "Test assignment 1"
And I configure the "Recent blog entries" block
And I set the following fields to these values:
| config_numberofrecentblogentries | 2 |
And I press "Save changes"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
@@ -0,0 +1,104 @@
@block @block_blog_menu @block_blog_recent
Feature: Students can use the recent blog entries block to view recent entries on a course page
In order to enable the recent blog entries block a course page
As a teacher
I can add the recent blog entries block to a course page
Background:
Given the following "users" exist:
| username | firstname | lastname | email | idnumber |
| student1 | Student | 1 | student1@example.com | S1 |
| teacher1 | Teacher | 1 | teacher1@example.com | T1 |
And the following "courses" exist:
| fullname | shortname | category |
| Course 1 | C1 | 0 |
And the following "course enrolments" exist:
| user | course | role |
| teacher1 | C1 | editingteacher |
| student1 | C1 | student |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| blog_menu | Course | C1 | course-view-* | side-pre |
| blog_recent | Course | C1 | course-view-* | side-pre |
And the "multilang" filter is "on"
And the "multilang" filter applies to "content and headings"
Scenario: Students use the recent blog entries block to view blogs
Given I am on the "Course 1" course page logged in as student1
And I follow "Add an entry about this course"
When I set the following fields to these values:
| Entry title | S1 First Blog <span lang="RU" class="multilang">RUSSIAN</span><span lang="EN" class="multilang">ENGLISH</span> |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
Then I should see "S1 First Blog ENGLISH"
And I should see "This is my awesome blog!"
And I am on "Course 1" course homepage
And I should see "S1 First Blog ENGLISH"
And I follow "S1 First Blog"
And I should see "This is my awesome blog!"
Scenario: Students only see a few entries in the recent blog entries block
Given I am on the "Course 1" course page logged in as student1
And I follow "Add an entry about this course"
# Blog 1 of 5
And I set the following fields to these values:
| Entry title | S1 First Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I am on "Course 1" course homepage
And I follow "Add an entry about this course"
# Blog 2 of 5
And I set the following fields to these values:
| Entry title | S1 Second Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Second Blog"
And I should see "This is my awesome blog!"
And I am on "Course 1" course homepage
And I follow "Add an entry about this course"
# Blog 3 of 5
And I set the following fields to these values:
| Entry title | S1 Third Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Third Blog"
And I should see "This is my awesome blog!"
And I am on "Course 1" course homepage
And I follow "Add an entry about this course"
# Blog 4 of 5
And I set the following fields to these values:
| Entry title | S1 Fourth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Fourth Blog"
And I should see "This is my awesome blog!"
And I am on "Course 1" course homepage
And I follow "Add an entry about this course"
# Blog 5 of 5
And I set the following fields to these values:
| Entry title | S1 Fifth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I should see "S1 Fifth Blog"
And I should see "This is my awesome blog!"
When I am on "Course 1" course homepage
And I should not see "S1 First Blog"
And I should see "S1 Second Blog"
And I should see "S1 Third Blog"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
And I follow "S1 Fifth Blog"
And I should see "This is my awesome blog!"
Then I log out
And I log in as "teacher1"
And I am on "Course 1" course homepage with editing mode on
And I configure the "Recent blog entries" block
And I set the following fields to these values:
| config_numberofrecentblogentries | 2 |
And I press "Save changes"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
@@ -0,0 +1,102 @@
@block @block_blog_recent
Feature: Feature: Students can use the recent blog entries block to view recent entries on the frontpage
In order to enable the recent blog entries block on the frontpage
As an admin
I can add the recent blog entries block to the frontpage
Background:
Given the following "users" exist:
| username | firstname | lastname | email | idnumber |
| student1 | Student | 1 | student1@example.com | S1 |
And the following "blocks" exist:
| blockname | contextlevel | reference | pagetypepattern | defaultregion |
| blog_recent | System | 1 | site-index | side-pre |
And the following config values are set as admin:
| unaddableblocks | | theme_boost|
And I log in as "admin"
And I am on site homepage
And I turn editing mode on
# TODO MDL-57120 site "Blogs" link not accessible without navigation block.
And I add the "Navigation" block if not present
And I log out
Scenario: Students use the recent blog entries block to view blogs
Given I log in as "student1"
And I am on site homepage
And I click on "Site blogs" "link" in the "Navigation" "block"
And I follow "Add a new entry"
When I set the following fields to these values:
| Entry title | S1 First Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
Then I should see "S1 First Blog"
And I should see "This is my awesome blog!"
And I am on site homepage
And I should see "S1 First Blog"
And I follow "S1 First Blog"
And I should see "This is my awesome blog!"
Scenario: Students only see a few entries in the recent blog entries block
Given I log in as "student1"
And I am on site homepage
And I click on "Site blogs" "link" in the "Navigation" "block"
And I follow "Add a new entry"
# Blog 1 of 5
And I set the following fields to these values:
| Entry title | S1 First Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I follow "Add a new entry"
# Blog 2 of 5
And I set the following fields to these values:
| Entry title | S1 Second Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Second Blog"
And I should see "This is my awesome blog!"
And I follow "Add a new entry"
# Blog 3 of 5
And I set the following fields to these values:
| Entry title | S1 Third Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Third Blog"
And I should see "This is my awesome blog!"
And I follow "Add a new entry"
# Blog 4 of 5
And I set the following fields to these values:
| Entry title | S1 Fourth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I wait "1" seconds
And I should see "S1 Fourth Blog"
And I should see "This is my awesome blog!"
And I follow "Add a new entry"
# Blog 5 of 5
And I set the following fields to these values:
| Entry title | S1 Fifth Blog |
| Blog entry body | This is my awesome blog! |
And I press "Save changes"
And I should see "S1 Fifth Blog"
And I should see "This is my awesome blog!"
When I am on site homepage
And I should not see "S1 First Blog"
And I should see "S1 Second Blog"
And I should see "S1 Third Blog"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
And I follow "S1 Fifth Blog"
And I should see "This is my awesome blog!"
Then I log out
And I log in as "admin"
And I am on site homepage
And I turn editing mode on
And I configure the "Recent blog entries" block
And I set the following fields to these values:
| config_numberofrecentblogentries | 2 |
And I press "Save changes"
And I should see "S1 Fourth Blog"
And I should see "S1 Fifth Blog"
@@ -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;
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 (sara@moodle.com)
* @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));
}
}