No-Copy Regression Test

From Second Life Wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

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.
  1. Object Types:
    1. Body Part:
      1. Shape
      2. Skin
      3. Hair
      4. Eyes
    2. Clothes:
      1. Shirt
      2. Pants
      3. Shoes
      4. Socks
      5. Jacket
      6. Skirt
      7. Gloves
      8. Undershirt
      9. Alpha
      10. Tattoo
      11. Physics
    3. Gesture
    4. Notecard
    5. Script
    6. Image
    7. Sound
    8. Animation
    9. Model

Test Steps

Regression Tests

For each (no-copy) Object Type verify that:

  1. Using (wearing, playing, display) it in-world behaves/displays as expected
  2. Upon restart of the Viewer it still persists in the inventory
  3. Upon restart of the Viewer after clear cache it still persists in the inventory
  4. Is searchable on the Viewer
  5. When rezzing inworld (if applicable) it gets removed from the inventory and doesn't copy
    1. You are not able to run operations that can copy the no-copy object
  6. When sharing the (no-copy) it gets removed from the inventory and transferred to the new owner
  7. Move between inventory folders and back again, verify that there is no duplication of disappearance
  8. Add no-copy objects as inventory in objects

Functional Tests

Permissions Basics

  1. Create 6 prims and rename each: "Trans", "Copy/Trans", "Mod/Trans", "Mod/Copy/Trans", "Copy", "Mod/Copy"
  2. For each prims, right-click and change properties
    1. On the "Trans" object, under Next Owner Can: Verify "Resell/GiveAway" is Ticked and Greyed out, Close the window
    2. On the "Copy/Trans" object, under Next Owner Can: Tick the "Copy" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window.
    3. On the "Mod/Trans" object, under Next Owner Can: Tick the "Modify" Checkbox and Leave the "Resell/GiveAway" Ticked, Close the window.
    4. 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
    5. On the "Copy" object, under Next Owner Can: Tick the "Copy" Checkbox and UNTICK the "Resell/GiveAway" Tickbox, Close the window.
    6. On the "Mod/Copy" object, under Next Owner Can: Tick the "Modify" and "Copy" Checkboxes and UNTICK the "Resell/GiveAway" Tickbox, Close the window.
  3. Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following
    1. mod/copy has (no transfer) after it
    2. copy has (no modify) (no transfer) after it
    3. mod/copy/trans has nothing after it as it has all permissions
    4. mod/trans has (no copy) after it
    5. copy/trans has (no modify) after it
    6. trans has (no copy) (no modify) after it

For Sale Permissions

  1. Rez 2 prims and rename each "SaleOrig" and "SaleCopy"
  2. In their properties
    1. 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.
    2. 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
  3. Drag the Items over User B:'s avatar, User B accepts all of them and verifies the following
  4. User B confirms the received items and rezzes both on the ground
  5. User A clicks on "SaleOrig" object
    1. User A cannot buy multiple copies
  6. User A clicks on "SaleCopy" object
    1. User A can buy multiple copies

Anyone can Copy

  1. Rez a prim and take it into inventory
  2. 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
  3. Drag prim onto User B who accepts it
  4. User B rezzes his new object on the ground
  5. Verify that any avatar can take copies

Share with Group

  1. User A and User B join the Same Group
  2. User A rezzes a prim and takes it into inventory
  3. User A changes properties to: Tick the "Share with Group" Checkbox, then Close the Window
  4. Drag prim onto User B who accepts it
  5. User B sees properties that "Share with group" is ticked, and rezzes it on the ground
  6. 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

  1. Only objects with transfer permissions can be added to notices (copy)
  2. Only objects with transfer permissions can be added to notices (no-copy)

Adding objects in IMs

  1. Only objects with transfer permissions can be added to IMs (copy)
  2. Only objects with transfer permissions can be added to IMs (no-copy)

Adding objects in Notecards

  1. Only objects with transfer permissions can be added to Notecards (copy)
  2. Only objects with transfer permissions can be added to Notecards (no-copy)

LSL Inventory Tests (TBD)

  1. llAllowInventoryDrop
  2. 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

  1. User A drags no-copy object on User B
  2. User A detach no-copy object while flying off the region
  3. User A tries to rez no-copy object on a busy region multiple times
  4. User A puts no-copy object in a folder and tries to rez the folder
  5. User A puts no-copy object in a folder and tries to share the folder
  6. User A puts no-copy into an attachment
  7. User A puts no-copy for sale
  8. User A links no-copy object to a full perm object and tries to copy it
  9. User A tries to copy a new no-copy object that hasn't been rezzed yet
  10. User A wears no-copy object in multiple outfits



Pass/Fail Criteria

  1. Passes if
    1. e.g. No unexpected behaviors are observed
  2. Fails if
    1. e.g. Expected behaviors are broken
    2. e.g. A bug is detected that was not accounted for by this test plan

Tear Down

TBD