0 features failed of 31 features
0 scenarios failed of 49 scenarios
0 steps failed of 1004


Suite: core_features

Feature: Person reports have been moved to Reports section

In order to make sure admin can still access reports
As an admin
I need to check they correct report is shown

Feature: Create an Institution

In order to create an institution
As an admin I need to go Administration
So I can add an institution

Feature: Configuration changes on "Add an account" page

In order to change configuration settings on the "Add an account" page
As an admin
So I can benefit from the use of different configuration changes

Feature: The admin homepage

Test the forms on the admin homepage
As an admin
So I can make sure I can close/open site or clear cache

Feature: Site admin can send messages to anyone regardless of setting "Messages from other people" to "Do not allow anyone to send me messages"

Feature: The Anonymised pages option


In order to be able to see the (Author's name hidden) link

Feature: Mahara people can change their account settings

As a mahara person
I need to change my account settings
1) person can change account notifications settings
--- a. Person selects "Email" from "New page access"
--- b. Person selects "None" from "Comment"
--- c. Person cannot select "None" from "Message from other people"
--- d. Person cannot select "None" from "System message"

2) Person can change account preferences settings
--- a. Person changes "Password" functionality
--- b. Person changes "Username"
--- c. Person changes "Friends control" to "Nobody may add me as a friend"

Feature: Enabling cookie consent

In order to enable cookie consent
As an admin
I need to be able to enable it via a switch

Feature: Set country as a required profile field

As an admin
I want to set the country field to be required
As a user
I see New Zealand as default option when required to fill in country for profile

Feature: Set a custom landing page on login

In order to show a page other than the default dashboard on person login
As an admin
I can set the custom landing page (uses forum topic page)
As a user
I can see custom page on login

Feature: Required plugins

In order to customise mahara we can turn off/on plugins
As an admin
I check that the plugins are activated/deactivated

Feature: Check footer settings and headings correctly displayed

As an admin I want to know
Given I set the footer headings to be visible
When a user logs in, they see the correct headings.

Feature: Static page image visibility

As a site visitor
I want to see images/logos on the static pages when logged in and not logged in
So I know I am on the right website

Feature: Changing the configuration when adding an institution.

In order to change the way an institution is configured
As an admin
So I can have different settings for each institution

Feature: Create Institution tags

In order to create institution tags
As an admin I need to go to Institution tags page
So I can add institution tags

Feature: Confirm update to the privacy statement template on homepage

and dashboard to encourage institutions to write their own text.

Feature: Creating/Deleting links from the Links and Resources sideblock

As an admin
I need to create and delete both public and private links to both external and internal resources
So I can verify that they are usable

Feature: Limit password attempts to 5 tries

In order to make sure you can't make more than 5 bad password attempts at a time
As an admin/user
So I can prevent dictionary attacks on my passwords

Feature: Notification when a user is about to reach their quota

In order to verify notification when reaching a quota
As an admin create users
So I can change their quota limit and verify notification

Feature: Validating multiple notification settings

Log in as admin and as a regular account holder to confirm default notification options are available in the select box
Secondly, check that the notification types are listed alphabetically

Feature: Profile completion functionality

Site admin sets up profile completion and determines what fields are required
so that the profile completion block will display on dashboard indicating what needs to be completed

Feature: Registration procedure

In order to check that a person can register
As an admin
So people can have access to their Mahara

Feature: Checking specific registered data is being sent

In order to check specific registered data is being sent
As an admin
So I can send this data out

Feature: Required plugins

In order to utilize default Mahara certain required plugins need to be active for the site
As an admin
I check that the plugins are active

Feature: Required social media

In order to make social media profile information required for the site
As an admin
So students have to provide mandatory credentials

Feature: Blocks are Retractable

In order to control page layout
Users should be able to
make blocks retractable if they choose to

Feature: Configuring the site options page

In order to change the configuration settings on the site options page
As an admin
So I can configure the site to the way the client wants

Feature: Creating people and an institution enrolling people and changing their passwords

In order to change passwords successfully
As an admin create accounts and create an institution
So I can log in as those people and change their password successfully

Feature: Configuration on people search page

In order to change the configuration of the people search page
As an admin
So I can benefit from the use of different configurations

Feature: People self deletion requires current password

Feature: Allow page themes

In order to allow an author to use a theme on a page
Enable "People can choose page themes" setting
Log in as a person and confirm it works


Feature: Person reports have been moved to Reports section

In order to make sure admin can still access reports
As an admin
I need to check they correct report is shown

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | instone | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "People search" in "People" from administration menu
  • When I click on "Angela"
  • And I click on "Account settings"
  • Then I should see "Authentication method"
  • And the "Authentication method" select box should contain "Institution One: internal"
  • And the "Authentication method" select box should contain "No Institution: Internal"
  • And the "Authentication method" select box should not contain "Institution Two: internal"
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | instone | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "People search" in "People" from administration menu
  • When I scroll to the base of id "searchresults"
  • And I check "selectusers_2"
  • And I check "selectusers_3"
  • And I click on "Get reports"
  • Then I should see "Account details"
  • And I should see "2 persons selected"

Feature: Create an Institution

In order to create an institution
As an admin I need to go Administration
So I can add an institution

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Settings" in "Institutions" from administration menu
  • And I click on "Add institution"
  • And I fill in the following:

    | Institution name | Institution One |

  • And I enable the switch "Allow institution tags"
  • And I click on "Submit"
  • Then I should see "Institution added successfully"
  • And I select "ldap" from "authlistDummySelect"
  • And I click on "Add" in the "Authentication" "Institutions" property
  • And I wait "1" seconds
  • And I should see "LDAP" in the "Modal header" "Modal" property
  • And I fill in the following:

    | Authority name | Test Authority |
    | Host URL | ldap://ldap.example.com |
    | Contexts | ou=users,o=org;ou=other,o=org |
    | User attribute | cn |

  • And I click on "Submit" in the "#auth_config_submit_container" "css_element"
  • And I click on "Submit" in the "#institution_submit_container" "css_element"
  • And I click on "Edit" in "Institution One" row
  • And I scroll to the base of id "authlistDummySelect"
  • And I click on "Move up"
  • And I click on "Submit"
  • And I click on "Edit" in "Institution One" row
  • And I scroll to the base of id "authlistDummySelect"
  • And I click on "Delete" in "Test Authority" row
  • And I attach the file "Image2.png" to "Logo"
  • And I click on "Submit"
  • And I choose "Tags" in "Institutions" from administration menu
  • And I should see "Institution tags"
  • And I choose "Settings" in "Institutions" from administration menu
  • And I click on "Delete" in "Institution One" row
  • And I click on "Yes"
  • Then I should see "Institution deleted successfully"
  • And I should not see "Tags" in the "Submenu" "Institutions" property

Feature: Configuration changes on "Add an account" page

