Feature: Group tool
  In order to use the group tool
  The teachers should be able to create groups

  Background:
    Given I am a platform administrator
    And I am on course "TEMP" homepage

  Scenario: Delete default category
    Given I am on "/main/group/group.php?cid=1&sid=0"
    Then I should see "Default groups"
    Then I follow "Delete"
    Then I confirm the popup
    Then I should see "The category has been deleted"

  Scenario: Create a group directory
    Given I am on "/main/group/group_category.php?cid=1&sid=0&action=add_category"
    When I fill in the following:
      | title | Group category 1 |
    And I press "group_category_submit"
    Then I should see "Category created"

  Scenario: Create 4 groups
    Given I am on "/main/group/group_creation.php?cid=1&sid=0"
    When I fill in the following:
      | number_of_groups | 5 |
    And I press "submit"
    Then I should see "New groups creation"
    When I fill in the following:
      | group_0_places | 1 |
      | group_1_places | 1 |
      | group_2_places | 1 |
      | group_3_places | 1 |
      | group_4_places | 2 |
    And I fill in select bootstrap static by text "#category_0" select "Group category 1"
    And I fill in select bootstrap static by text "#category_1" select "Group category 1"
    And I fill in select bootstrap static by text "#category_2" select "Group category 1"
    And I fill in select bootstrap static by text "#category_3" select "Group category 1"
    And I fill in select bootstrap static by text "#category_4" select "Group category 1"
    And I press "submit"
    Then I should see "group(s) has (have) been added"


  Scenario: Create document folder in group
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Documents"
    Then I should see "There are no documents to be displayed"
    Then I follow "Create folder"
    Then I should see "Create folder"
    Then I fill in the following:
      | dirname | My folder in group |
    And I press "create_dir_form_submit"
    Then I should see "Folder created"

  Scenario: Create document inside folder in group
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Documents"
    Then I should see "My folder in group"
    Then I follow "My folder in group"
    Then I follow "Create a rich media page / activity"
    Then I should see "Create a rich media page"
    Then I fill in the following:
      | title | html test |
    And I fill in ckeditor field "content" with "My first HTML!!"
    Then I press "create_document_submit"
    Then I should see "Item added"

  Scenario: Upload a document inside folder in group
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Documents"
    Then I should see "My folder in group"
    Then I follow "My folder in group"
    Then I follow "Upload documents"
    Then I follow "Upload (Simple)"
    # File path is located in behat.yml
    Then I attach the file "/public/favicon.ico" to "file"
    Then wait for the page to be loaded
    Then I press "upload_submitDocument"
    Then wait for the page to be loaded
    Then I should see "File upload succeeded"

  Scenario: Delete 2 uploaded files
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Documents"
    Then I should see "My folder in group"
    Then I follow "My folder in group"
    Then I follow "Delete"
    Then wait for the page to be loaded
    Then I should see "Are you sure to delete"
    Then I follow "delete_item"

  Scenario: Delete directory
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Documents"
    Then I should see "My folder in group"
    Then I follow "Delete"
    Then wait for the page to be loaded
    Then I should see "Are you sure to delete"
    Then I follow "delete_item"

  Scenario: Add fapple to the Group 0001
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    Then I follow "Edit this group"
    Then I should see "Group members"
    Then wait for the page to be loaded
    Then I follow "group_members_tab"
    Then I select "Fiona Apple Maggart (fapple)" from "group_members"
    Then I press "group_members_rightSelected"
    Then I press "Save settings"
    And wait for the page to be loaded
    Then I should see "Group settings modified"
    Then I follow "Group 0001"
    Then I should see "Fiona"

  Scenario: Add fapple to the Group 0003 not allowed because group category allows 1 user per group
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    Then I follow "Edit this group"
    Then I should see "Group members"
    Then wait for the page to be loaded
    Then I follow "group_members_tab"
    Then I select "Fiona Apple Maggart (fapple)" from "group_members"
    Then I press "group_members_rightSelected"
    Then I press "Save settings"
    And wait for the page to be loaded
    Then I should see "Group settings modified"
    Then I follow "Group 0003"
    Then I should not see "Fiona"

 # Group category overwrites all other groups settings.
  Scenario: Change Group category to allow multiple inscription of the user
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Edit this category"
    Then I should see "Edit group category: Group category 1"
    Then I fill in select bootstrap static by text "#groups_per_user" select "10"
    Then I press "Edit"
    Then I should see "Group settings have been modified"

  Scenario: Change Group 0003 settings to make announcements private
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    Then I follow "Edit this group"
    Then I check the "announcements_state" radio button with "2" value
    Then I press "Save settings"
    Then I should see "Group settings modified"

  Scenario: Change Group 0004 settings to make it private
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0004"
    Then I should see "Group 0004"
    Then I follow "Edit this group"
    Then I check the "announcements_state" radio button with "2" value
    Then I press "Save settings"
    Then I should see "Group settings modified"

  Scenario: Change Group 0005 settings to make announcements private between users
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0005"
    Then I should see "Group 0005"
    Then I follow "Edit this group"
    Then I check the "announcements_state" radio button with "3" value
    Then I press "Save settings"
    Then I should see "Group settings modified"

  Scenario: Add fapple and acostea to Group 0005
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0005"
    Then I should see "Group 0005"
    Then I follow "Edit this group"
    Then I should see "Group members"
    Then wait for the page to be loaded
    Then I follow "group_members_tab"
    Then I additionally select "Fiona Apple Maggart (fapple)" from "group_members"
    Then I additionally select "Andrea Costea (acostea)" from "group_members"
    Then I press "group_members_rightSelected"
    Then I press "Save settings"
    And wait for the page to be loaded
    Then I should see "Group settings modified"
    Then I follow "Group 0005"
    Then I should see "Fiona"
    Then I should see "Andrea"

  Scenario: Add fapple to the Group 0003
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    Then I follow "Edit this group"
    Then I should see "Group members"
    Then wait for the page to be loaded
    Then I follow "group_members_tab"
    Then I select "Fiona Apple Maggart (fapple)" from "group_members"
    Then I press "group_members_rightSelected"
    Then I press "Save settings"
    And wait for the page to be loaded
    Then I should see "Group settings modified"
    Then I follow "Group 0003"
    Then I should see "Fiona"

  Scenario: Add acostea to the Group 0002
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0002"
    Then I should see "Group 0002"
    Then I follow "Edit this group"
    Then I should see "Group members"
    Then wait for the page to be loaded
    Then I follow "group_members_tab"
    Then I select "Andrea Costea (acostea)" from "group_members"
    Then I press "group_members_rightSelected"
    Then I press "Save settings"
    And wait for the page to be loaded
    Then I should see "Group settings modified"
    Then I follow "Group 0002"
    Then I should see "Andrea"

  Scenario: Create an announcement for everybody inside Group 0001
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Announcements"
    Then I should see "Announcements"
    Then I follow "Add an announcement"
    Then I should see "Add an announcement"
    Then wait for the page to be loaded
    Then I fill in the following:
      | title | Announcement for all users inside Group 0001 |
    And I fill in ckeditor field "content" with "Announcement description in Group 0001"
    Then I follow "announcement_preview"
    And wait for the page to be loaded
    Then I should see "Announcement will be sent to"
    Then I press "submit"
    Then I should see "Announcement has been added"

  Scenario: Create an announcement for fapple inside Group 0001
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    And I follow "Announcements"
    Then I should see "Announcements"
    Then I follow "Add an announcement"
    Then I should see "Add an announcement"
    Then wait for the page to be loaded
    Then I press "choose_recipients"
    Then I select "Fiona Apple" from "users"
    Then I press "users_rightSelected"
    Then I fill in the following:
      | title | Announcement for user fapple inside Group 0001 |
    And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0001"
    Then I follow "announcement_preview"
    And wait for the page to be loaded
    Then I should see "Announcement will be sent to"
    Then I press "submit"
    Then I should see "Announcement has been added"

  Scenario: Create an announcement for everybody inside Group 0003 (private)
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    And I follow "Announcements"
    Then I should see "Announcements"
    Then I follow "Add an announcement"
    Then I should see "Add an announcement"
    Then wait for the page to be loaded
    Then I fill in the following:
      | title | Announcement for all users inside Group 0003 |
    And I fill in ckeditor field "content" with "Announcement description in Group 0003"
    Then I follow "announcement_preview"
    And wait for the page to be loaded
    Then I should see "Announcement will be sent to"
    Then I press "submit"
    Then I should see "Announcement has been added"

  Scenario: Create an announcement for fapple inside Group 0003
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    And I follow "Announcements"
    Then I should see "Announcements"
    Then I follow "Add an announcement"
    Then I should see "Add an announcement"
    Then wait for the page to be loaded
    Then I press "choose_recipients"
    Then I select "Fiona Apple" from "users"
    Then I press "users_rightSelected"
    Then I fill in the following:
      | title | Announcement for user fapple inside Group 0003 |
    And I fill in ckeditor field "content" with "Announcement description for user fapple inside Group 0003"
    Then I follow "announcement_preview"
    And wait for the page to be loaded
    Then I should see "Announcement will be sent to"
    Then I press "submit"
    Then I should see "Announcement has been added"

  Scenario: Create an announcement as acostea and send only to fapple
    Given I am logged as "acostea"
    Given I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0005"
    Then I should see "Group 0005"
    And I follow "Announcements"
    Then I should see "Announcements"
    Then I follow "Add an announcement"
    Then I should see "Add an announcement"
    Then wait for the page to be loaded
    Then I press "choose_recipients"
    Then I select "Fiona Apple Maggart" from "users"
    Then I press "users_rightSelected"
    Then I fill in the following:
      | title | Announcement only for fapple Group 0005 |
    And I fill in ckeditor field "content" with "Announcement description only for fapple Group 0005"
    Then I follow "announcement_preview"
    And wait for the page to be loaded
    Then I should see "Announcement will be sent to"
    Then I press "submit"
    Then I should see "Announcement has been added"

  Scenario: Check fapple/acostea access of announcements
    Given I am logged as "fapple"
    And I am on course "TEMP" homepage
    And I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0001"
    Then I should see "Group 0001"
    Then I follow "Announcements"
    And wait for the page to be loaded
    Then I should see "Announcement for all users inside Group 0001"
    Then I should see "Announcement for user fapple inside Group 0001"
    Then I follow "Announcement for user fapple inside Group 0001 Group"
    Then I should see "Announcement description for user fapple inside Group 0001"
    Then I save current URL with name "announcement_for_user_fapple_group_0001_public"
    Then I move backward one page
    Then wait for the page to be loaded
    Then I should see "Announcement for all users inside Group 0001"
    Then I follow "Announcement for all users inside Group 0001"
    Then I save current URL with name "announcement_for_all_users_group_0001_public"
    Then I should see "Announcement description in Group 0001"
    And I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0003"
    Then I should see "Group 0003"
    Then I follow "Announcements"
    And wait for the page to be loaded
    Then I should see "Announcement for all users inside Group 0003"
    Then I should see "Announcement for user fapple inside Group 0003"
    Then I follow "Announcement for user fapple inside Group 0003 Group"
    Then I should see "Announcement description for user fapple inside Group 0003"
    Then I save current URL with name "announcement_for_user_fapple_group_0003_private"
    Then I move backward one page
    Then wait for the page to be loaded
    Then I should see "Announcement for all users inside Group 0003"
    Then I follow "Announcement for all users inside Group 0003"
    Then I should see "Announcement description in Group 0003"
    Then I save current URL with name "announcement_for_all_users_group_0003_private"
    And I am on "/main/group/group.php?cid=1&sid=0"
    And I follow "Group 0005"
    Then I should see "Group 0005"
    Then I follow "Announcements"
    And wait for the page to be loaded
    Then I should see "Announcement only for fapple Group 0005"
    Then I follow "Announcement only for fapple Group 0005"
    Then I save current URL with name "announcement_only_for_fapple_private"

    ## Finish tests with fapple now check access with acostea ##
    Given I am logged as "acostea"
    And I am on course "TEMP" homepage
    Given I am on "/main/group/group.php?cid=1&sid=0"
    Then I should see "Group 0001"
    And I should see "Group 0002"
    And I should see "Group 0003"
    And I should see "Group 0004"
    Then I visit URL saved with name "announcement_for_user_fapple_group_0001_public"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_for_all_users_group_0001_public"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_only_for_fapple_private"
    Then I should see "Sorry, you are not allowed to access this page"

    Given I am logged as "acostea"
    And I am on course "TEMP" homepage
    Given I am on "/main/group/group.php?cid=1&sid=0"
    Then I should see "Group 0001"
    And I should see "Group 0002"
    And I should see "Group 0003"
    And I should see "Group 0004"
    And I should see "Group 0005"

    Then I visit URL saved with name "announcement_for_user_fapple_group_0001_public"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_for_all_users_group_0001_public"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_for_user_fapple_group_0003_private"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_for_all_users_group_0003_private"
    Then I should see "Sorry, you are not allowed to access this page"
    Then I visit URL saved with name "announcement_only_for_fapple_private"
    Then I should see "Sorry, you are not allowed to access this page"