diff --git a/blog/tests/behat/comment.feature b/blog/tests/behat/comment.feature index 456ac5d77cf..12611e99379 100644 --- a/blog/tests/behat/comment.feature +++ b/blog/tests/behat/comment.feature @@ -9,6 +9,9 @@ Feature: Comment on a blog entry | username | firstname | lastname | email | | testuser | Test | User | moodle@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 am on site homepage And I turn editing mode on @@ -19,15 +22,6 @@ Feature: Comment on a blog entry | Page contexts | Display throughout the entire site | And I press "Save changes" 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 Scenario: Commenting on my own blog entry diff --git a/blog/tests/behat/delete.feature b/blog/tests/behat/delete.feature index 01198204071..dc755dae922 100644 --- a/blog/tests/behat/delete.feature +++ b/blog/tests/behat/delete.feature @@ -8,6 +8,10 @@ Feature: Delete a blog entry Given the following "users" exist: | username | firstname | lastname | email | | 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 am on site homepage And I turn editing mode on @@ -19,17 +23,6 @@ Feature: Delete a blog entry And I press "Save changes" And I log out 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 click on "Site blogs" "link" in the "Navigation" "block" diff --git a/blog/tests/generator/behat_core_blog_generator.php b/blog/tests/generator/behat_core_blog_generator.php new file mode 100644 index 00000000000..3915364d811 --- /dev/null +++ b/blog/tests/generator/behat_core_blog_generator.php @@ -0,0 +1,51 @@ +. + +/** + * 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'], + ], + ]; + } +} diff --git a/blog/tests/generator/lib.php b/blog/tests/generator/lib.php new file mode 100644 index 00000000000..b891f836828 --- /dev/null +++ b/blog/tests/generator/lib.php @@ -0,0 +1,55 @@ +. + +/** + * 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; + } +}