Teleport Test

Category:Test Scripts
== Teleport Test ==
Specs
When p2p is enabled:
* When teleporting (via landmark, map, SLURL, or finder Teleport button) to a parcel that has a Landing Point, you should arrive at the Landing Point.
* If there is no Landing Point defined for the parcel you are teleporting to, you will teleport directly to your target at the same height you had prior to teleport. You should be flying if you are > 5m over the ground. 
When p2p is disabled:
* Telehub overrides the landing point
* Offer teleport overrides landing point and Telehub.
* When arriving at a telehub, you should be facing your target destination.
* When teleporting into a p2p-disabled regions which is adjacent to a p2p-enabled region, the p2p-enabled region will behave as a giant telehub. Eg. if a p2p-enabled region is closer than a Telehub, you will be placed in the p2p enable region as close as possible to your destination.
* Teleporting to an Island when the Telehub is down will do floodfill check to find a Telehub. If a Telehub cannot be found, revert to p2p.
* Teleporting to a region beyond the range of a Telehub (6 sims), revert to p2p. 
In all cases:
* Teleport home/log in at home overrides region full.
* Gods can teleport directly to their target regardless of visibility rules.
* Gods can lure people directly to them regardless of visibility rules.
* Users can lure people directly to them if region visibility rules allow and region is not full. 
Usability
* Map should pan to the requested location for SL URLs and for llMapDestination 
Messaging
* You should receive a message if you cannot teleport to your destination for some reason, ie. region is full, region is down, you are banned, teleporting would move you farther away, teleporting is blocked.
* You should receive an error message if you try to offer someone a teleport to a full region. 
== Teleport category Definitions ==
Direct teleport
* Teleporting to a parcel with no Landing Point in a p2p Enabled region
* Teleporting to a parcel you own regardless of Landing Point in a p2p Enabled region
* Teleport Offer
* Help Request's teleport to user
* God teleport
* Teleporting Home via World menu/death/llTeleportAgentHome 
Parcel teleport (Landing Point)
* Teleporting to a parcel with a Landing Point in a p2p Enabled region 
Telehub teleport
* Teleporting to a p2p Disabled region 
* This test requires 2 users - User_A and User_B. User_A should own some land.
* Estates with the following configurations.
* BE SURE TO VERIFY before running this test that the regions are set up as specified below. When the last person ran the test, they may have had to change the configuration of the sims on the farm you are using. Don't assume that because there are sims running with matching names that they have the correct configuration. 
+-----------------------------+-----------------------------+
| | |
| | |
| "p2p without Landing Point" | "p2p, Limit 1, group land" |
+-----------------------------+-----------------------------+
| | |
| | |
| "p2p with Landing Point" | "p2p, Limit 1" |
+-----------------------------+-----------------------------+
"p2p, Limit 1, group land" should be entirely owned by a group that anyone can join, which will allow anyone to set their home here.
+-----------------------------+-----------------------------+-----------------------------+
|(TH) | | |
| | (TH) | |
| "No p2p A" | "No p2p B" | "No p2p C" |
+-----------------------------+-----------------------------+-----------------------------+
(TH) indicates Telehub placement.
+-----------------------------+
| |
| |
| "Island, Limit 1" |
+-----------------------------+
This island should be entirely owned by a group that anyone can join, which will allow anyone to set their home here.
+-----------------------------+
| |
| |
| "Island, LP" |
+-----------------------------+
This island should be divided into 2 parcels, one parcel with a Landing Point, the other without.
== Test divert to Telehub on Estates where p2p is Disabled ==
* Teleport to a Telehub
* Teleport without attachments to an estate that has p2p teleporting turned off.
* Verify you teleport to the telehub pad nearest your destination (ie. the north pad if your destination is north of the telehub).
* Verify you are facing in the direction of your destination.
* Verify the Red tracker arrow and shaft directly ahead of you and pointing at your destination. 
* Attachments survive teleport
* Attach the popgun and party hat from the Library, and wear them for the rest of the test.
* Teleport to a distant region which contains a telehub.
* Verify you teleport to the telehub pad nearest your destination.
* Verify you are facing in the direction of your destination.
* Verify the Red tracker arrow and shaft directly ahead of you and pointing at your destination.
* Verify your attachment still works. 
* Teleport to a region adjacent to Telehub region
* Teleport to a distant region adjacent to a region which contains a telehub.
* Verify you teleport to the telehub pad nearest your destination.
* Verify you are facing in the direction of your destination.
* Verify the Red tracker arrow and shaft directly ahead of you and pointing at your destination.
* Fly back into the region with no telehub
* Verify in God Tools that the "redirect X,Y" is the grid location of the sim you were redirected to. 
* Teleporting within a region succeeds if Telehub decreases your travel distance
* From the region that contains a telehub, teleport to the same region, but on the other side of the telehub.
* Verify you are moved to the Telehub. 
* Teleporting within a region fails if Telehub increases your travel distance
* From the region that contains a telehub, teleport to the same region, but to a point farther from the telehub than you currently are at. (eg. stand north of a Telehub, and teleport to a place farther north than you.)
* Verify this fails. 
* Teleporting to adjacent region succeeds if Telehub decreases your travel distance
* From the region that contains a telehub, teleport to an adjacent region on the other side of the telehub.
* Verify you are moved to the Telehub 
* Teleporting to adjacent region fails if Telehub increases your travel distance
* From the region that contains a telehub, stand on the North of the Telehub and teleport to adjacent region North of you.
* Verify this fails.
* Verify you received an appropriate teleport failure message. 
(This test failed in testing for 1.9.0 - you always went to the telehub regardless of distance)
* Teleport to an island that does not have a telehub.
* Teleport to an island that does not have a telehub.
* Verify you teleport to the exact spot you clicked. 
* Teleport to an island with a telehub.
* Teleport to an island that has a teleport.
* Verify you arrive at the telehub. 
== Teleporting with attachments ==
* Teleport with many scripted attachments.
* User_A Make a default cube
* Size it to 0.2 or so on a side
* Add the default script to it
* Make 30 copies
* Attach one copy to each attachment point
* Verify you can teleport to another telehub 
(You should save this outfit, with all attachments, as it can be useful for other tests.)
* Teleport time shouldn't be significantly longer with a lot of attachments
* As of 1.9, attachments are no longer saved to the asset server on teleport. They are directly sent to the destination region, which is much faster.
* Note how long it takes to teleport with your 30 attachments.
* Detach them all.
* Teleport again. It should take about the same amount of time. 
== Cancelling teleports ==
* Teleport via world map double-click can be cancelled
* User_A, wear some scripted attachments and open the world map.
* The teleport is going to be fast, so it takes a quick click to cancel it.
* Position the world map so a distant region is in the lower-right corner, where the teleport cancel button is going to appear.
* Teleport by double clicking on that region.
* Click the Cancel button while teleporting.
* Verify that the teleport is cancelled. 
* "Teleport Home" can be cancelled
* User_A, wear some scripted attachments and teleport home.
* Verify that the cancel button is visible during teleport. 
* Teleport due to llTeleportAgentHome() cannot be cancelled
* Attach the following script to a box. 
default
{
 touch_start(integer total_number)
 {
 llTeleportAgentHome(llDetectedKey(total_number - 1));
 }
}
* Stand on some land that you own.
* Wear some scripted attachments and click the box.
* Verify you are kicked to your home location and that there is no cancel button on the black teleport screen.
* Verify you received an appropriate message that you were teleported home by a script. 
* teleport due to death cannot be cancelled
* Uncheck the Safe option on your parcel.
* Add the following script to a large cylinder. 
// death from above
default
{
 state_entry()
 {
 llSetDamage(100);
 }
}
* Take a copy of it into your inventory, and rename it to "death!"
* Use the edit tools to position the cylinder above your head.
* Turn on physics for the object and deselect it.
* The "death!" object will hit you and teleport you home.
* Verify you are kicked to your home location and that there is no cancel button on the black teleport screen.
* Verify you see a message in your chat history indicating that died and were teleported to your home location. 
== Point to Point teleport ==
* Offer Teleport
* User_A, go to a region with no telehubs. Find User_G in the finder and Offer teleport.
* User_G, accept the teleport offer. Verify you are teleported in front of User_A. 
* Teleport home bypasses Landing Point
* Set the Landing Point and your move to different locations on the same parcel.
* Teleport Home and verify you arrive at your home location. 
* p2p teleporting to an parcel without a Landing Point
* On a p2p enabled estate, teleporting to a parcel that has the Landing Point set to None.
* Verify you arrive at the point you chose. 
== Place to Place teleport ==
* p2p teleport to a parcel with a Landing Point
* Teleport to a parcel with a Landing Point
* Verify you arrive at the Landing Point 
* Teleport to banned parcels
* Should move you to closest spot on that sim that you are not banned from.
* If you are banned from all parcels on the sim, you should get a message that no available teleport location could be found. 
* Teleport to banned estates
* Teleport to an estate you are banned from (via landmark as it's probably invisible to you). Alternately, you can open the world map, enter God mode, click on the region, exit God mode, and hit teleport.
* Verify get an error message "You are banned from the region." 
== Teleporting to a region which is full ==
* Teleport to full region shunts to nearest available region.
* UserA, go to a mainland region and set the Agent Limit to 1.
* UserB, teleport to that region.
* Verify UserB arrives at the nearest region that is not full.
* Verify you received an appropriate message indicating why you couldn't reach your target destination. 
* Can't offer teleport from a full region
* UserA, go to region with Agent Limit of 1
* Try to offer teleport to UserB
* You should get a message saying you can't offer a teleport to a region that is full. 
* Teleport Offer to a full region shunts to nearest available region.
* UserA, go to a region which has an Agent Limit of 1(region "p2p, Limit 1" on Preview).
* Set the agent limit to 2.
* UserA, offer Teleport to UserB. UserB, don't accept it yet.
* UserA, set the agent limit back to 1.
* UserB, accept the Teleport Offer.
* Verify UserB arrives at the nearest region that is not full
* Verify you received an appropriate message indicating why you couldn't reach your target destination. 
* Teleport to a full Private Island fails
* UserA, go to a Private Island which has an Agent Limit of 1(region "Island, Limit 1" on Preview).
* UserB, teleport to that region
* Verify UserB does not teleport
* Verify you received an appropriate message indicating why you couldn't reach your target destination. 
* Teleport Home to a full Private Island succeeds
* UserA, set your home on a Private Island(region "Island, Limit 1" on Preview), then go back to the mainland.
* UserB, go to the Private Island.
* UserA, teleport Home.
* Verify UserA arrives at their home position. 
* Offer teleport to a full Private Island fails
* UserA, go to the mainland
* UserB, go to a Private Island which has an Agent Limit of 1(region "Island, Limit 1" on Preview)
* UserB, set the agent limit to 2.
* UserB offer teleport to UserA. UserA, don't accept yet.
* UserB, set the agent limit back to 1.
* UserA, accept the teleport.
* UserB, Verify your Teleport Offer fails with an error message. 
== Logging in when region is full or down ==
* Logging in to a mainland region that is full succeeds
* UserA, go to a region with an Agent Limit of 1("p2p, Limit 1"), then log out.
* UserB, go to that same region.
* UserA, log in.
* Verify UserA logs into the full region. 
* Logging in to a Island region that is full succeeds
* UserA, go to a Private Island which has an Agent Limit of 1(region "Island, Limit 1" on Preview), then log out.
* UserB, go to that same region.
* UserA, log in.
* Verify UserA logs into the full Island. 
Flying after teleport
* Same flying state after p2p teleport
* Stand on the ground and teleport to a parcel that does not have a Landing Point in a p2p enabled region.
* Verify you are standing on the ground. 
* Same hover height after p2p teleport
* Hover a couple meters above the ground and teleport to a parcel that does not have a Landing Point in a p2p enabled region.
* Verify you are hovering at the same relative height above the ground. 
== Logging into SL via clicking a SLURL ==
* Setup:
* If you are testing on Preview grid, add the following line to a SLURL.HTML file.
* Use the name of a sim that you know is up in the preview grid. 
<a href="secondlifepreview://Oak%20Grove/136/24">Preview Oak Grove/136/24</a>
* You may need to replace "secondlifepreview" with "secondlifesiva" or "secondlifedurga" depending on what grid you are using.
* If you are testing on the main grid, add the following line to a SLURL.HTML file. 
<a href="secondlife://Oak%20Grove/136/24">Oak Grove/136/24</a>
* You can save time by preparing all the URLs you need below in a single file, then using just the one file for testing. 
* Log in via SLURL
* Load the file in a web browser, and click the link.
* Verify SL starts, and that you are logged into Oak Grove (if p2p is turned on there) 
* Login to a full island via SLURL
* Log UserA into an Island that has an Agent Limit of 1.
* UserB, modify SLURL.HTML to point at that Island, load the file in a web browser, and click the link.
* Verify SL starts, and you are placed on the mainland (your parent estate). Verify the World Map is open, and the Island is highlighted with a red circle.
* Verify you received an appropriate message indicating why you couldn't reach your target destination. 
* Login to a full mainland region via SLURL
* Log UserA into a region that has an Agent Limit of 1. ("Agent Limit 1" on Preview)
* UserB, modify SLURL.HTML to point at that region, load the file in a web browser, and click the link.
* Verify SL starts, and you are placed on the nearest available region to your target. Verify the World Map is open, and the Island is highlighted with a red circle.
* Verify you received an appropriate message indicating why you couldn't reach your target destination. 
* Clicking a SLURL while SL is running
* Click the link from previous step while SL is running.
* Verify the World Map opens and the destination is highlighted with a red circle. 
* Bogus values in SL URLs
* Try changing the coordinates to something like /555/555/. Does it highlight the wrong region? 
* 3D SL URLs
* Try these URLs: 
<a href="secondlife://Oak%20Grove/111/93/80">Unreachable altitude in Oak Grove/111/93/80</a>
<a href="secondlife://Oak%20Grove/111/93/40">Reachable altitude in Oak Grove/111/93/40</a>
LSL tests related to p2p release (these need to be moved to a parcel test)
* As of 1.8, if you are not allowed into a parcel, you can't touch or buy objects inside the parcel.
* Get the key of UserB with this script: 
default
{
 touch_start(integer num)
 {
 llSay(0, (string)llDetectedKey(0));
 }
}
* UserA turn on "allow agents" on your parcel.
* Put the following script on a box and have UserA click them. 
// permanent parcel pass
default
{
 touch_start(integer total_number)
 {
 // replace this with UserB's key
 key target = "a2e76fcd-9360-4f6d-a924-938f923df11a";
 llWhisper(0, "UserB was given a permanent pass");
 llAddToLandPassList(target, 0);
 }
}
* Verify that UserB can enter the parcel.
* Verify that UserB is on the "allowed agents" list in the About Land dialog.
* UserA turn off "allow agents" on the parcel
* UserA turn on "ban agents" on the parcel
* Have UserA click a box with this script: 
default
{
 touch_start(integer total_number)
 {
 // replace this with UserB's key
 key target = "a2e76fcd-9360-4f6d-a924-938f923df11a";
 llWhisper(0, "UserB was banned");
 llAddToLandBanList(target, 0);
 }
}
* Verify that UserB cannot enter the parcel.
* Verify that UserB appears in the "ban agents" list for the parcel.
* Verify that UserB does not appear in the "allow agents" list for the parcel - should have been automatically removed. 
* Remove UserB from the ban agents list.
* Repeat the above tests when UserB is offline. UserB should still appear in the allow agents and ban agents lists, if the "allow agents" and "ban agents" checkboxes are checked, despite the fact that he is offline. 
* Verify that you cannot add UserA to the allowed agents or banned agents lists, because this is UserA's parcel and he always has access. 
* Verify the script below opens the map and highlights the correct destination. The Z should go no higher than 768. 
// teleport
default
{
 touch_start(integer total_number)
 {
 llMapDestination("Freelon", <233,74,10000>, ZERO_VECTOR);
 }
}
Category:QA Portal
Category:Quality Assurance