In order to change configuration settings on the "Add an account" page
As an admin
So I can benefit from the use of different configuration changes

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | StaffA | Kupuh1pa! | StaffA@example.com | Alexei | Staff | instone | internal | staff |
    | SupportAdminB | Kupuh1pa! | SAB@example.com | Betty | Support | instone | internal | supportadmin |

  • Given I log in as "SupportAdminB" with password "Kupuh1pa!"
  • And I choose "People search" from administration menu
  • And I click on "StaffA"
  • And I click on "Log in as this person"
  • And I click on "Become Betty Support again"
  • And I choose "People search" from administration menu
  • And I click on "Alexei"
  • And I click on "Log in as StaffA"
  • And I click on "Become Betty Support again"
  • And I press "usf_submit"
  • Then I should see "Masquerade" in the "Alexei Staff (StaffA)" row
  • And I click on "Masquerade" in "Alexei Staff (StaffA)" row
  • And I click on "Become Betty Support again"
  • And I log out
  • Given I log in as "StaffA" with password "Kupuh1pa!"
  • And I choose "People search" from administration menu
  • And I click on "Betty"
  • Then I should not see "Log in as SupportAdminB"
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | StaffA | Kupuh1pa! | StaffA@example.com | Alexei | Staff | instone | internal | staff |
    | SupportAdminB | Kupuh1pa! | SAB@example.com | Betty | Support | instone | internal | supportadmin |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Add an account" from administration menu
  • And I set the following fields to these values:

    | First name | Bob |
    | Last name | One |
    | Email | UserB@example.com |
    | Username | instadmin |
    | password | Kupuh1pa! |
    | Institution administrator | 1 |

  • And I select "Institution One" from "adduser_authinstance"
  • And I scroll to the top
  • And I click on "General account options"
  • And I set the following fields to these values:

    | Multiple journals | 1 |

  • And I click on "×" in the "Options dialog" "Modal" property
  • And I click on "Create account"
  • Then I should see "New account created successfully"
  • And I expand "Institution settings - Institution One" node
  • And the field "Institution administrator" matches value "1"
  • And I should see "Log in as this person"
  • And I click on "Log in as this person"
  • And I should see "You are required to change your password before you can proceed."
  • And I click on "log in anyway"
  • And I choose "People search" from administration menu
  • And I click on "Bob"
  • And I wait "1" seconds
  • And I should see "Administrator of Institution One"
  • And I click on "Show administration menu"
  • And I should see "Groups" in the "Administration menu" "Nav" property
  • And I should not see "Extensions" in the "Administration menu" "Nav" property
  • And I choose "Journals" in "Create" from main menu
  • And I should see "Create journal"
  • And I log out
  • And I should see "You have been logged out successfully"
  • Given I log in as "StaffA" with password "Kupuh1pa!"
  • And I click on "Show administration menu"
  • And I should see "Reports" in the "Administration menu" "Nav" property
  • And I should not see "Groups" in the "Administration menu" "Nav" property
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | StaffA | Kupuh1pa! | StaffA@example.com | Alexei | Staff | instone | internal | staff |
    | SupportAdminB | Kupuh1pa! | SAB@example.com | Betty | Support | instone | internal | supportadmin |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Add or update accounts by CSV" in "People" from administration menu
  • And I attach the file "50users_new.csv" to "CSV file"
  • And I select "Institution One" from "uploadcsv_authinstance"
  • And I click on "Add or update accounts" in the "CSV submit" "Misc" property
  • Then I should see "Your CSV file was processed successfully"
  • And I should see "New accounts added: 50."
  • And I choose "Add or update accounts by CSV" in "People" from administration menu
  • And I attach the file "20users_update.csv" to "CSV file"
  • And I select "Institution One" from "uploadcsv_authinstance"
  • And I enable the switch "Update accounts"
  • And I click on "Add or update accounts" in the "CSV submit" "Misc" property
  • Then I should see "Your CSV file was processed successfully"
  • And I should see "Accounts updated: 20."
  • And I log out
  • Given I log in as "person0005" with password "cH@ngeme3"
  • And I should see "You are required to change your password before you can proceed."
  • And I fill in "New password" with "dr@Gon123"
  • And I fill in "Confirm password" with "dr@Gon123"
  • And I click on "Submit"
  • And I should see "Your new password has been saved"
  • And I choose "Profile" from account menu
  • And the "Student ID" field should contain "64000005"
  • And I click on "Contact information"
  • And the "Town" field should contain "Stewarts River"
  • And the "Mobile phone" field should contain "0491 570 110"
  • And I scroll to the center of id "profileform"
  • And I click on "General"
  • And the "Occupation" field should contain "Minister for Māori Development"
  • And I log out
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "People search" in "People" from administration menu
  • And I click on "person0005"
  • And I click on "Suspend or delete this account"
  • And I scroll to the id "delete"
  • And I press and confirm "Delete account"
  • And I should see "Account deleted successfully"
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | StaffA | Kupuh1pa! | StaffA@example.com | Alexei | Staff | instone | internal | staff |
    | SupportAdminB | Kupuh1pa! | SAB@example.com | Betty | Support | instone | internal | supportadmin |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Add or update accounts by CSV" in "People" from administration menu
  • And I attach the file "7usersnew-errors.csv" to "CSV file"
  • And I select "Institution One" from "uploadcsv_authinstance"
  • And I click on "Add or update accounts" in the "CSV submit" "Misc" property
  • Then I should see "There was an error with submitting this form. Please check the marked fields and try again."
  • And I should see "Error on line 2: The expiry \"today\" cannot be in the past."
  • And I should see "Error on line 3: The expiry \"2025-01--30\" is invalid. Please use a valid date format."
  • And I should see "Error on line 4: The expiry \"2025/01-29\" is invalid. Please use a valid date format."
  • And I should see "Error on line 5: The expiry \"Marych 27, 2025\" is invalid. Please use a valid date format."
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |
    | insttwo | Institution Two | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | StaffA | Kupuh1pa! | StaffA@example.com | Alexei | Staff | instone | internal | staff |
    | SupportAdminB | Kupuh1pa! | SAB@example.com | Betty | Support | instone | internal | supportadmin |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Add or update accounts by CSV" in "People" from administration menu
  • And I attach the file "7usersnew-correctdates.csv" to "CSV file"
  • And I select "Institution One" from "uploadcsv_authinstance"
  • And I click on "Add or update accounts" in the "CSV submit" "Misc" property
  • Then I should see "Your CSV file was processed successfully."
  • And I should see "New accounts added: 6."

Feature: The admin homepage

Test the forms on the admin homepage
As an admin
So I can make sure I can close/open site or clear cache

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Overview" from administration menu
  • And I should see "Site registration"
  • And I scroll to the base of id "close_site"
  • And I click on "Close"
  • And I should see "Reopen site"
  • And I scroll to the base of id "close_site"
  • And I click on "Open"
  • And I should see "Close site"
  • And I scroll to the base of id "clear_caches"
  • And I click on "Clear caches"
  • And I should see "All caches were cleared"

Feature: Site admin can send messages to anyone regardless of setting "Messages from other people" to "Do not allow anyone to send me messages"

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | instone | internal | admin |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | staff |
    | UserC | Kupuh1pa! | UserC@example.org | Carol | User | instone | internal | member |
    | UserD | Kupuh1pa! | UserD@example.org | Dave | User | instone | internal | member |

  • And the following site settings are set:

    | field | value |
    | isolatedinstitutions | 1 |

  • Given I log in as "UserD" with password "Kupuh1pa!"
  • And I choose "Preferences" in "Settings" from account menu
  • When I scroll to the base of id "accountprefs_messages_container"
  • And I set the following fields to these values:

    | Do not allow anyone to send me messages | 1 |

  • And I click on "Save"
  • Then I should see "Preferences saved"
  • And I log out
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "People search" in "People" from administration menu
  • When I click on "Dave"
  • Then I should see "Send message"
  • When I choose "People" in "Engage" from main menu
  • Then I should see "Send message" in the "Dave User (UserD)" row
  • And I log out
  • Given I log in as "UserC" with password "Kupuh1pa!"
  • When I choose "People" in "Engage" from main menu
  • When I click on "Dave"
  • Then I should not see "Send message"
  • And I log out

