mirror of
https://github.com/moodle/moodle.git
synced 2025-08-04 08:26:37 +02:00
MDL-75084 blog: Implement behat generators
This commit is contained in:
parent
1f6ab2b676
commit
cc68de58d1
4 changed files with 113 additions and 20 deletions
|
@ -9,6 +9,9 @@ Feature: Comment on a blog entry
|
||||||
| username | firstname | lastname | email |
|
| username | firstname | lastname | email |
|
||||||
| testuser | Test | User | moodle@example.com |
|
| testuser | Test | User | moodle@example.com |
|
||||||
| testuser2 | Test2 | User2 | moodle2@example.com |
|
| testuser2 | Test2 | User2 | moodle2@example.com |
|
||||||
|
And the following "core_blog > entries" exist:
|
||||||
|
| subject | body | user |
|
||||||
|
| Blog post from user 1 | User 1 blog post content | testuser |
|
||||||
And I log in as "admin"
|
And I log in as "admin"
|
||||||
And I am on site homepage
|
And I am on site homepage
|
||||||
And I turn editing mode on
|
And I turn editing mode on
|
||||||
|
@ -19,15 +22,6 @@ Feature: Comment on a blog entry
|
||||||
| Page contexts | Display throughout the entire site |
|
| Page contexts | Display throughout the entire site |
|
||||||
And I press "Save changes"
|
And I press "Save changes"
|
||||||
And I log out
|
And I log out
|
||||||
And I log in as "testuser"
|
|
||||||
And I click on "Site pages" "list_item" in the "Navigation" "block"
|
|
||||||
And I click on "Site blogs" "link" in the "Navigation" "block"
|
|
||||||
And I follow "Add a new entry"
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| Entry title | Blog post from user 1 |
|
|
||||||
| Blog entry body | User 1 blog post content |
|
|
||||||
And I press "Save changes"
|
|
||||||
And I log out
|
|
||||||
|
|
||||||
@javascript
|
@javascript
|
||||||
Scenario: Commenting on my own blog entry
|
Scenario: Commenting on my own blog entry
|
||||||
|
|
|
@ -8,6 +8,10 @@ Feature: Delete a blog entry
|
||||||
Given the following "users" exist:
|
Given the following "users" exist:
|
||||||
| username | firstname | lastname | email |
|
| username | firstname | lastname | email |
|
||||||
| testuser | Test | User | moodle@example.com |
|
| testuser | Test | User | moodle@example.com |
|
||||||
|
And the following "core_blog > entries" exist:
|
||||||
|
| subject | body | user |
|
||||||
|
| Blog post one | User 1 blog post content | testuser |
|
||||||
|
| Blog post two | User 1 blog post content | testuser |
|
||||||
And I log in as "admin"
|
And I log in as "admin"
|
||||||
And I am on site homepage
|
And I am on site homepage
|
||||||
And I turn editing mode on
|
And I turn editing mode on
|
||||||
|
@ -19,17 +23,6 @@ Feature: Delete a blog entry
|
||||||
And I press "Save changes"
|
And I press "Save changes"
|
||||||
And I log out
|
And I log out
|
||||||
And I log in as "testuser"
|
And I log in as "testuser"
|
||||||
And I click on "Site blogs" "link" in the "Navigation" "block"
|
|
||||||
And I follow "Add a new entry"
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| Entry title | Blog post one |
|
|
||||||
| Blog entry body | User 1 blog post content |
|
|
||||||
And I press "Save changes"
|
|
||||||
And I follow "Add a new entry"
|
|
||||||
And I set the following fields to these values:
|
|
||||||
| Entry title | Blog post two |
|
|
||||||
| Blog entry body | User 1 blog post content |
|
|
||||||
And I press "Save changes"
|
|
||||||
And I am on site homepage
|
And I am on site homepage
|
||||||
And I click on "Site blogs" "link" in the "Navigation" "block"
|
And I click on "Site blogs" "link" in the "Navigation" "block"
|
||||||
|
|
||||||
|
|
51
blog/tests/generator/behat_core_blog_generator.php
Normal file
51
blog/tests/generator/behat_core_blog_generator.php
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
<?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/>.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Behat data generator for core_blog.
|
||||||
|
*
|
||||||
|
* @package core_blog
|
||||||
|
* @category test
|
||||||
|
* @copyright 2022 Noel De Martin
|
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Behat data generator for core_blog.
|
||||||
|
*
|
||||||
|
* @package core_blog
|
||||||
|
* @category test
|
||||||
|
* @copyright 2022 Noel De Martin
|
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
|
*/
|
||||||
|
class behat_core_blog_generator extends behat_generator_base {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a list of the entities that can be created.
|
||||||
|
*
|
||||||
|
* @return array entity name => information about how to generate.
|
||||||
|
*/
|
||||||
|
protected function get_creatable_entities(): array {
|
||||||
|
return [
|
||||||
|
'entries' => [
|
||||||
|
'singular' => 'entry',
|
||||||
|
'datagenerator' => 'entry',
|
||||||
|
'required' => ['subject', 'body'],
|
||||||
|
'switchids' => ['user' => 'userid'],
|
||||||
|
],
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
55
blog/tests/generator/lib.php
Normal file
55
blog/tests/generator/lib.php
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
<?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/>.
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generator for blog area.
|
||||||
|
*
|
||||||
|
* @package core_blog
|
||||||
|
* @category test
|
||||||
|
* @copyright 2022 Noel De Martin
|
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
|
*/
|
||||||
|
|
||||||
|
defined('MOODLE_INTERNAL') || die();
|
||||||
|
|
||||||
|
require_once($CFG->dirroot . '/blog/locallib.php');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Blog module test data generator class
|
||||||
|
*
|
||||||
|
* @package core_blog
|
||||||
|
* @category test
|
||||||
|
* @copyright 2022 Noel De Martin
|
||||||
|
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
|
||||||
|
*/
|
||||||
|
class core_blog_generator extends component_generator_base {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a blog entry
|
||||||
|
*
|
||||||
|
* @param array $data Entry data.
|
||||||
|
* @return blog_entry Entry instance.
|
||||||
|
*/
|
||||||
|
public function create_entry(array $data = []): blog_entry {
|
||||||
|
$data['publishstate'] = $data['publishstate'] ?? 'site';
|
||||||
|
$data['summary'] = $data['summary'] ?? $data['body'];
|
||||||
|
|
||||||
|
$entry = new blog_entry(null, $data);
|
||||||
|
$entry->add();
|
||||||
|
|
||||||
|
return $entry;
|
||||||
|
}
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue