MDL-38475 behat: New test
authorDavid Monllao <davidm@moodle.com>
Thu, 14 Mar 2013 06:28:58 +0000 (14:28 +0800)
committerDavid Monllao <davidm@moodle.com>
Wed, 27 Mar 2013 08:47:56 +0000 (16:47 +0800)
According to MDLQA-5, students can choose
from 4 discussion display options and their
choice is remembered.

mod/forum/tests/behat/discussion_display.feature [new file with mode: 0644]

diff --git a/mod/forum/tests/behat/discussion_display.feature b/mod/forum/tests/behat/discussion_display.feature
new file mode 100644 (file)
index 0000000..5d5d77e
--- /dev/null
@@ -0,0 +1,93 @@
+@mod_forum
+Feature: Students can choose from 4 discussion display options and their choice is remembered
+  In order to read forum posts in a suitable view
+  As a moodle user
+  I need to select which display method I want to use
+
+  Background:
+    Given the following "users" exists:
+      | username | firstname | lastname | email |
+      | student1 | Student | 1 | student1@asd.com |
+    And the following "courses" exists:
+      | fullname | shortname | category |
+      | Course 1 | C1 | 0 |
+    And the following "course enrolments" exists:
+      | user | course | role |
+      | student1 | C1 | student |
+    And I log in as "admin"
+    And I follow "Course 1"
+    And I turn editing mode on
+    And I add a "forum" to section "1" and I fill the form with:
+      | Forum name | Test forum name |
+      | Description | Test forum description |
+    And I add a new discussion to "Test forum name" forum with:
+      | Subject | Discussion 1 |
+      | Message | Discussion contents 1, first message |
+    And I reply "Discussion 1" post from "Test forum name" forum with:
+      | Subject | Reply 1 to discussion 1 |
+      | Message | Discussion contents 1, second message |
+    And I add a new discussion to "Test forum name" forum with:
+      | Subject | Discussion 2 |
+      | Message | Discussion contents 2, first message |
+    And I reply "Discussion 2" post from "Test forum name" forum with:
+      | Subject | Reply 1 to discussion 2 |
+      | Message | Discussion contents 2, second message |
+    And I log out
+    And I log in as "student1"
+    And I follow "Course 1"
+
+  @javascript
+  Scenario: Display replies flat, with oldest first
+    Given I reply "Discussion 1" post from "Test forum name" forum with:
+      | Subject | Reply 2 to discussion 1 |
+      | Message | Discussion contents 1, third message |
+    When I select "Display replies flat, with oldest first" from "mode"
+    Then I should see "Discussion contents 1, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 1, second message" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' forumpost ') and not(contains(@class, 'starter'))]" "xpath_element"
+    And I reply "Discussion 2" post from "Test forum name" forum with:
+      | Subject | Reply 2 to discussion 2 |
+      | Message | Discussion contents 2, third message |
+    And the "Display mode" field should match "1" value
+    And I should see "Discussion contents 2, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 2, second message" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' forumpost ') and not(contains(@class, 'starter'))]" "xpath_element"
+
+  @javascript
+  Scenario: Display replies flat, with newest first
+    Given I reply "Discussion 1" post from "Test forum name" forum with:
+      | Subject | Reply 2 to discussion 1 |
+      | Message | Discussion contents 1, third message |
+    When I select "Display replies flat, with newest first" from "mode"
+    Then I should see "Discussion contents 1, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 1, third message" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' forumpost ') and not(contains(@class, 'starter'))]" "xpath_element"
+    And I reply "Discussion 2" post from "Test forum name" forum with:
+      | Subject | Reply 2 to discussion 2 |
+      | Message | Discussion contents 2, third message |
+    And the "Display mode" field should match "-1" value
+    And I should see "Discussion contents 2, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 2, third message" in the "//div[contains(concat(' ', normalize-space(@class), ' '), ' forumpost ') and not(contains(@class, 'starter'))]" "xpath_element"
+
+  @javascript
+  Scenario: Display replies in threaded form
+    Given I follow "Test forum name"
+    And I follow "Discussion 1"
+    When I select "Display replies in threaded form" from "mode"
+    Then I should see "Discussion contents 1, first message"
+    And I should see "Reply 1 to discussion 1" in the "span.forumthread" "css_element"
+    And I follow "Test forum name"
+    And I follow "Discussion 2"
+    And the "Display mode" field should match "2" value
+    And I should see "Discussion contents 2, first message"
+    And I should see "Reply 1 to discussion 2" in the "span.forumthread" "css_element"
+
+  @javascript
+  Scenario: Display replies in nested form
+    Given I follow "Test forum name"
+    And I follow "Discussion 1"
+    When I select "Display replies in nested form" from "mode"
+    Then I should see "Discussion contents 1, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 1, second message" in the "div.indent div.forumpost" "css_element"
+    And I follow "Test forum name"
+    And I follow "Discussion 2"
+    And the "Display mode" field should match "3" value
+    And I should see "Discussion contents 2, first message" in the "div.firstpost.starter" "css_element"
+    And I should see "Discussion contents 2, second message" in the "div.indent div.forumpost" "css_element"