Feature: The Anonymised pages option


In order to be able to see the (Author's name hidden) link

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | mahara | internal | member |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page UserA_01 | Page 01 | user | UserA |

  • And the following "blocks" exist:

    | title | type | page | retractable | updateonly | data |
    | Portfolios shared with me | newviews | Dashboard page: admin | no | yes | limit=5;user=1;friend=1;group=1;loggedin=1;public=1 |
    | Portfolios shared with me | newviews | Dashboard page: UserA | no | yes | limit=5;user=1;friend=1;group=1;loggedin=1;public=1 |
    | Portfolios shared with me | newviews | Dashboard page: UserB | no | yes | limit=5;user=1;friend=1;group=1;loggedin=1;public=1 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I go to "admin/site/options.php"
  • And I click on "Account settings"
  • And I set the following fields to these values:

    | Allow anonymous pages | 1 |

  • And I click on "Update site options"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Portfolios" in "Create" from main menu
  • And I click on "Page UserA_01"
  • And I click on "Edit"
  • And I click on "Settings" in the "Toolbar buttons" "Nav" property
  • And I set the following fields to these values:

    | Anonymise | 1 |

  • And I click on "Save"
  • And I click on "Share" in the "Toolbar buttons" "Nav" property
  • And I select "Registered people" from "accesslist[0][searchtype]"
  • And I click on "Save"
  • And I log out
  • Given I log in as "UserB" with password "Kupuh1pa!"
  • And I am on homepage
  • And I scroll to the id 'bottom-pane'
  • Then I should see "(Author's name hidden)"
  • And I log out
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I am on homepage
  • Then should see "(Author's name hidden)"
  • And I click on "(Author's name hidden)"
  • Then I should see "UserA"

Feature: Mahara people can change their account settings

As a mahara person
I need to change my account settings
1) person can change account notifications settings
--- a. Person selects "Email" from "New page access"
--- b. Person selects "None" from "Comment"
--- c. Person cannot select "None" from "Message from other people"
--- d. Person cannot select "None" from "System message"

2) Person can change account preferences settings
--- a. Person changes "Password" functionality
--- b. Person changes "Username"
--- c. Person changes "Friends control" to "Nobody may add me as a friend"

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Notifications" in "Settings" from account menu
  • And I select "Email" from "activity_viewaccess"
  • And I select "Inbox" from "Comment"
  • And I select "None" from "Feedback on annotations"
  • And I select "Inbox" from "Group message"
  • And I select "Email digest" from "Institution message"
  • And I select "Inbox" from "Message from other people"
  • And "None" "option" in the "Message from other people" "Account" property should not be visible
  • And "None" "option" in the "System message" "Account" property should not be visible
  • And I select "Email" from "New forum post"
  • And I select "Email digest" from "Peer assessment"
  • And I select "Inbox" from "System message"
  • And I select "Inbox" from "Wall post"
  • And I select "Inbox" from "Watchlist"
  • When I click on "Save"
  • And I should see "Preferences saved"
  • And I should not see "Delete account"
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • When I choose "Preferences" in "Settings" from account menu
  • Then I should see "Preferences" in the "Page heading" "Common" property
  • And I should see "New password" in the "Preferences heading 1" "Account" property
  • When I fill in "Current password" with "Kupuh1pa!"
  • And I fill in "New password" with "Password123!"
  • And I fill in "Confirm password" with "Password123!"
  • And I click on "Save"
  • Then I should see "Preferences saved"
  • And I should see "Change username" in the "Preferences heading 2" "Account" property
  • When I fill in "New username" with "UserAA"
  • And I click on "Save"
  • Then I should see "There was an error with submitting this form. Please check the marked fields and try again."
  • And I fill in "Password123!" for "accountprefs_oldpasswordchangeuser"
  • And I click on "Save"
  • And I should see "Preferences saved"
  • And a "Friends control radio" "Account" property should exist
  • And I click on "Save"
  • Then I should see "Preferences saved"

Feature: Enabling cookie consent

In order to enable cookie consent
As an admin
I need to be able to enable it via a switch

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Cookie Consent" in "Configure site" from administration menu
  • And I set the following fields to these values:

    | Enable Cookie Consent | 1 |

  • And I click on "Save changes"
  • And I should see "Cookie Consent enabled"
  • And I should see "Got it!"

Feature: Set country as a required profile field

As an admin
I want to set the country field to be required
As a user
I see New Zealand as default option when required to fill in country for profile

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I expand all fieldsets
  • Then I should see "No country selected"
  • When I choose "Plugin administration" in "Extensions" from administration menu
  • And I click on "Configuration for artefact Profile"
  • And I click on the "Country mandatory field" "Profile" property
  • And I click on "Save"
  • And I log out
  • When I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "Fields marked by '*' are required."
  • And I should see "New Zealand"
  • When I click on "Submit"
  • Then I should see "Required profile fields set"

Feature: Set a custom landing page on login

In order to show a page other than the default dashboard on person login
As an admin
I can set the custom landing page (uses forum topic page)
As a user
I can see custom page on login

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And the following "groups" exist:

    | name | owner | description | grouptype | open | invitefriends | editroles | submittableto | allowarchives | members | public |
    | GroupX | admin | GroupX owned by admin | standard | ON | ON | all | ON | ON | UserA | 1 |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page admin_01 | This is the landing page | user | admin |

  • And the following "permissions" exist:

    | title | accesstype | accessname | allowcomments | approvecomments |
    | Page admin_01 | loggedin | loggedin | 0 | 0 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" from administration menu
  • And I expand the section "Site settings"
  • And I enable the switch "Custom landing page"
  • When I fill in select2 input "siteoptions_homepageredirecturl" with "General" and select "General discussion (GroupX)"
  • And I click on "Update site options"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "GroupX general discussion forum"
  • And I log out
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" from administration menu
  • And I expand the section "Site settings"
  • And I clear value "General discussion (GroupX)" from select2 field "siteoptions_homepageredirecturl"
  • When I fill in select2 input "siteoptions_homepageredirecturl" with "Page admin_01" and select "Page admin_01 (Admin Account)"
  • And I click on "Update site options"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • Then I should not see "This is the landing page"
  • And I log out
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" from administration menu
  • And I expand the section "Site settings"
  • And I disable the switch "Custom landing page"
  • And I click on "Update site options"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "Edit dashboard"
  • And I log out

Feature: Required plugins

