Difference between revisions of "No-Copy Regression Test"
Jump to navigation
Jump to search
Caleb Linden (talk | contribs) |
Caleb Linden (talk | contribs) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 39: | Line 39: | ||
== Test Steps == | == Test Steps == | ||
=== Regression Tests === | |||
For each (no-copy) Object Type verify that: | |||
# Using (wearing, playing, display) it in-world behaves/displays as expected | |||
# Upon restart of the Viewer it still persists in the inventory | |||
# Upon restart of the Viewer after clear cache it still persists in the inventory | |||
# Is searchable on the Viewer | |||
# When rezzing inworld (if applicable) it gets removed from the inventory and doesn't copy | |||
## You are not able to run operations that can copy the no-copy object | |||
# When sharing the (no-copy) it gets removed from the inventory and transferred to the new owner | |||
# Move between inventory folders and back again, verify that there is no duplication of disappearance | |||
# Add no-copy objects as inventory in objects | |||
=== Functional Tests === | === Functional Tests === | ||
==== Permissions Basics ==== | |||
# Create 6 prims and rename each: "Trans", "Copy/Trans", "Mod/Trans", "Mod/Copy/Trans", "Copy", "Mod/Copy" | |||
# For each prims, right-click and change properties | |||
## On the "Trans" object, under Next Owner Can: Verify "Resell/GiveAway" is Ticked and Greyed out, Close the window | |||
## On the "Copy/Trans" object, under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window. | |||
## On the "Mod/Trans" object, under Next Owner Can: Tick the "Modify" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window. | |||
## On the "Mod/Copy/Trans" object, under Next Owner Can: Tick the "Modify" and "Copy" Checkboxes and Leave the "Resell/GiveAway" Ticked, Close the window | |||
## On the "Copy" object, under Next Owner Can: Tick the "Copy" Checkbox and UNTICK the "Resell/GiveAway" Tickbox, Close the window. | |||
## On the "Mod/Copy" object, under Next Owner Can: Tick the "Modify" and "Copy" Checkboxes and UNTICK the "Resell/GiveAway" Tickbox, Close the window. | |||
# Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following | |||
## mod/copy has (no transfer) after it | |||
## copy has (no modify) (no transfer) after it | |||
## mod/copy/trans has nothing after it as it has all permissions | |||
## mod/trans has (no copy) after it | |||
## copy/trans has (no modify) after it | |||
## trans has (no copy) (no modify) after it | |||
==== For Sale Permissions ==== | |||
# Rez 2 prims and rename each "SaleOrig" and "SaleCopy" | |||
# In their properties | |||
## On the "SaleOrig" object, under Mark Item: Tick the "For Sale" Checkbox and Click the "Original" marker and Set the Price to 0, Close the window. | |||
## On the "SaleCopy" object, under Mark Item: Tick the "For Sale" Checkbox and Click the "Copy" marker and Set the Price to 0 and under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked | |||
# Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following | |||
# User B confirms the received items and rezzes both on the ground | |||
# User A clicks on "SaleOrig" object | |||
## User A cannot buy multiple copies | |||
# User A clicks on "SaleCopy" object | |||
## User A can buy multiple copies | |||
==== Anyone can Copy ==== | |||
# Rez a prim and take it into inventory | |||
# Change properties to Tick the "Allow anyone to Copy" Checkbox and under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked, then Close the Window | |||
# Drag prim onto User B who accepts it | |||
# User B rezzes his new object on the ground | |||
# Verify that any avatar can take copies | |||
==== Share with Group ==== | |||
# User A and User B join the Same Group | |||
# User A rezzes a prim and takes it into inventory | |||
# User A changes properties to: Tick the "Share with Group" Checkbox, then Close the Window | |||
# Drag prim onto User B who accepts it | |||
# User B sees properties that "Share with group" is ticked, and rezzes it on the ground | |||
# User B can't modify or copy that object | |||
==== Next Owner Permissions Test ==== | |||
https://wiki.secondlife.com/wiki/Next_Owner_Permissions_Test | |||
==== Scripted Permissions Test ==== | |||
https://wiki.secondlife.com/wiki/Scripted_Permissions_Test | |||
====Adding objects in Group Notices==== | ====Adding objects in Group Notices==== | ||
# Only objects with transfer permissions can be added to notices (copy) | # Only objects with transfer permissions can be added to notices (copy) | ||
Line 51: | Line 112: | ||
# Only objects with transfer permissions can be added to Notecards (copy) | # Only objects with transfer permissions can be added to Notecards (copy) | ||
# Only objects with transfer permissions can be added to Notecards (no-copy) | # Only objects with transfer permissions can be added to Notecards (no-copy) | ||
====LSL Inventory Tests (TBD) ==== | |||
# llAllowInventoryDrop | |||
# llGiveInventory | |||
<pre> | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
llAllowInventoryDrop(TRUE); | |||
} | |||
} | |||
</pre> | |||
<pre> | |||
//llGiveInventory | |||
default | |||
{ | |||
state_entry() | |||
{ | |||
llSay(0, "Hello, Avatar!"); | |||
integer allowdrop = TRUE; | |||
llAllowInventoryDrop(allowdrop); | |||
llSay(0, "llAllowInventoryDrop is "+(string)allowdrop); | |||
} | |||
touch_start(integer total_number) | |||
{ | |||
key destination = "..."; | |||
llGiveInventory(destination, "Object"); | |||
} | |||
changed(integer change) | |||
{ | |||
if (change == CHANGED_INVENTORY) | |||
{ | |||
llSay(0, "CHANGED_INVENTORY"); | |||
} | |||
else if (change == CHANGED_ALLOWED_DROP) | |||
{ | |||
llSay(0, "CHANGED_ALLOWED_DROP"); | |||
} | |||
} | |||
} | |||
</pre> | |||
====Adhoc No-Copy Tests==== | ====Adhoc No-Copy Tests==== | ||
Line 65: | Line 168: | ||
# User A wears no-copy object in multiple outfits | # User A wears no-copy object in multiple outfits | ||
---- | ---- | ||
Latest revision as of 16:32, 9 September 2015
Scope
- Quick regression test plan to verify expected no-copy object behavior
Set-up
Environment
TBD
Other
- User A has in his inventory all Object types at least one (no-copy) version
- You can get no-copy object if the it was shared by a previous owner that didn't want the next owner to have copy permissions.
- Object Types:
- Body Part:
- Shape
- Skin
- Hair
- Eyes
- Clothes:
- Shirt
- Pants
- Shoes
- Socks
- Jacket
- Skirt
- Gloves
- Undershirt
- Alpha
- Tattoo
- Physics
- Gesture
- Notecard
- Script
- Image
- Sound
- Animation
- Model
- Body Part:
Test Steps
Regression Tests
For each (no-copy) Object Type verify that:
- Using (wearing, playing, display) it in-world behaves/displays as expected
- Upon restart of the Viewer it still persists in the inventory
- Upon restart of the Viewer after clear cache it still persists in the inventory
- Is searchable on the Viewer
- When rezzing inworld (if applicable) it gets removed from the inventory and doesn't copy
- You are not able to run operations that can copy the no-copy object
- When sharing the (no-copy) it gets removed from the inventory and transferred to the new owner
- Move between inventory folders and back again, verify that there is no duplication of disappearance
- Add no-copy objects as inventory in objects
Functional Tests
Permissions Basics
- Create 6 prims and rename each: "Trans", "Copy/Trans", "Mod/Trans", "Mod/Copy/Trans", "Copy", "Mod/Copy"
- For each prims, right-click and change properties
- On the "Trans" object, under Next Owner Can: Verify "Resell/GiveAway" is Ticked and Greyed out, Close the window
- On the "Copy/Trans" object, under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window.
- On the "Mod/Trans" object, under Next Owner Can: Tick the "Modify" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window.
- On the "Mod/Copy/Trans" object, under Next Owner Can: Tick the "Modify" and "Copy" Checkboxes and Leave the "Resell/GiveAway" Ticked, Close the window
- On the "Copy" object, under Next Owner Can: Tick the "Copy" Checkbox and UNTICK the "Resell/GiveAway" Tickbox, Close the window.
- On the "Mod/Copy" object, under Next Owner Can: Tick the "Modify" and "Copy" Checkboxes and UNTICK the "Resell/GiveAway" Tickbox, Close the window.
- Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following
- mod/copy has (no transfer) after it
- copy has (no modify) (no transfer) after it
- mod/copy/trans has nothing after it as it has all permissions
- mod/trans has (no copy) after it
- copy/trans has (no modify) after it
- trans has (no copy) (no modify) after it
For Sale Permissions
- Rez 2 prims and rename each "SaleOrig" and "SaleCopy"
- In their properties
- On the "SaleOrig" object, under Mark Item: Tick the "For Sale" Checkbox and Click the "Original" marker and Set the Price to 0, Close the window.
- On the "SaleCopy" object, under Mark Item: Tick the "For Sale" Checkbox and Click the "Copy" marker and Set the Price to 0 and under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked
- Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following
- User B confirms the received items and rezzes both on the ground
- User A clicks on "SaleOrig" object
- User A cannot buy multiple copies
- User A clicks on "SaleCopy" object
- User A can buy multiple copies
Anyone can Copy
- Rez a prim and take it into inventory
- Change properties to Tick the "Allow anyone to Copy" Checkbox and under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked, then Close the Window
- Drag prim onto User B who accepts it
- User B rezzes his new object on the ground
- Verify that any avatar can take copies
- User A and User B join the Same Group
- User A rezzes a prim and takes it into inventory
- User A changes properties to: Tick the "Share with Group" Checkbox, then Close the Window
- Drag prim onto User B who accepts it
- User B sees properties that "Share with group" is ticked, and rezzes it on the ground
- User B can't modify or copy that object
Next Owner Permissions Test
https://wiki.secondlife.com/wiki/Next_Owner_Permissions_Test
Scripted Permissions Test
https://wiki.secondlife.com/wiki/Scripted_Permissions_Test
Adding objects in Group Notices
- Only objects with transfer permissions can be added to notices (copy)
- Only objects with transfer permissions can be added to notices (no-copy)
Adding objects in IMs
- Only objects with transfer permissions can be added to IMs (copy)
- Only objects with transfer permissions can be added to IMs (no-copy)
Adding objects in Notecards
- Only objects with transfer permissions can be added to Notecards (copy)
- Only objects with transfer permissions can be added to Notecards (no-copy)
LSL Inventory Tests (TBD)
- llAllowInventoryDrop
- llGiveInventory
default { state_entry() { llAllowInventoryDrop(TRUE); } }
//llGiveInventory default { state_entry() { llSay(0, "Hello, Avatar!"); integer allowdrop = TRUE; llAllowInventoryDrop(allowdrop); llSay(0, "llAllowInventoryDrop is "+(string)allowdrop); } touch_start(integer total_number) { key destination = "..."; llGiveInventory(destination, "Object"); } changed(integer change) { if (change == CHANGED_INVENTORY) { llSay(0, "CHANGED_INVENTORY"); } else if (change == CHANGED_ALLOWED_DROP) { llSay(0, "CHANGED_ALLOWED_DROP"); } } }
Adhoc No-Copy Tests
Derived from Adhoc Inventory Perm Test
- User A drags no-copy object on User B
- User A detach no-copy object while flying off the region
- User A tries to rez no-copy object on a busy region multiple times
- User A puts no-copy object in a folder and tries to rez the folder
- User A puts no-copy object in a folder and tries to share the folder
- User A puts no-copy into an attachment
- User A puts no-copy for sale
- User A links no-copy object to a full perm object and tries to copy it
- User A tries to copy a new no-copy object that hasn't been rezzed yet
- User A wears no-copy object in multiple outfits
Pass/Fail Criteria
- Passes if
- e.g. No unexpected behaviors are observed
- Fails if
- e.g. Expected behaviors are broken
- e.g. A bug is detected that was not accounted for by this test plan
Tear Down
TBD