diff --git a/blog/edit.php b/blog/edit.php
index 7ff8333e0ec..686962d4a9f 100644
--- a/blog/edit.php
+++ b/blog/edit.php
@@ -141,14 +141,15 @@ if ($action === 'delete') {
// Output edit mode title.
echo $OUTPUT->heading($strblogs . ': ' . get_string('deleteentry', 'blog'), 2);
+ echo $OUTPUT->confirm(get_string('blogdeleteconfirm', 'blog'),
+ new moodle_url('edit.php', $optionsyes),
+ new moodle_url('index.php', $optionsno));
+
+ echo '
';
// Output the entry.
$entry->prepare_render();
echo $output->render($entry);
- echo '
';
- echo $OUTPUT->confirm(get_string('blogdeleteconfirm', 'blog'),
- new moodle_url('edit.php', $optionsyes),
- new moodle_url('index.php', $optionsno));
echo $OUTPUT->footer();
die;
}
diff --git a/blog/index.php b/blog/index.php
index ddbdf454245..56ab7eb8b91 100644
--- a/blog/index.php
+++ b/blog/index.php
@@ -63,9 +63,9 @@ if ($entryid and !isset($userid)) {
$userid = $entry->userid;
}
-if (isset($userid) && !isset($courseid)) {
+if (isset($userid) && empty($courseid)) {
$context = context_user::instance($userid);
-} else if (isset($courseid) && $courseid != SITEID) {
+} else if (!empty($courseid) && $courseid != SITEID) {
$context = context_course::instance($courseid);
} else {
$context = context_system::instance();
diff --git a/blog/tests/behat/delete.feature b/blog/tests/behat/delete.feature
new file mode 100644
index 00000000000..cd1dd5b4f45
--- /dev/null
+++ b/blog/tests/behat/delete.feature
@@ -0,0 +1,43 @@
+@core @core_blog
+Feature: Delete a blog entry
+ In order to manage my blog entries
+ As a user
+ I need to be able to delete entries I no longer wish to appear
+
+ Background:
+ Given the following "users" exist:
+ | username | firstname | lastname | email |
+ | testuser | Test | User | moodle@example.com |
+ And I log in as "testuser"
+ And I expand "Site pages" node
+ And I follow "Site blogs"
+ 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 expand "Site pages" node
+ And I follow "Site blogs"
+
+ Scenario: Delete blog post results in post deleted
+ Given I follow "Blog post one"
+ And I follow "Delete"
+ And I should see "Delete the blog entry 'Blog post one'?"
+ When I press "Continue"
+ Then I should not see "Blog post one"
+ And I should see "Blog post two"
+
+ Scenario: Delete confirmation screen works and allows cancel
+ Given I follow "Blog post one"
+ When I follow "Delete"
+ Then I should see "Delete the blog entry 'Blog post one'?"
+ And I press "Cancel"
+ And I should see "Blog post one"
+ And I should see "Blog post two"
+