In order to customise mahara we can turn off/on plugins
As an admin
I check that the plugins are activated/deactivated

  • Given the following plugins are set:

    | plugintype | plugin | value |
    | blocktype | annotation | 0 |
    | artefact | plans | 0 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Plugin administration" in "Extensions" from administration menu
  • Then I should see "Show" in the "annotation/annotation" row
  • Then I should see "Show" in the "plans " row
  • Then I should see "Show" in the "plans/plans" row
  • Given the following plugins are set:

    | plugintype | plugin | value |
    | artefact | plans | 1 |

  • Then I should see "Hide" in the "plans " row
  • Then I should see "Hide" in the "plans/plans" row

Feature: Check footer settings and headings correctly displayed

As an admin I want to know
Given I set the footer headings to be visible
When a user logs in, they see the correct headings.

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I click on "Legal" in the "Footer" "Footer" property
  • And I should see "Displayed are the current privacy statements and terms and conditions."
  • And I am on homepage
  • And I click on "About"
  • And I am on homepage
  • And I click on "Contact us"
  • And I am on homepage
  • And I click on "Help"
  • And I switch to the main window
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Menus" in "Configure site" from administration menu
  • And I disable the following switches:

    | Legal |
    | About |
    | Contact us |
    | External manual |

  • And I click on "Save changes"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I should not see "Legal"
  • And I should not see "About"
  • And I should not see "Contact us"
  • And I should not see "External manual"

Feature: Static page image visibility

As a site visitor
I want to see images/logos on the static pages when logged in and not logged in
So I know I am on the right website

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | admin |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Files" in "Create" from main menu
  • And I attach the file "Image2.png" to "files_filebrowser_userfile"
  • And I am on "admin/site/pages.php"
  • And I select "Home (Dashboard)" from "pagename"
  • When I click the "Insert/edit image" button in the editor
  • And I expand the section "Image"
  • And I wait "1" seconds
  • And I click on "Select \"Image2.png\""
  • And I click on "Submit"
  • And I wait "1" seconds
  • And I click on "Save changes"
  • And I choose "Dashboard" from main menu
  • Then I should see image 'Image2.png' on the page
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | admin |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Files" in "Create" from main menu
  • And I attach the file "Image2.png" to "files_filebrowser_userfile"
  • And I am on "admin/site/pages.php"
  • And I select "Logged-out home" from "pagename"
  • When I click the "Insert/edit image" button in the editor
  • And I expand the section "Image"
  • And I wait "1" seconds
  • And I click on "Select \"Image2.png\""
  • And I click on "Submit"
  • And I wait "1" seconds
  • And I click on "Save changes"
  • And I log out
  • And I am on homepage
  • Then I should see image 'Image2.png' on the page

Feature: Changing the configuration when adding an institution.

In order to change the way an institution is configured
As an admin
So I can have different settings for each institution

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm | theme |
    | instone | Institution One | ON | OFF | maroon |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.com | Angela | User | instone | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Settings" in "Institutions" from administration menu
  • And I click on "Add institution"
  • And I set the following fields to these values:

    | Institution name * | Team Awesome |
    | First name | 1 |
    | Last name | 1 |
    | Student ID | 1 |
    | Display name | 1 |
    | Introduction | 1 |
    | Email address | 1 |
    | Official website address | 1 |
    | Personal website address | 1 |
    | Blog address | 1 |
    | Postal address | 1 |
    | Town | 1 |
    | City/region | 1 |
    | Country | 1 |
    | Home phone | 1 |
    | Business phone | 1 |
    | Mobile phone | 1 |
    | Fax number | 1 |
    | Occupation | 1 |
    | Industry | 1 |
    | Email disabled | 1 |
    | Social media | 1 |

  • And I click on "Submit"
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm | theme |
    | instone | Institution One | ON | OFF | maroon |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.com | Angela | User | instone | internal | member |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • Then "/theme/maroon/images/site-logo" should be in the "Logo" "Header" property

Feature: Create Institution tags

In order to create institution tags
As an admin I need to go to Institution tags page
So I can add institution tags

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm | tags |
    | instone | Institution One | ON | OFF | 1 |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | instone | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | admin |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page UserA_01 | Page 01 | user | UserA |
    | Page InstOne_01 | Page | institution | instone |

  • And the following "journals" exist:

    | owner | ownertype | title | description | tags |
    | UserA | user | Mars journal | My Mars Mission | Mars |

  • And the following "journalentries" exist:

    | owner | ownertype | title | entry | blog | tags | draft |
    | UserA | user | Mars party | I just landed on Mars, mission success | Mars journal | Mars | 0 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Tags" in "Institutions" from administration menu
  • And I click on "Create tag"
  • And I set the field "Institution tag" to "One tag"
  • And I click on "Save"
  • Then I should see "Institution tag saved"
  • And I click on "Create tag"
  • And I set the field "Institution tag" to "Two tag"
  • And I click on "Save"
  • And I click on "Delete institution tag" in "Two tag" row
  • Then I should see "Institution tag deleted successfully"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Journals" in "Create" from main menu
  • And I click on "Mars journal"
  • And I click on "Edit" in "Mars party" row
  • And I fill in select2 input "editpost_tags" with "One tag" and select "Institution One: One tag"
  • And I click on "Save entry"
  • Given I choose "Portfolios" in "Create" from main menu
  • And I click on "Edit" in "Page UserA_01" card menu
  • And I click on "Settings" in the "Toolbar buttons" "Nav" property
  • And I fill in select2 input "settings_tags" with "One tag" and select "Institution One: One tag (1)"
  • And I fill in select2 input "settings_tags" with "Test" and select "Test"
  • And I click on "Save"
  • When I click on the add block button
  • And I click on "Add"
  • And I click on blocktype "Tagged journal entries"
  • And I fill in select2 input "instconf_tagselect" with "One tag" and select "Institution One: One tag"
  • And I click on "Save"
  • And I wait "1" seconds
  • Then I should see "Journal entries with tag \"Institution One: One tag\""
  • And I display the page
  • Then I should see "Institution One: One tag"
  • Given I choose "Files" in "Create" from main menu
  • And I attach the file "Image2.png" to "files_filebrowser_userfile"
  • And I click on "Edit" in "Image2.png" row
  • And I fill in select2 input "files_filebrowser_edit_tags" with "One tag" and select "Institution One: One tag (2)"
  • And I fill in select2 input "files_filebrowser_edit_tags" with "Image" and select "Image"
  • And I click on "Save changes"
  • Given I choose "Portfolios" in "Create" from main menu
  • And I click on "Tags" in the "Tags block" "Blocks" property
  • And I click on "Edit tags"
  • Then I should see "Test" in the "My tags list" "Tags" property
  • Then I should not see "Institution One: One tag" in the "My tags list" "Tags" property
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm | tags |
    | instone | Institution One | ON | OFF | 1 |

  • And the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | instone | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | admin |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page UserA_01 | Page 01 | user | UserA |
    | Page InstOne_01 | Page | institution | instone |

  • And the following "journals" exist:

    | owner | ownertype | title | description | tags |
    | UserA | user | Mars journal | My Mars Mission | Mars |

  • And the following "journalentries" exist:

    | owner | ownertype | title | entry | blog | tags | draft |
    | UserA | user | Mars party | I just landed on Mars, mission success | Mars journal | Mars | 0 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Tags" in "Institutions" from administration menu
  • And I click on "Create tag"
  • And I set the field "Institution tag" to "One tag"
  • And I click on "Save"
  • Then I should see "Institution tag saved"
  • And I click on "Create tag"
  • And I set the field "Institution tag" to "Two tag"
  • And I click on "Save"
  • And I click on "Delete institution tag" in "Two tag" row
  • Then I should see "Institution tag deleted successfully"
  • And I log out
  • Given I log in as "UserB" with password "Kupuh1pa!"
  • And I choose "Portfolios" in "Institutions" from administration menu
  • And I click on "Create" in the "Create" "Views" property
  • And I click on "Page" in the dialog
  • And I fill in the following:

    | Page title | Test view |

  • And I fill in "First description" in first editor
  • And I fill in select2 input "settings_tags" with "One" and select "Institution One: One tag"
  • And I click on "Save"
  • When I click on the add block button
  • And I click on "Add" in the "Add new block" "Blocks" property
  • And I click on blocktype "Text"
  • And I set the field "Block title" to "Text Block 1"
  • And I set the field "Block content" to "Here is a new block."
  • And I fill in select2 input "instconf_tags" with "One" and select "Institution One: One tag"
  • And I click on "Save"
  • And I go to portfolio page "Test view"
  • Then I should see "Institution One: One tag"

