Next Owner Permissions Test

Category:Test Scripts
[NextOwnerPermissionsTest]
[VERSION] 0.1
[LENGTH] 00:60
[TESTERS] 2
[OVERVIEW] This test has been designed to test the Next Owner Permissions
[SETUP] Requirements: Tester 1 and Tester 2 are normal users, Rezzable Land, May need 
100L$ to create group for officer status.
[*]
[0010] Tester 1, create and Take the following 6 objects:
[0020] Object1 is set to "Next Owner Modify" off.
[0030] Object2 is next owner permissive (all the next owner permissions are checked) and 
has object1 inside its contents.
[0040] Object3 is set to "Next Owner Copy" off.
[0050] Object4 is next owner permissive and has object3 inside its contents.
[0060] Object5 is set to "Next Owner Transfer" off.
[0070] Object6 is next owner permissive and has object5 inside its contents.
[*]
[NOTES] Sell/Buy COPY: Dragging items directly from an object to the ground can be done 
with items that are fully permissive or no modify. Items that are no copy or no transfer 
must be transferred to one's inventory first, then moved to the ground.
[*]
[0080] Tester 1: Rez all 6 objects and set all 6 objects for sale (copy).
[0090] Tester 2: Buy the 6 for sale objects and rez them.
[0100] Tester 2: Verify that you cannot modify object1
[0110] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0120] Tester 2: Verify that you cannot copy object3 or object4
[0130] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0140] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0150] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Sell/Buy ORIGINAL]
[*]
[0160] Tester 1: Set all 6 objects for sale (original)
[0170] Tester 2: Buy the 6 for sale objects
[0180] Tester 2: Verify that you cannot modify object1
[0190] Tester 2; Drag object1 out of object2 and verify that you cannot modify object1
[0200] Tester 2: Verify that you cannot copy object3 or object4
[0210] Tester 2: Drag object3 out of object4 (need to drag it onto your inventory first, 
then rez it) and verify that you cannot copy object3
[0220] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0230] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Group modify]
[*]
[0240] Testers 1 & 2: Be officers in the same group. Tester 1, rez the 6 objects and 
turn "Share with group" on
[0250] Tester 2: Take the 6 objects and rez them
[0260] Tester 2: Verify that you cannot modify object1, but can modify object2
[0270] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0280] Tester 2: Verify that you cannot copy object3 or object4
[0290] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0300] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0310] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Take copy]
[*]
[0320] Tester 1: Rez the 6 objects and turn "Allow anyone to copy" on
[0330] Tester 2: Verify you can only take a copy of object1, object3, object5
[0340] Tester 1: Set "Allow anyone to copy" on the contents of object2, object4, object6 
by right clicking on the contents and choosing Properties
[0350] Tester 2: Take a copy of the 6 copyable objects and rez them.
[0360] Tester 2: Verify that you cannot modify object1, but can modify object2
[0370] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0380] Tester 2: Verify that you cannot copy object3 or object4
[0390] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0400] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0410] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Give]
[*]
[0420] Tester 1: Give the 6 objects to Tester 2:
[0430] Tester 2: Accept the 6 objects, then rez them
[0440] Tester 2: Verify that you cannot modify object1, but can modify object2
[0450] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0460] Tester 2: Verify that you cannot copy object3 or object4
[0470] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0480] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0490] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Scripted llGiveInventory()]
[*]
[0500] Tester 1: Make 6 boxes, Create and put the following script and one of the 6 test 
objects inside each
[SCRIPT] llGiveInventoryScript
[0510] Tester 2: Click each of the 6 boxes and accept the objects, then rez them
[0520] Tester 2: Verify that you cannot modify object1, but can modify object2
[0530] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0540] Tester 2: Verify that you cannot copy object3 or object4
[0550] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0560] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0570] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Scripted llGiveInventoryList()]
[*]
[0580] Tester 1: Make a box, Create an put the following script and the 6 test objects 
inside
[SCRIPT] llGiveInventoryListScript
[0590] Tester 2: Click the box and accept the folder named "objecttest", then rez the 
boxes from the folder.
[0600] Tester 2: Verify that you cannot modify object1, but can modify object2
[0610] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0620] Tester 2: Verify that you cannot copy object3 or object4
[0630] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0640] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0650] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Scripted llAllowInventoryDrop()]
[*]
[0660] Tester 2: Make a sphere and Create and add the following script:
[SCRIPT] llAllowInventoryDropScript
[0670] Tester 1: Drop each of the 6 test objects into Tester 2's sphere
[0680] Tester 2: Drag each of the test objects from the sphere onto the ground (some of 
the objects can be dragged to the ground, the others will need to dragged to the 
inventory). Verify you cannot drag object3 from object4 to the ground.
[0690] Tester 2: Verify that you cannot modify object1, but can modify object2
[0700] Tester 2: Drag object1 out of object2 and verify that you cannot modify object1
[0710] Tester 2: Verify that you cannot copy object3 or object4
[0720] Tester 2: Drag object3 out of object4 and verify that you cannot copy object3
[0730] Tester 2: Verify that you cannot give object5 or object6 to Tester 1:
[0740] Tester 2: Drag object5 out of object6 and verify that you cannot give object5 to 
Tester 1:
[*]
[Next Owner Permissions Extended]
[0750] Tester 1: Make 5 folder named; "permissive", "no-modify", "no-copy", "no-
transfer", "no-modify/no-copy", "no-modify/no-transfer"
[0760] Tester 1: Put (copy & paste is quickest) one of each of the following items in each 
of the folders, and set the "Next Owner" permissions according to the folder name.
[0770] Object
[0780] Notecard
[0790] Script
[0800] Texture
[0810] Sound
[0820] Landmark
[0830] Clothing
[0840] Body Part
[0850] Tester 1: Give each of the 5 folders to Tester 2:
[0860] Tester 2: Examine the permissions on these items and verify the items follow the 
permissions indicated by it's folder name.
[*]
[0870.0010] Tester 1: Right-click on the Ground and Select "Create" from the Pie Menu and 
Rez 2 Cubes, call them "Sender" and "Receiver"
[0870.0020] Tester 1: Right-click on the "Reciever" cube and Select Edit, Click "More >>" 
if neccessary
[0870.0030] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and 
Paste the following script over the default script.
[SCRIPT] Changedscript
[0870.0040] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit 
Windows.
[0870.0050] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if 
neccessary
[0870.0060] Tester 1: Click the Contents Tab, and Press the "New Script" Button, Copy and 
Paste the following script over the default script.
[SCRIPT] llGiveinventorykeyscript
[0870.0070] Tester 1: Once copied and Pasted, Click "Save" and Close the Script and Edit 
Windows.
[0870.0080] Tester 1: Left-click on the Reciever Cube and Copy the Key is Chats
[0870.0090] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if 
neccessary
[0870.0100] Tester 1: Click the Content Tab, and Open the Script, Replace the Key in the 
Script with the one you just copied
[0870.0110] Tester 1: Click "Save" then, Close the Script window.
[0870.0120] Tester 2: Right-click on the ground and "Create" a prim with no copy 
perms, "Take" it and send it to Tester 1:
[0870.0130] Tester 1: Look in your Inventory for the (no copy) Object from Tester 2:
[0870.0140] Tester 1: Left-click-ctrl drag it onto the "Sender" Prim or you can Drag it 
into the Content Folder
[0870.0150] Tester 1: Close any open Edit Windows
[0870.0160] Tester 1: Left-click the "Sender" Cube, you should hear a message from 
the "Reciever" prim
[0870.0170] Tester 1: Verify the no-copy object was removed from the Sender object and 
sent to the Reciever
[0870.0180] Testers 1 & 2: Try this with a variety of permission types, nocopy/nomod, 
nomod, and those with and without trans. and verify the expected results are correct.
[*]
[0880.0010] Tester 2: Right-click on the Ground and Select "Create" from the Pie Menu and 
Rez a Cube, call it "Receiver"
[0880.0020] Tester 2: Right-click on the "Reciever" cube and Select Edit, Click "More >>" 
if neccessary
[0880.0030] Tester 2: Click the Contents Tab, and Press the "New Script" Button, Copy and 
Paste the following script over the default script.
[SCRIPT] Changedscript
[0880.0040] Tester 2: Once copied and Pasted, Click "Save" and Close the Script and Edit 
Windows.
[0880.0050] Tester 2: Left-click on the Reciever Cube and Copy the Key is Chats and pass 
it onto Tester 1:
[0880.0060] Tester 1: Right-click on the "Sender" cube and Select Edit, Click "More >>" if 
neccessary
[0880.0070] Tester 1: Click the Content Tab, and Open the Script, Replace the Key in the 
Script with the one you just copied
[0880.0080] Tester 1: Click "Save" then, Close the Script window. Remove any objects in 
the contents.
[0880.0090] Tester 2: Right-click on the ground and "Create" a prim with no copy 
perms, "Take" it and send it to Tester 1:
[0880.0100] Tester 1: Look in your Inventory for the (no copy) Object from Tester 2:
[0880.0110] Tester 1: Left-click-ctrl drag it onto the "Sender" Prim or you can Drag it 
into the Content Folder
[0880.0120] Tester 1: Close any open Edit Windows
[0880.0130] Tester 1: Left-click the "Sender" Cube, you should hear a message from 
the "Reciever" prim
[0880.0140] Tester 1: Verify the no-copy object was removed from the Tester 1:'s Sender 
object and sent to the Tester 2:'s Reciever
[0880.0150] Testers 1 & 2: Try this with a variety of permission types, nocopy/nomod, 
nomod, and those with and without trans and verify the expected results are correct.
[END]
[llGiveInventoryScript]
default 
{ 
touch_start(integer total_number) 
{ 
llGiveInventory(llDetectedKey(total_number - 1), (string)llGetInventoryName(INVENTORY_OBJECT, 0)); 
} 
}
[llGiveInventoryListScript]
default 
{ 
touch_start(integer total_number) 
{ 
integer num_objects = llGetInventoryNumber( INVENTORY_OBJECT ); 
list object_list = []; 
integer i; 
for ( i = 0; i < num_objects; i++ ) 
{ 
object_list = object_list + llGetInventoryName( INVENTORY_OBJECT, i ); 
} 
llGiveInventoryList(llDetectedKey(0), "objecttest", object_list); 
} 
}
[llAllowInventoryDropScript]
default 
{ 
state_entry() 
{ 
llAllowInventoryDrop(TRUE); 
} 
}
[Changedscript]
// changed 
default 
{ 
state_entry() 
{ 
llSay(0, "Hello, Avatar!"); 
integer allowdrop = TRUE; 
llAllowInventoryDrop(allowdrop); 
llSay(0, "llAllowInventoryDrop is "+(string)allowdrop); 
} 
touch_start(integer total_number) 
{ 
llSay(0, "key is "+(string)llGetKey()); 
} 
changed(integer change) 
{ 
if (change == CHANGED_INVENTORY) 
{ 
llSay(0, "CHANGED_INVENTORY"); 
} 
else if (change == CHANGED_ALLOWED_DROP) 
{ 
llSay(0, "CHANGED_ALLOWED_DROP"); 
} 
} 
}
[llGiveinventorykeyscript]
//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 = "c7a62f0f-b2f9-dc5e-6f6d-682df139c0f4"; 
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"); 
} 
} 
}
Category:QA Portal
Category:Quality Assurance