Group Abilities - Membership Test
1. Describe the expected behavior and purpose of the new code
This code is meant to replace and enhance existing code for the group membership control options. This code adds the ability to set members in roles which can invite, eject, and otherwise modify group membership parameters.
2a. DEPENDENCIES
These features are dependent on the group Roles features.
3. Detailed plan(s) for testing new functionality, including success and failure cases if possible
[Groups: Membership Abilities Test]
[VERSION] 0.1
[LENGTH] 00:45
[TESTERS] 3
[OVERVIEW]This test exercises the use of Group Membership Abilities to invite, eject and change enrollment options. It also tests whether members in Roles without the Abilities can also perform these tasks.
[SETUP] 3 non-god testers. Tester A is an Owner of a group which has no sign-up fee. Testers B is not in A's Group. Tester C is in the group in the Everyone Role only. Tester A has Tester B's calling card.
[*]
[0010] Tester A: Log in.
[NOTE] Verify all routes to the Groups floater succeed.
[0020] Tester A: Right-click your Avatar > Groups.
[0021] Tester A: Close the Groups floater.
[0022] Tester A: Edit > Groups...
[NOTE] Verify common routes to the Group Information window succeed (excluding land, group objects, Edit window, etc).
[0030] Tester A: Select a group in which you are an Owner.
[0031] Tester A: Click the 'Info' button and verify the window opens, then close the Group Information window.
[0032] Tester A: Right-click your Avatar > Profile.
[0033] Tester A: Double-click the name of your group and verify the window opens.
[NOTE] Invite a member to the group. Tester B is not logged in.
[0040] Tester A: With the Group Information window still open, click the 'Members & Roles' tab.
[0041] Tester A: Click the 'Invite New Member...' button. Verify the Group Invitation window opens.
[0042] Tester A: Click the 'Open Person Chooser' button.
[0043] Tester A: Type Tester B's name in the Choose Person window's Find field, and click 'Find'. Verify their name was found.
[0044] Tester A: Click Tester B's name once, then click the 'Select' button. Verify that Tester B's name is now in the list in the Group Invitation window.
[0045] Tester A: Click Tester B's name once in the Group Invitation window and click 'Remove Selected from List'. Verify Tester B's name disappears.
[0046] Tester A: Scroll through your Calling Cards in the 'Or select a caling card' inventory browser view and find Tester B's card.
[0047] Tester A: Drag Tester B's card into the list space on the Group Invitation window. Verify Tester B's name appears in the list.
[0048] Tester A: Verify that you can invite Tester B to any Role. Choose 'Officer'.
[0049] Tester A: Click the 'Send Invitations' button.
[0050] Tester B: Check your email. Verify you received an email from Tester A with the following body: (Tester A's Name) has invited you to join a group in Second Life. Log in to accept or decline this invitation.
[0051] Tester B: Log in.
[0052] Tester B: Verify a blue message box appears in the upper right-hand corner. Verify the following are included:
[0053] - The group's name and charter.
[0054] - The Role you are being invited to is listed (officer).
[0055] - You are not required to pay anything to join this group.
[0556] - If the content exceeds the space in the blue message box, verify there is a scroll bar on the right.
[0056] Tester C: Log in.
[0057] Tester B: Click the 'Decline' button.
[0558] Tester B: Right-click your Avatar > Groups.
[0559] Tester B: Verify the group you just declined membership for is not listed in your Groups list. Close the Groups floater.
[0060] Tester A: Click the Roles sub-tab. Click 'Create New Role...'.
[0061] Tester A: Name the Role 'Inviter'. Set the Title to 'Inviter'. Leave the Description blank.
[0062] Tester A: Check only 'Invite Members to this Group'. Click the 'Apply' button.
[0063] Tester A: Click the Members sub-tab. Find Tester C's name and click it once.
[0064] Tester A: Check the box next to 'Inviter' under 'Assigned Roles'. Click the 'Apply' button.
[NOTE] Test that a role with only the Invite Ability can invite members.
[0070] Tester C: Right-click your Avatar > Groups.
[0071] Tester C: Verify the Members & Roles tab is enabled. Click the Members & Roles tab.
[0072] Tester C: Click the 'Invite New Member...' button.
[0073] Tester C: Click the 'Open Person Chooser' button.
[0074] Tester C: Type Tester B's name in the Choose Person window's Find field, and click 'Find'. Verify their name was found.
[0075] Tester C: Click Tester B's name once, then click the 'Select' button. Verify that Tester B's name is now in the list in the Group Invitation window.
[0076] Tester C: Verify that you can invite Tester B to the Everyone Role and no other roles.
[0077] Tester C: Click the 'Send Invitations' button.
[0078] Tester B: Verify that the blue message box comes down and all information is correct.
[0079] Tester B: Click the 'Join' button.
[0080] Tester B: Verify another blue message box comes down indicating you are now a member of the group.
[0081] Tester B: Right-click your Avatar > Groups.
[0082] Tester B: Verify your new group is listed. Double-click on the group name.
[0083] Tester B: Verify a title is selected under 'My Active Title'. Verify you cannot change your title.
[0084] Tester B: Close the Group Information window.
[NOTE] Ejecting a member from the group.
[0090] Tester A: Open the Group Information window and click the Members & Roles tab > Members sub-tab.
[0091] Tester A: Find and click once on your own name in the members list. Verify the 'Eject From Group' button is not enabled.
[0092] Tester A: Find and click once on Tester B's name in the members list. Verify the 'Eject From Group' button is enabled.
[0093] Tester A: Click the 'Eject From Group' button.
[0094] Tester A: Verify you get a message saying Tester B has been ejected from the group.
[0095] Tester B: Verfiy you get a message saying you have been ejected from the group by Tester A.
[0096] Tester B: Verfiy your group title is no longer the title from your Role in the group.
[0097] Tester B: Right-click your Avatar > Groups.
[0098] Tester B: Verify the group was removed from your groups list.
[0099] Tester C: Invite Tester B back to the group in the Everyone Role.
[0100] Tester B: Click the 'Join' button.
[0101] Tester C: Find Tester B's name in the Members & Roles > Members sub-tab and click on it once.
[0102] Tester C: Verify the 'Eject From Group' button is not enabled and clicking it does nothing.
[0103] Tester A: Create a new Role named 'Ejector', title 'Ejector', with only the 'Eject Members from this Group' ability. Click the 'Apply' button.
[0104] Tester A: Put Tester C in the Ejector Role. Click the 'Apply' button.
[0105] Tester C: Close the Group Information window and open it again.
[0106] Tester C: Find Tester B's name in the Members & Roles > Members sub-tab and click on it once.
[0107] Tester C: Verify the 'Eject From Group' button is enabled.
[0108] Tester C: Click the 'Eject From Group' button.
[0109] Tester A: Verify you get a message saying Tester B has been ejected from the group.
[0110] Tester B: Verfiy you get a message saying you have been ejected from the group by Tester C.
[NOTE] Verify Owners can change all options.
[0120] Tester A: Right-click your Avatar > Groups. Double-click the name of the group you have been using for these tests.
[0121] Tester A: Set all options to unchecked in the General tab, then click the 'Apply' button.
[0122] Tester B: Click the 'Find' button on the Toolbar > Groups tab.
[0123] Tester B: Type in the name of Tester A's group and click the 'Search' button.
[0124] Tester B: Verify Tester A's group is not found.
[0125] Tester A: Check 'Show in Group List' and click the 'Apply' button.
[0126] Tester B: Click 'Search' again.
[0127] Tester B: Verify that Tester A's group is found.
[0128] Tester A: Check 'Open Enrollment' and click the 'Apply' button.
[0129] Tester B: Click 'Search' again.
[0130] Tester B: Verify the 'Join (L$0)' button appears.
[0131] Tester A: Check 'Enrollment Fee' and set the fee to L$ 10, then click the 'Apply' button.
[0132] Tester B: Click 'Search' again.
[0133] Tester B: Verify the 'Join (L$0)' button appears.
[NOTE] Verify Roles with 'Toggle Open Enrollment...' Ability can change all options.
[0140] Tester A: Create a new Role named 'Toggler', title 'Toggler', with only the 'Toggle Open Enrollment...' ability. Click the 'Apply' button.
[0141] Tester A: Put Tester C in the Toggler Role. Click the 'Apply' button.
[0142] Tester C: Right-click your Avatar > Groups. Double-click the name of the group you have been using for these tests.
[0143] Tester C: Verify that all options in the General tab > Group Preferences section are enabled.
[0144] Tester C: Set all options to unchecked in the General tab, then click the 'Apply' button.
[0145] Tester B: Click the 'Find' button on the Toolbar > Groups tab.
[0146] Tester B: Type in the name of Tester A's group and click the 'Search' button.
[0147] Tester B: Verify Tester A's group is not found.
[0148] Tester C: Check 'Show in Group List' and click the 'Apply' button.
[0149] Tester B: Click 'Search' again.
[0150] Tester B: Verify that Tester A's group is found.
[0151] Tester C: Check 'Open Enrollment' and click the 'Apply' button.
[0152] Tester B: Click 'Search' again.
[0153] Tester B: Verify the 'Join (L$0)' button appears.
[0154] Tester C: Check 'Enrollment Fee' and set the fee to L$ 10, then click the 'Apply' button.
[0155] Tester B: Click 'Search' again.
[0156] Tester B: Verify the 'Join (L1$0)' button appears.
[0157] Tester B: Click the 'Join (L$10)' button and click the 'Join' button on the confirmation dialog. Verify you are a member of User A's group in the Everyone Role.
[NOTE] END OF TEST.
4. Detailed plan(s) for testing dependent code, including success and failure cases if possible
SEE ABOVE (dependent code tests are embedded in the test plan).
5. Requirements for gathering data on existing feature being modified, if applicable
N/A
5a. Follow this with requirements for gathering data on new feature in new format, etc.
N/A
5b. Explain how to compare data to ensure new feature is not worse (i.e. lower framerate, higher bandwidth, more db queries, etc.)
N/A