Feature: Confirm update to the privacy statement template on homepage

and dashboard to encourage institutions to write their own text.

  • Given I log in as "admin" with password "Kupuh1pa!"
  • When I choose "Legal" in "Settings" from account menu
  • Then I should see "Displayed are the current privacy statements and terms and conditions."
  • And I should see "Add your privacy statement for the site in \"Administration menu\" → \"Configure site\""
  • And I click on the "First Legal" "Legal" property
  • And I should see "Edit the privacy statement for the entire site. The version you edited last becomes the current privacy statement automatically."
  • And I move backward one page
  • And I should see "Add your terms and conditions for the site in \"Administration menu\" → \"Configure site\""
  • And I move forward one page
  • And I click on the "Privacy statement Edit icon" "Legal" property
  • And I fill in "Version" with "V2.0"
  • And I fill in "V 2.0 privacy statement for the site " in first editor
  • And I click on "Save changes"
  • Then I should see "V2.0" in the "Admin Account" row
  • And I should see "1.0" in the "System User" row
  • And I wait "1" seconds
  • And I should see "Page saved"
  • When I click on "Terms and conditions"
  • And I click on the "Terms and conditions Edit icon" "Legal" property
  • And I fill in "Version" with "V2.0"
  • And I fill in "V 2.0 terms and conditions for the site" in first editor
  • And I click on "Save changes"
  • Then I should see "V2.0" in the "Admin Account" row
  • And I should see "1.0" in the "System User" row
  • And I should see "Page saved"
  • When I click on "Legal" in the "Footer menu" "Footer" property
  • And I should see "V 2.0 terms and conditions for the site"
  • Then I should see "V 2.0 privacy statement for the site"

Feature: Creating/Deleting links from the Links and Resources sideblock

As an admin
I need to create and delete both public and private links to both external and internal resources
So I can verify that they are usable

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Menus" in "Configure site" from administration menu
  • When I select "Logged-in links and resources" from "Edit"
  • And I fill in "namenew" with "Dashboard: test external resource link"
  • And I fill in "linkedtonew" with "https://mahara.org/"
  • And I click on "Add" in the "Menus" "Administration" property
  • Then I should see "Item saved"
  • When I select "Public links and resources" from "Edit"
  • And I fill in "namenew" with "Homepage: test external resource link"
  • And I fill in "linkedtonew" with "https://mahara.org/"
  • And I click on "Add" in the "Menus" "Administration" property
  • Then I should see "Item saved"
  • When I choose "Dashboard" from main menu
  • Then I should see "Dashboard: test external resource link"
  • And I should not see "Homepage: test external resource link"
  • When I log out
  • Then I should see "Homepage: test external resource link"
  • And I should not see "Dashboard: test external resource link"
  • When I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Menus" in "Configure site" from administration menu
  • And I select "Logged-in links and resources" from "Edit"
  • And I delete the link and resource menu item "Dashboard: test external resource link"
  • Then I should see "Item deleted"
  • When I select "Public links and resources" from "Edit"
  • And I delete the link and resource menu item "Homepage: test external resource link"
  • Then I should see "Item deleted"
  • When I choose "Dashboard" from main menu
  • Then I should not see "Dashboard: test external resource link"
  • When I log out
  • Then I should not see "Homepage: test external resource link"
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Files" in "Configure site" from administration menu
  • And I attach the file "testvid3.mp4" to "File"
  • And I click on "public"
  • And I attach the file "mahara_about.pdf" to "File"
  • When I choose "Menus" in "Configure site" from administration menu
  • And I select "Public links and resources" from "Edit"
  • And I set the following fields to these values:

    | Site file | 1 |

  • Then the "linkedtonew" select box should contain "mahara_about.pdf"
  • And the "linkedtonew" select box should not contain "testvid3.mp4"
  • When I fill in "namenew" with "Homepage: test file resource link"
  • And I click on "Add" in the "Menus" "Administration" property
  • Then I should see "Item saved"
  • When I select "Logged-in links and resources" from "Edit"
  • And I set the following fields to these values:

    | Site file | 1 |

  • Then the "linkedtonew" select box should not contain "mahara_about.pdf"
  • And the "linkedtonew" select box should contain "testvid3.mp4"
  • When I fill in "namenew" with "Dashboard: test file resource link"
  • And I click on "Add" in the "Menus" "Administration" property
  • Then I should see "Item saved"
  • When I choose "Dashboard" from main menu
  • Then I should see "Dashboard: test file resource link"
  • And I should not see "Homepage: test file resource link"
  • When I log out
  • Then I should see "Homepage: test file resource link"
  • And I should not see "Dashboard: test file resource link"
  • When I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Menus" in "Configure site" from administration menu
  • And I select "Logged-in links and resources" from "Edit"
  • And I delete the link and resource menu item "Dashboard: test file resource link"
  • Then I should see "Item deleted"
  • When I select "Public links and resources" from "Edit"
  • And I delete the link and resource menu item "Homepage: test file resource link"
  • Then I should see "Item deleted"
  • When I choose "Dashboard" from main menu
  • Then I should not see "Dashboard: test file resource link"
  • When I log out
  • Then I should not see "Homepage: test file resource link"
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Journals" in "Configure site" from administration menu
  • And I click on "Create journal"
  • And I fill in "Title" with "Site blog"
  • And I click on "Create journal"
  • When I choose "Files" in "Configure site" from administration menu
  • And I attach the file "Image1.jpg" to "File"
  • And I choose "Menus" in "Configure site" from administration menu
  • And I select "Logged-in links and resources" from "Edit"
  • And I scroll to the base of id "type_new_sitefile"
  • And I set the following fields to these values:

    | Site file | 1 |

  • Then the "linkedtonew" select box should not contain "Site blog"
  • And I click on "Add" in the "Menus" "Administration" property

Feature: Limit password attempts to 5 tries

