No-Copy Regression Test

Category:Test Scripts
== 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
== 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
==== 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====
# 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