Next Owner Permissions Test

From Second Life Wiki
Jump to navigation Jump to search

[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"); 
} 
} 
}