In order to make sure you can't make more than 5 bad password attempts at a time
As an admin/user
So I can prevent dictionary attacks on my passwords

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And I am on homepage
  • And I click on "Lost username / password"
  • When I log in as "UserA" with password "wrongpassword"
  • Then I should see "You have not provided the correct credentials to log in. Please check your username and password are correct."
  • And I should see "You are unable to login"
  • And I log in as "UserA" with password "wrongpassword"
  • And I log in as "UserA" with password "wrongpassword"
  • And I log in as "UserA" with password "wrongpassword"
  • And I log in as "UserA" with password "wrongpassword"
  • Then I should not see "You have exceeded the maximum login attempts."
  • And I should see "Login"
  • When I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "You have exceeded the maximum login attempts."
  • And I should see "Login"
  • When I trigger the cron
  • And I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "Dashboard"
  • And I log out
  • And I am on homepage
  • And I click on "Lost username / password"
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And I am on homepage
  • And I click on "Lost username / password"
  • When I fill in "Email address or username" with "UserA@example.org"
  • And I click on "Send request"
  • Then I should see "You should receive an email shortly with a link that you can use to change the password for your account."
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And I am on homepage
  • And I click on "Lost username / password"
  • When I fill in "Email address or username" with "UserA"
  • And I click on "Send request"
  • Then I should see "You should receive an email shortly with a link that you can use to change the password for your account."
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And I am on homepage
  • And I click on "Lost username / password"
  • When I fill in "Email address or username" with "nosuchuser"
  • And I click on "Send request"
  • Then I should see "If you do not receive an email, either the details you entered are incorrect or you normally use external authentication to access the site"
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And I am on homepage
  • And I click on "Lost username / password"
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Preferences" in "Settings" from account menu
  • And I fill in "Current password" with "Kupuh1pa!"
  • And I fill in "New password" with "abc123"
  • And I fill in "Confirm password" with "abc123"
  • And I click on "Save"
  • And I should see "Password must be at least 8 characters long"
  • And I fill in "Current password" with "Kupuh1pa!"
  • And I fill in "New password" with "P@ssw0rd"
  • And I fill in "Confirm password" with "P@ssw0rd"
  • And I click on "Save"
  • Then I should see "Your password is too easy"
  • And I log out

Feature: Notification when a user is about to reach their quota

In order to verify notification when reaching a quota
As an admin create users
So I can change their quota limit and verify notification

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I go to the "artefact" plugin "file" configuration "file" type
  • And I click on "Default account quota"
  • And I fill in "Default quota" with "2"
  • And I enable the switch "Update account quotas"
  • And I fill in "Quota notification threshold" with "50"
  • And I click on "Save"
  • And I should see "Settings saved"
  • And I log out
  • When I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Files" in "Create" from main menu
  • And I should see "You have used 0.0MB of your 2.0MB quota."
  • When I fill in "Folder1" for "files_filebrowser_createfolder_name"
  • And I click on "Create folder"
  • And I click on "Folder1"
  • And I attach the file "Image1.jpg" to "File"
  • And I attach the file "Image2.png" to "File"
  • And I attach the file "Image3.png" to "File"
  • And I click on "Parent folder"
  • Then I should see "1.5M"
  • And I should see "You have used 1.5MB of your 2.0MB quota."
  • And I am on homepage
  • And I choose inbox
  • And I should see "Your file storage is almost full"

Feature: Validating multiple notification settings

Log in as admin and as a regular account holder to confirm default notification options are available in the select box
Secondly, check that the notification types are listed alphabetically

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I click on "Notification settings"
  • And the "System message" field should not contain "None"
  • And the "Message from other people" field should not contain "None"
  • And I select "Email" from "Contact us"
  • And I select "Email digest" from "Contact us"
  • And I select "Inbox" from "Contact us"
  • And I select "None" from "Contact us"
  • And I select "Email" from "Objectionable content"
  • And I select "Email digest" from "Objectionable content"
  • And I select "Inbox" from "Objectionable content"
  • And I select "None" from "Objectionable content"
  • And I select "Email" from "Repeat virus upload"
  • And I select "Email digest" from "Repeat virus upload"
  • And I select "Inbox" from "Repeat virus upload"
  • And I select "None" from "Repeat virus upload"
  • And I select "Email" from "Virus flag release"
  • And I select "Email digest" from "Virus flag release"
  • And I select "Inbox" from "Virus flag release"
  • And I select "None" from "Virus flag release"
  • And I select "Email" from "Objectionable content in forum"
  • And I select "Email digest" from "Objectionable content in forum"
  • And I select "Inbox" from "Objectionable content in forum"
  • And I select "None" from "Objectionable content in forum"
  • And I click on "Update site options"
  • And I log out
  • Then I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Notifications" in "Settings" from account menu
  • And the "System message" field should not contain "None"
  • And the "Message from other people" field should not contain "None"
  • And the "System message" field should not contain "None"
  • And I select "Email" from "System message"
  • And I select "Email digest" from "System message"
  • And I select "Inbox" from "System message"
  • And I select "Email" from "Message from other people"
  • And I select "Email digest" from "Message from other people"
  • And I select "Inbox" from "Message from other people"
  • And I select "Email" from "Watchlist"
  • And I select "Email digest" from "Watchlist"
  • And I select "Inbox" from "Watchlist"
  • And I select "None" from "Watchlist"
  • And I select "Email" from "New page access"
  • And I select "Email digest" from "New page access"
  • And I select "Inbox" from "New page access"
  • And I select "None" from "New page access"
  • And I select "Email" from "Institution message"
  • And I select "Email digest" from "Institution message"
  • And I select "Inbox" from "Institution message"
  • And I select "None" from "Institution message"
  • And I select "Email" from "Group message"
  • And I select "Email digest" from "Group message"
  • And I select "Inbox" from "Group message"
  • And I select "None" from "Group message"
  • And I select "Email" from "Comment"
  • And I select "Email digest" from "Comment"
  • And I select "Inbox" from "Comment"
  • And I select "None" from "Comment"
  • And I select "Email" from "New forum post"
  • And I select "Email digest" from "New forum post"
  • And I select "Inbox" from "New forum post"
  • And I select "None" from "New forum post"
  • And I click on "Save"
  • And I should see "Preferences saved"
  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I click on "Notification settings"
  • And "Comment" "text" should appear before "Contact us" "text" within the "Notification settings" "Siteoptions" property
  • And "Contact us" "text" should appear before "Feedback on annotations" "text" within the "Notification settings" "Siteoptions" property
  • And "Feedback on annotations" "text" should appear before "Group message" "text" within the "Notification settings" "Siteoptions" property
  • And "Group message" "text" should appear before "Institution message" "text" within the "Notification settings" "Siteoptions" property
  • And "Institution message" "text" should appear before "Message from other people" "text" within the "Notification settings" "Siteoptions" property
  • And "Message from other people" "text" should appear before "New forum post" "text" within the "Notification settings" "Siteoptions" property
  • And "New forum post" "text" should appear before "New page access" "text" within the "Notification settings" "Siteoptions" property
  • And "New page access" "text" should appear before "Objectionable content" "text" within the "Notification settings" "Siteoptions" property
  • And "Objectionable content" "text" should appear before "Objectionable content in forum" "text" within the "Notification settings" "Siteoptions" property
  • And "Objectionable content in forum" "text" should appear before "Repeat virus upload" "text" within the "Notification settings" "Siteoptions" property
  • And "Repeat virus upload" "text" should appear before "System message" "text" within the "Notification settings" "Siteoptions" property
  • And "System message" "text" should appear before "Virus flag release" "text" within the "Notification settings" "Siteoptions" property
  • And "Virus flag release" "text" should appear before "Wall post" "text" within the "Notification settings" "Siteoptions" property
  • And "Wall post" "text" should appear before "Watchlist" "text" within the "Notification settings" "Siteoptions" property

Feature: Profile completion functionality

Site admin sets up profile completion and determines what fields are required
so that the profile completion block will display on dashboard indicating what needs to be completed

  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | member |

  • Given the following plugins are set:

    | plugintype | plugin | value |
    | blocktype | annotation | 1 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I expand the section "Side block settings"
  • And I enable the switch "Show profile completion"
  • And I click on "Update site options"
  • When I choose "Profile completion" in "Institutions" from administration menu
  • And I select "No Institution" from "Institution"
  • Then I should see "Profile"
  • And I should see "Résumé"
  • And I should see "Plans"
  • And I should see "Journals"
  • And I should see "Files"
  • And I should see "Annotation"
  • And I should see "Comment"
  • And I should see "Peer assessment"
  • When I expand the section "Profile"
  • Then I should see "First name"
  • And I should see "Last name"
  • And I should see "Student ID"
  • And I should see "Display name"
  • And I should see "Introduction"
  • And I should see "Official website address"
  • And I should see "Personal website address"
  • And I should see "Blog address"
  • And I should see "Postal address"
  • And I should see "Town"
  • And I should see "City/region"
  • And I should see "Country"
  • And I should see "Home phone"
  • And I should see "Business phone"
  • And I should see "Mobile phone"
  • And I should see "Fax number"
  • And I should see "Occupation"
  • And I should see "Industry"
  • And I should see "Social media"
  • And I should see "Join a group"
  • And I should see "Make a friend"
  • When I enable the switch "First name"
  • And I enable the switch "Last name"
  • And I enable the switch "Student ID"
  • And I enable the switch "City/region"
  • And I click on "Submit"
  • Then I should see "Progress bar saved successfully."
  • Then I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • Then I should see "Profile completion" in the "Progressbar block" "Misc" property
  • And I should see "Profile completion tips"
  • And I should see "50%" in the "Progressbar" "Misc" property
  • When I choose "Profile" from account menu
  • Then I should see "Profile"
  • And I click on "About me"
  • When I fill in "Student ID" with "123456"
  • And I click on "Save profile"
  • Then I should see "Profile saved successfully"
  • And I should see "75%" in the "Progressbar" "Misc" property
  • And I log out
  • Given the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | OFF |

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |
    | UserB | Kupuh1pa! | UserB@example.org | Bob | User | instone | internal | member |

  • Given the following plugins are set:

    | plugintype | plugin | value |
    | blocktype | annotation | 1 |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I expand the section "Side block settings"
  • And I enable the switch "Show profile completion"
  • And I click on "Update site options"
  • When I choose "Profile completion" in "Institutions" from administration menu
  • And I select "Institution One" from "Institution"
  • Then I should see "Profile"
  • And I should see "Résumé"
  • And I should see "Plans"
  • And I should see "Journals"
  • And I should see "Files"
  • And I should see "Annotation"
  • And I should see "Comment"
  • And I should see "Peer assessment"
  • When I expand the section "Profile"
  • Then I should see "First name"
  • And I should see "Last name"
  • And I should see "Student ID"
  • And I should see "Display name"
  • And I should see "Introduction"
  • And I should see "Official website address"
  • And I should see "Personal website address"
  • And I should see "Blog address"
  • And I should see "Postal address"
  • And I should see "Town"
  • And I should see "City/region"
  • And I should see "Country"
  • And I should see "Home phone"
  • And I should see "Business phone"
  • And I should see "Mobile phone"
  • And I should see "Fax number"
  • And I should see "Occupation"
  • And I should see "Industry"
  • And I should see "Social media"
  • And I should see "Join a group"
  • And I should see "Make a friend"
  • When I enable the switch "First name"
  • And I enable the switch "Last name"
  • And I enable the switch "Student ID"
  • And I enable the switch "City/region"
  • And I click on "Submit"
  • Then I should see "Progress bar saved successfully."
  • Then I log out
  • Given I log in as "UserB" with password "Kupuh1pa!"
  • Then I should see "Profile completion" in the "Progressbar block" "Misc" property
  • And I should see "Profile completion tips"
  • And I should see "50%" in the "Progressbar" "Misc" property
  • When I choose "Profile" from account menu
  • Then I should see "Profile"
  • And I click on "About me"
  • When I fill in "Student ID" with "123456"
  • And I click on "Save profile"
  • Then I should see "Profile saved successfully"
  • And I should see "75%" in the "Progressbar" "Misc" property
  • And I log out

Feature: Registration procedure

In order to check that a person can register
As an admin
So people can have access to their Mahara

  • Given the following site settings are set:

    | field | value |
    | antispam | simple |

  • And the following "institutions" exist:

    | name | displayname | registerallowed | registerconfirm |
    | instone | Institution One | ON | ON |

  • Given I am on homepage
  • And I click on "Register"
  • And I fill in the following:

    | First name | Lightening |
    | Last name | McQueen |
    | Email address | fakeymcfakey@example.org |
    | Registration reason | I will absolutely make this institution more amazing!! |

  • And I wait "4" seconds
  • And I click on "Register"
  • Then I should be on "/register.php"
  • And I should see "You have successfully submitted your application for registration. The institution administrator has been notified, and you will receive an email as soon as your application has been processed."
  • Given I click on "Login"
  • And I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Pending registrations" in "Institutions" from administration menu
  • Then I should see "EXPIRES "
  • And I should see the date "+2 weeks" in the "Expires column" "Institutions" property with the format "d F Y"
  • When I click on "Approve"
  • And I click on "Approve"
  • Then I should see "Approval sent, waiting for person to complete the registration process."

Feature: Checking specific registered data is being sent

In order to check specific registered data is being sent
As an admin
So I can send this data out

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Registration" in "Admin home" from administration menu
  • When I expand all fieldsets
  • Then I should see "PHP version"
  • And I should see "Database version"
  • And I should see "Operating system version"

Feature: Required plugins

In order to utilize default Mahara certain required plugins need to be active for the site
As an admin
I check that the plugins are active

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Plugin administration" in "Extensions" from administration menu
  • And I scroll to the base of id "module.multirecipientnotification"
  • Then I should not see "Hide" in the "multirecipientnotification" "Misc" property
  • And I should not see "Show" in the "multirecipientnotification" "Misc" property

Feature: Required social media

In order to make social media profile information required for the site
As an admin
So students have to provide mandatory credentials

  • Given the following plugin settings are set:

    | plugintype | plugin | field | value |
    | artefact | internal | profilemandatory | socialprofile |

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • When I log in as "UserA" with password "Kupuh1pa!"
  • And I set the following fields to these values:

    | Social media | Facebook URL |
    | Your URL or username | https://www.facebook.com |

  • And I click on "Submit"
  • Then I should see "Portfolios shared with me"

Feature: Blocks are Retractable

In order to control page layout
Users should be able to
make blocks retractable if they choose to

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page UserA_01 | Page 01 | user | UserA |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Portfolios" in "Create" from main menu
  • And I click on "Edit" in "Page UserA_01" card menu
  • When I click on the add block button
  • And I click on "Add" in the "Add new block" "Blocks" property
  • And I click on blocktype "Text"
  • And I set the field "Block title" to "Text Block 1"
  • And I set the field "Block content" to "Here is a new block."
  • Given I select "Yes" from "Retractable"
  • And I click on "Save"
  • Then I display the page
  • Then I should see "Here is a new block"
  • And I collapse "Text Block 1" node
  • And I should not see "Here is a new block"

Feature: Configuring the site options page

In order to change the configuration settings on the site options page
As an admin
So I can configure the site to the way the client wants

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I should see "Here you can set some global options that will apply by default throughout the entire site."
  • And I expand all fieldsets
  • And I set the following fields to these values:

    | Show homepage / dashboard information | 0 |
    | Authors can choose page themes | 1 |
    | Display remote avatars | 1 |
    | People can hide real names | 1 |
    | Never display usernames | 1 |
    | Show people in public search | 1 |
    | Anonymous comments | 0 |
    | Access reports for staff and support administrators | 1 |
    | All reports for institution staff and support administrators | 1 |
    | Require reason for masquerading | 1 |
    | Notify people of masquerading | 1 |
    | Show profile completion | 1 |
    | Export to queue | 1 |
    | Multiple journals | 1 |
    | Allow group categories | 1 |
    | Confirm registration | 1 |
    | People allowed multiple institutions | 0 |
    | Auto-suspend expired institutions | 1 |
    | Virus checking | 1 |
    | Spamhaus URL deny list | 1 |
    | SURBL URL deny list | 1 |
    | Disable external resources in HTML | 1 |
    | reCAPTCHA on account registration / contact us forms | 1 |
    | Allow public portfolios | 0 |
    | Allow public profiles | 0 |
    | Allow anonymous pages | 1 |
    | Sitemap | 0 |
    | Portfolio search | 1 |
    | Tag cloud | 0 |
    | Maximum tags in cloud | 20 |
    | Show who is online | 0 |
    | Registration agreement | 1 |
    | License metadata | 1 |
    | Custom licenses | 1 |

  • And I click on "Update site options"
  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" in "Configure site" from administration menu
  • And I expand all fieldsets
  • And I select "weeks" from "siteoptions_defaultaccountlifetime_units"
  • And I fill in "10" for "siteoptions_defaultaccountlifetime"
  • And I click on "Update site options"

Feature: Creating people and an institution enrolling people and changing their passwords

In order to change passwords successfully
As an admin create accounts and create an institution
So I can log in as those people and change their password successfully

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Settings" in "Institutions" from administration menu
  • And I click on "Add institution"
  • And I fill in the following:

    | Institution name | Institution One |

  • And I click on "Submit"
  • And I choose "Add an account" in "People" from administration menu
  • And I fill in the following:

    | firstname | bob |
    | lastname | bobby |
    | email | bob@example.org |
    | username | bob |
    | password | Mahara#1 |

  • And I select "Institution One" from "Institution"
  • And I enable the switch "Institution administrator"
  • And I scroll to the base of id "adduser_submit"
  • And I click on "Create account"
  • And I choose "Add an account" in "People" from administration menu
  • And I fill in the following:

    | firstname | Jen |
    | lastname | Jenny |
    | email | jen@example.org |
    | username | jen |
    | password | Mahara#1 |

  • And I select "Institution One" from "Institution"
  • And I scroll to the base of id "adduser_submit"
  • And I click on "Create account"
  • And I log out
  • When I log in as "bob" with password "Mahara#1"
  • And I fill in the following:

    | New password | Mahara1sGreat@ |
    | Confirm password | Mahara1sGreat@ |
    | Primary email | bob@example.com |

  • And I click on "Submit"
  • And I should see "Your new password has been saved"
  • And I choose "Preferences" in "Settings" from account menu
  • And I fill in the following:

    | Current password | Mahara1sGreat@ |
    | New password | MaharaIsC00l! |
    | Confirm password | MaharaIsC00l! |

  • When I click on "Save"
  • And I should see "Preferences saved"
  • And I log out
  • And I log in as "jen" with password "Mahara#1"
  • And I fill in the following:

    | New password | Mahara1sGreat@ |
    | Confirm password | Mahara1sGreat@ |
    | Primary email | jen@example.com |

  • And I click on "Submit"
  • And I should see "Your new password has been saved"
  • And I choose "Preferences" in "Settings" from account menu
  • And I fill in the following:

    | Current password | Mahara1sGreat@ |
    | New password | MaharaIsC00l! |
    | Confirm password | MaharaIsC00l! |

  • And I click on "Save"
  • And I should see "Preferences saved"

Feature: Configuration on people search page

In order to change the configuration of the people search page
As an admin
So I can benefit from the use of different configurations

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | admin |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "People search" in "People" from administration menu
  • And I click on "Advanced options"
  • And I click on "A" in the "Filter by first name" "People" property
  • And I click on "UserA"
  • And I should see "Account settings | Angela User (UserA)"
  • And I set the following fields to these values:

    | Force password change on next login | 1 |
    | Disable email | 1 |

  • And I click on "Save changes"
  • Given the following plugin settings are set:

    | plugintype | plugin | field | value |
    | artefact | internal | profilepublic | email |

  • And I set the following fields to these values:

    | Search for people | UserA@example.org |

  • And I click on the key "Enter" in the "Search for people" field
  • Then I should see "UserA"

Feature: People self deletion requires current password

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.org | Angela | User | mahara | internal | member |

  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I choose "Preferences" in "Settings" from account menu
  • And I wait "1" seconds
  • When I click on "Delete account"
  • Then I am on "account/delete.php"
  • And I should see "If you delete your account, all your content will be deleted permanently. You cannot get it back. Your profile information and your portfolios will no longer be visible to other people. The content of any forum posts you have written will still be visible, but your name will no longer be displayed."
  • And I should see "Fields marked by '*' are required."
  • And I should see "Current password *"
  • When I set the field "Current password *" to "Kupuh1pa!"
  • And I click on "Delete account"
  • Then I should see "Your account has been deleted."

Feature: Allow page themes

In order to allow an author to use a theme on a page
Enable "People can choose page themes" setting
Log in as a person and confirm it works

  • Given the following "users" exist:

    | username | password | email | firstname | lastname | institution | authname | role |
    | UserA | Kupuh1pa! | UserA@example.com | Angela | User | mahara | internal | member |

  • And the following "pages" exist:

    | title | description | ownertype | ownername |
    | Page UserA_01 | Page 01 | user | UserA |

  • Given I log in as "admin" with password "Kupuh1pa!"
  • And I choose "Site options" from administration menu
  • And I expand the section "Account settings"
  • And I enable the switch "Authors can choose page themes"
  • And I click on "Update site options"
  • And I log out
  • Given I log in as "UserA" with password "Kupuh1pa!"
  • And I click on "Page UserA_01"
  • And I click on "Edit"
  • And I click on "Settings" in the "Toolbar buttons" "Nav" property
  • And I click on "Advanced"
  • And I scroll to the id "settings_theme"
  • And I select "Modern" from "theme"
  • And I click on "Save"
  • Then "/theme/modern/images/site-logo" should be in the "Logo" "Header" property