Difference between revisions of "User:Log Linden/Socks5Viewer/TestPlan"

From Second Life Wiki
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Test Scripts]]
[[Category:Test Scripts]]
{| cellspacing="0" cellpadding="0" style="clear: {{{clear|right}}}; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width: {{{width|{{{1|auto}}}}}};" {{#if:{{{limit|}}}|class="toclimit-{{{limit}}}"}}
{| cellspacing="0" cellpadding="0" style="clear: {{{clear|right}}}; margin-bottom: .5em; float: right; padding: .5em 0 .8em 1.4em; background: none; width: {{{width|{{{1|auto}}}}}};" {{*if:{{{limit|}}}|class="toclimit-{{{limit}}}"}}
| __TOC__
| __TOC__
|}
|}
Line 21: Line 21:


== Other ==
== Other ==
* Second Life account that is able to upload mesh assets on the grid being tested.
* You need a Second Life account that is able to upload mesh assets on the grid being tested. This will require you to have payment information on file and to pass a brief test on intellectual property rights. A tutorial to help you get set up is available in the [http://community.secondlife.com/t5/English-Knowledge-Base/Uploading-a-mesh-model/ta-p/974185 Second Life Knowledge Base].
* Your avatar should be a member of a group and be allowed to send messages in that group for testing.
* Your avatar should be a member of a group and be allowed to send messages in that group for testing.
* Part of the test is making sure land parcel media is functional. Find somewhere in world that has botha  
* Part of the test is making sure land parcel media is functional. Find somewhere in world that has both web parcel media and video parcel media.  
* Sandbox, or other area where building is allowed.
* Sandbox, or other area where building is allowed.
* Enable advanced mode. The proxy options are not available in basic mode.
* Have a test image file, sound file, and collada model available to test upload functionality. A sample collada model is available from the [https://collada.org/owl/download.php?sess=0&parent=126&expand=1&order=name&curview=0&binary=1&id=698/ collada.org website].
* Have a test image file, sound file, and collada model available to test upload functionality. A sample collada model is available from the [collada.org website | https://collada.org/owl/download.php?sess=0&parent=126&expand=1&order=name&curview=0&binary=1&id=698/ ].
* To test the gpu table and feature table download functionality of the viewer, a packet capture tool on the proxy host such as wireshark or tcp_dump is necessary to verify that the request tool is making use of the proxy. This might not be possible if you do not have access to your organization's proxy host.
* To test the gpu_table and feature_table download functionality of the viewer, a packet capture tool on the proxy host such as wireshark or tcp_dup is necessary to verify that the request tool is making use of the proxy. This might not be possible if you do not have access to your organization's proxy host.


= Common Procedures =
= Common Procedures =
Refer to this section when asked to do one of the following in a test step.
Refer to this section when asked to do one of the following in a test step.
* '''Enable proxy connection with HTTP traffic sent through web proxy.'''
* '''Enable proxy connection with HTTP traffic sent through web proxy.'''
*# Change these settings before logging into Second Life.
** Change these settings before logging into Second Life.
*# Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
** Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
*# Check "Use HTTP Proxy for Web pages" and enter the address and port number.
** Check "Use HTTP Proxy for Web pages" and enter the address and port number.
*# Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
** Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
*# Under other HTTP traffic proxy, select "Use HTTP Proxy".
** Under other HTTP traffic proxy, select "Use HTTP Proxy".
*# Click OK.
** Click OK.


* '''Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.'''
* '''Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.'''
*# Change these settings before logging into Second Life.
** Change these settings before logging into Second Life.
*# Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
** Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
*# Check "Use HTTP Proxy for Web pages" and enter the address and port number.
** Check "Use HTTP Proxy for Web pages" and enter the address and port number.
*# Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
** Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
*# Under other HTTP traffic proxy, select "Use SOCKS 5 Proxy".
** Under other HTTP traffic proxy, select "Use SOCKS 5 Proxy".
*# Click OK.
** Click OK.


* '''Disable all proxies'''
* '''Disable all proxies'''
*# Change these settings before logging into Second Life.
** Change these settings before logging into Second Life.
*# Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
** Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
*# Uncheck "Use HTTP Proxy for Web pages".
** Uncheck "Use HTTP Proxy for Web pages".
*# Uncheck "Use SOCKS 5 Proxy for UDP traffic".
** Uncheck "Use SOCKS 5 Proxy for UDP traffic".
*# Click OK.
** Click OK.


* '''Clear Viewer Caches'''
* '''Clear Viewer Caches'''
*# Click the "Clear Cache" button on the advanced tab of the preferences floater.
** Click the "Clear Cache" button on the advanced tab of the preferences floater.
*# Confirm that you want to clear the cache.
** Confirm that you want to clear the cache.
*# Restart the Viewer.
** Restart the Viewer.


= Test Steps =
= Test Steps =
== Configuration Consistency Checks ==
== Configuration Consistency Checks ==
# '''Expected Defaults''' Check the default configuration.
* '''Expected Defaults''' Check the default configuration.
## Install a version of the viewer that supports LLProxy communication.
** Install a version of the viewer that supports LLProxy communication.
## Start the viewer that was installed, but do not log in.
** Start the viewer that was installed, but do not log in. If you are in Basic mode, change to Advanced and restart.
## Navigate to the proxy control floater (Me->Preferences->Setup->Adjust proxy Settings.
** Navigate to the proxy control floater (Me->Preferences->Setup->Adjust proxy Settings.)
## Inspect the settings.
** Inspect the settings.
## '''Verify''' that both proxies are disabled.
** '''Verify''' that both proxies are disabled.
## Leave this floater open for the next test.
** Leave this floater open for the next test.
# '''Invalid HTTP Proxy Configuration Error-Handling'''
* '''Reset "Other HTTP traffic proxy" radio button when configuration is not possible.'''
## Enable both proxies, type in valid information for both proxies.
** Enable HTTP Proxy.
## Change the "Other HTTP traffic proxy" option to "Use SOCKS 5 proxy".
** Select HTTP proxy as the "other HTTP traffic proxy".
## Quit the viewer.
** Disable HTTP Proxy.
## Edit the settings.xml file that corresponds to the channel of the viewer you are using to test with (e.g. settings_developer.xml, settings.xml, settings_beta.xml, etc.).
** '''Verify''' that "Do not proxy." is now selected as the Other HTTP traffic Proxy.
## Change the value of Socks5ProxyEnabled to be "0". The block should look like the following.
** Enable SOCKS 5 Proxy.
<xml>
** Select SOCKS 5 proxy as the "other HTTP traffic proxy".
    <key>Socks5ProxyEnabled</key>
** Disable SOCKS 5 Proxy.
    <map>
** '''Verify''' that "Do not proxy." is now selected as the Other HTTP traffic Proxy.
      <key>Comment</key>
* '''Invalid HTTP Proxy Configuration Error-Handling''' Test a configuration that asks for HTTP via SOCKS 5 when SOCKS 5 is disabled.
      <string>Use Socks5 Proxy</string>
** Enable both proxies, enter valid information for both proxies.
      <key>Persist</key>
** Change the "Other HTTP traffic proxy" option to "Use SOCKS 5 proxy".
      <integer>1</integer>
** Quit the viewer.
      <key>Type</key>
** Edit the settings.xml file that corresponds to the channel of the viewer you are using to test with (e.g. settings_developer.xml, settings.xml, settings_beta.xml, etc.).
      <string>Boolean</string>
** Change the value of Socks5ProxyEnabled to "0".
      <key>Value</key>
** Restart the viewer.
      <integer>0</integer>
** '''Verify''' that the viewer doesn't crash
    </map>
** Open the proxy preferences floater.
</xml>
** '''Verify''' that the "Other HTTP traffic" proxy option is now set to "Do not proxy".
##: Restart the viewer.
** Enable the SOCKS 5 proxy, and authentication. Make other http traffic use SOCKS 5.  
## '''Verify''' that the viewer doesn't crash
** Click OK and quit the viewer.
## Open the proxy preferences floater.
** '''Verify''' that Secondlife.log contains the following warning:
## '''Verify''' that the "Other HTTP traffic" proxy option is now set to '''Do not proxy''.'
  2011-08-23T01:33:25Z WARNING: LLStartUp::startLLProxy: Invalid other HTTP proxy configuration.
## Quit the viewer.
* '''Invalid Authentication Configuration Error-Handling.''' Test that an unexpected authentication method will not crash the viewer.
## '''Verify''' that Secondlife.log contains the following warning:
** Before starting the viewer, change the value of Socks5AuthType to "FakeAuth", a fake value.
  "Invalid other HTTP proxy configuration."
** Start the viewer, but do not log in.
# '''Invalid authentication configuration error-handling.''' Test that an unexpected authentication method will not crash the viewer.
** '''Verify''' that the viewer doesn't crash.
## Before starting the viewer, replace the block controlling the Socks5AuthType in settings.xml with another with a fake value. The following block should work.
** '''Verify''' that in the settings proxy floater, that authentication is disabled.
<xml>
** Close the viewer.
    <key>Socks5AuthType</key>
** '''Verify''' that Secondlife.log contains the following warning:
    <map>
  2011-08-23T01:30:38Z WARNING: LLStartUp::startLLProxy: Invalid SOCKS 5 authentication type.
      <key>Comment</key>
      <string>Selected Auth mechanism for Socks5</string>
      <key>Persist</key>
      <integer>1</integer>
      <key>Type</key>
      <string>String</string>
      <key>Value</key>
      <string>FakeAuth</string>
    </map>
</xml>
## Start the viewer, but do not log in.
## '''Verify''' that the viewer doesn't crash.
## '''Verify''' that in the settings proxy floater, that authentication is disabled.
## Close the viewer.
## '''Verify''' that Secondlife.log contains the following warning:
  "Invalid SOCKS 5 authentication type."


== Proxy Enabled, other HTTP through Web Proxy ==
== Proxy Enabled, other HTTP through Web Proxy ==
# Follow the instructions above to enable the proxy and send HTTP traffic through the web proxy.
* Follow the instructions above to enable the proxy and send HTTP traffic through the web proxy.
# This should be run with the firewall fully enabled to ensure the only traffic is being sent through the proxy.
* This should be run with the firewall fully enabled to ensure the only traffic is being sent through the proxy.
# '''Verify'' that you are able to successfully log into Second Life.
* '''Verify''' that you are able to successfully log into Second Life.


=== Viewer Initialization ===
=== Viewer Initialization ===
# '''HTTP Tables Loading''' Verify that the viewer is able to fetch the GPU table and feature table via the proxy.
* '''HTTP Tables Loading''' Verify that the viewer is able to fetch the GPU table and feature table via the proxy.
## The proxy should be enabled before starting this test.
** The proxy should be enabled before starting this test.
## Close the viewer.
** Close the viewer.
## Start a packet capture on the proxy host that captures on all interfaces. Note: Even if you are unable to use packet filtering software, complete the test and verify that the error strings below are not in the log file.
** Start a packet capture on the proxy host that captures on all interfaces. Note: Even if you are unable to use packet filtering software, complete the test and verify that the error strings below are not in the log file.
## Start the viewer but do not log in.
** Start the viewer but do not log in.
## Inspect the capture for an HTTP request for an HTTP GET for a file of the form gpu_table.X.Y.Z.txt and for featuretable.X.Y.Z.txt.   
** Inspect the capture for an HTTP request for an HTTP GET for a file of the form gpu_table.X.Y.Z.txt and for featuretable.X.Y.Z.txt.   
## '''Verify''' that there was a request originating from the test machine for each of these files, and a subsequent request from the proxy host for the same files.  It is normal for each of these requests to receive a 404 response.
** '''Verify''' that there was a request originating from the test machine for each of these files, and a subsequent request from the proxy host for the same files.  It is normal for each of these requests to receive a 404 response.
## Close the viewer.
** Close the viewer.
## Inspect the Secondlife.log file.
** Inspect the Secondlife.log file.
## '''Verify''' that there are no logs matching the following in Secondlife.log.
** '''Verify''' that there are no logs matching the following in Secondlife.log.
  2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/featuretable_xp.3.0.1.238013.txt
  2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/featuretable_xp.3.0.1.238013.txt
  2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
  2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
  2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/gpu_table.3.0.1.238013.txt
  2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/gpu_table.3.0.1.238013.txt
  2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
  2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
# '''Login Screen Renders Correctly''' The logon screen should be able to load content from the web using the configured proxy.
* '''Login Screen Renders Correctly''' The logon screen should be able to load content from the web using the configured proxy.
## Start the viewer, but do not log in.
** Start the viewer, but do not log in.
##'''Verify''' that the contents of the login screen are displayed.
**'''Verify''' that the contents of the login screen are displayed.


=== Avatar Navigation and Movement ===
=== Avatar Navigation and Movement ===
# '''Walking'''
* '''Walking'''
## '''Verify''' that your avatar can move around the world.
** '''Verify''' that your avatar can move around the world.
# '''Sitting'''
* '''Sitting'''
## '''Verify''' that your avatar can sit on objects.
** '''Verify''' that your avatar can sit on objects.
# '''Flying'''
* '''Flying'''
## '''Verify''' that you can fly around the region.
** '''Verify''' that you can fly around the region.
# '''World Map'''
* '''World Map'''
## Open the World Map Floater (World->World Map).
** Open the World Map Floater (World->World Map).
## '''Verify''' that map tiles load and display the layout of the surrounding regions.
** '''Verify''' that map tiles load and display the layout of the surrounding regions.
## '''Verify''' that green dots representing avatars are displayed.
** '''Verify''' that green dots representing avatars are displayed.
## Close the World Map.
** Close the World Map.
# '''Minimap'''
* '''Minimap'''
## Open the Mini-Map Floater (World->Mini-Map).
** Open the Mini-Map Floater (World->Mini-Map).
## '''Verify''' that map tiles are displayed.
** '''Verify''' that map tiles are displayed.
# '''Region Crossing'''
* '''Region Crossing'''
## Fly or walk across a region boundary.
** Fly or walk across a region boundary.
## '''Verify''' that you successfully arrive in the other region.
** '''Verify''' that you successfully arrive in the other region.
# '''Intra-region teleport'''
* '''Intra-region teleport'''
## Teleport by double clicking in the World Map floater, within the current region.
** Teleport by double clicking in the World Map floater, within the current region.
## '''Verify''' that you arrive in the place you clicked.
** '''Verify''' that you arrive in the place you clicked.
# '''Inter-region teleport'''
* '''Inter-region teleport'''
## Teleport by double clicking in the World Map floater, somewhere other than the current region.
** Teleport by double clicking in the World Map floater, somewhere other than the current region.
## '''Verify''' that you arrive in the new region.
** '''Verify''' that you arrive in the new region.


=== Avatar Communication ===
=== Avatar Communication ===
# '''Local Chat'''
* '''Local Chat'''
## Try sending messages to others avatars standing nearby.   
** Try sending messages to others avatars standing nearby.   
## '''Verify''' that the other people receive your messages and that you can receive messages from them.
** '''Verify''' that the other people receive your messages  
# '''Group Chat'''
** '''Verify''' that you can receive messages from other people.
## Try sending messages to a group chat channel.
* '''Group Chat'''
## '''Verify''' that you can send messages and receive other messages.
** Try sending messages to a group chat channel.
# '''IM'''
** '''Verify''' that you can send messages
## Try sending private IM messages to another avatar.
** '''Verify''' that you are receiving group chat messages.
## '''Verify''' that the other avatar receives your messages, and that you are able to receive their response.
* '''IM'''
# '''Display Names'''
** Try sending private IM messages to another avatar.
## '''Verify''' that custom display names are visible for avatars that have them set.  
** '''Verify''' that the other avatar receives your messages
** '''Verify''' that you are able to receive their response.
* '''Display Names'''
** '''Verify''' that custom display names are visible for avatars that have them set.
** '''Verify''' that the display names of avatars are visible in your friends list.


=== Asset Download Tests ===
=== Asset Download Tests ===
# Before starting this test, clear your viewer cache and relog.
* Before starting this test, clear your viewer cache and relog.
# '''Texture'''
* '''Texture'''
## '''Verify''' that textures load onto surfaces in your view.
** '''Verify''' that textures load onto surfaces in your view.
# '''Sounds'''
* '''Sounds'''
## Locate the Button_click_down asset in your inventory.  Double click the sound to play it.
** Locate the Button_click_down asset in your inventory.  Double click the sound to play it.
## '''Verify''' that the sound plays.
** '''Verify''' that the sound plays.
# '''Notecard'''
* '''Notecard'''
## Locate the Community Standards notecard in the Library of your inventory.
** Locate the Community Standards notecard in the Library of your inventory.
## '''Verify''' that the notecard loads and is readable.
** '''Verify''' that the notecard loads and is readable.
# '''Gestures'''
* '''Gestures'''
## Select a gesture from the "Gesture" menu at the bottom of the window.
** Select a gesture from the "Gesture" menu at the bottom of the window.
## '''Verify''' that the gesture plays.
** '''Verify''' that the gesture plays.
# '''Mesh'''
* '''Mesh'''
## Travel to a region with mesh assets available.
** Travel to a region with mesh assets available.
## '''Verify''' that the mesh assets rez and are visible.
** '''Verify''' that the mesh assets rez and are visible.
# '''Legacy Fetch Methods'''
* '''Legacy Fetch Methods'''
## Enable the Develop menu if you haven't already. (Me->Preferences->Advanced->Show Developer Menu)
** Enable the Develop menu if you haven't already. (Me->Preferences->Advanced->Show Developer Menu)
## Disable HTTP Inventory and HTTP Textures in the Develop menu.
** Disable HTTP Inventory and HTTP Textures in the Develop menu.
## Clear the viewer cache.
** Clear the viewer cache.
## Log back into Second Life.
** Log back into Second Life.
## '''Verify''' that textures load onto surfaces in your view.
** '''Verify''' that textures load onto surfaces in your view.
## '''Verify''' that your inventory loads.
** '''Verify''' that your inventory loads.
** Re-enable HTTP Textures and HTTP inventory.
** Log out and back in for the next test.


=== Asset Creation Tests ===
=== Asset Creation Tests ===
# Move to a region where you have permission to build.
* Move to a region where you have permission to build.
# '''Texture'''
 
## Upload a test image using the upload tool (Build->Upload->Image).
* '''Sound'''
## When the upload is complete, apply that texture to an object.
** Upload a test sound using the upload tool (Build->Upload->Sound)
## '''Verify''' that the image uploaded successfully.
** When the upload is complete, double click the sound in your inventory to play it back.
# '''Sound'''
** '''Verify''' that the sound plays.
## Upload a test sound using the upload tool (Build->Upload->Sound)
* '''Notecard'''
## When the upload is complete, double click the sound in your inventory to play it back.
** In the inventory sidebar, click the "plus sign" (+) button at the bottom of the list of assets.  
## '''Verify''' that the sound plays.
** In the menu that appears, select "New Notecard".
# '''Notecard'''
** Add some text in the body of the notecard and click save.
## In the inventory sidebar, click the "plus sign" (+) button at the bottom of the list of assets.  
** Close the notecard
## In the menu that appears, select "New Notecard".
** Reopen the notecard from your inventory.
## Add some text in the body of the notecard and click save.
** '''Verify''' that the notecard text loads.
## Close the notecard
* '''Mesh'''
## Reopen the notecard from your inventory.
** Move to a mesh-enabled region.
## '''Verify''' that the notecard text loads.
** Select Build->Upload->Model to start the mesh upload process.
# '''Mesh'''
** In the file selection dialog, select the mesh object you prepared while setting up.  The example file is named duck.dae.
## Move to a mesh-enabled region.
** Select "Calculate weights & fee" at the bottom of the Upload Model dialog.
## Select Build->Upload->Model to start the mesh upload process.
** After the upload fee has been calculated, select the "Upload" button.
## In the file selection dialog, select the mesh object you prepared while setting up.  The example file is named duck.dae.
** '''Verify''' that the mesh object is added to your inventory.
## Select "Calculate weights & fee" at the bottom of the Upload Model dialog.
** Drag the mesh object out of your inventory onto the ground to rez it.
## After the upload fee has been calculated, select the "Upload" button.
** '''Verify''' that the mesh object is rezzed.
## '''Verify''' that the mesh object is added to your inventory.
* '''Object Creation'''
## Drag the mesh object out of your inventory onto the ground to rez it.
** Create a simple object using the build tools.
## '''Verify''' that the mesh object is rezzed.
** '''Verify''' that the object is created
# '''Object Creation'''
** '''Verify''' that you can take a copy of the created object into your inventory.
## Create a simple object using the build tools.
** Drop the object back into the world for the next test.
## '''Verify''' that the object is created
* '''Texture'''
## '''Verify''' that you can take a copy of the created object into your inventory.
** Upload a test image using the upload tool (Build->Upload->Image).
# '''Scripting'''
** When the upload is complete, apply that texture to the object you created.
## Right click the object you created in the previous test and select edit.
** '''Verify''' that the image uploaded successfully.
## Select the content tab of the build floater.
* '''Scripting'''
## Click the New Script button.
** Right click the object you created in the previous test and select edit.
## Double click the new script to edit.
** Select the content tab of the build floater.
## Edit the string "Hello, Avatar!" to be "Hi, Avatar!"
** Click the New Script button.
## Click save
** Double click the new script to edit.
## '''Verify''' that the script compiles.
** Edit the string "Hello, Avatar!" to be "Hi, Avatar!"
## '''Verify''' that the object has sent the message "Hi, Avatar!".
** Click save
** '''Verify''' that the script compiles.
** '''Verify''' that the object has sent the message "Hi, Avatar!".


=== Integrated Web Browser ===
=== Integrated Web Browser ===
# '''Browsing Test''' The integrated webkit browser should be able to browse while accessing the internet through a proxy.
* '''Browsing Test''' The integrated webkit browser should be able to browse while accessing the internet through a proxy.
## Enable the built-in browser. (Me->Preferences->Setup->"Use built-in browser", under "Web:").
** Enable the built-in browser. (Me->Preferences->Setup->"Use built-in browser", under "Web:").
## Enter a full url, like http://secondlife.com into text chat and send.
** Enter a full url, like http://secondlife.com into text chat and send.
## Click the link in the text chat window.
** Click the link in the text chat window.
## '''Verify''' that the built-in browser is able to access web content.
** '''Verify''' that the built-in browser is able to access web content.
 


=== Media on a Prim ===
=== Media on a Prim ===
# '''Web Media'''
* '''Web Media'''
## '''Verify''' that web media is visible.
** '''Verify''' that web media is visible.
# '''Video Media'''
* '''Video Media'''
## '''Verify''' that video media is visible.
** '''Verify''' that video media is visible.


== Proxy Enabled, other HTTP through SOCKS 5 Proxy ==
== Proxy Enabled, other HTTP through SOCKS 5 Proxy ==
# '''Repeat Connectivity Tests''' Verify that sending other HTTP traffic through the SOCKS 5 proxy works correctly.
* '''Repeat Connectivity Tests''' Verify that sending other HTTP traffic through the SOCKS 5 proxy works correctly.
## Configure the viewer as described in the '''Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.''' section above.
** Configure the viewer as described in the '''Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.''' section above.
## '''Verify'' that you are able to successfully log into Second Life.
** '''Verify'' that you are able to successfully log into Second Life.
## Rerun the following list of test cases, which are described in the section above.
** Rerun the following list of test cases, which are described in the section above.
### Viewer Initialization
*** Viewer Initialization
### Avatar Navigation and Movement
*** Avatar Navigation and Movement
### Avatar Communication
*** Avatar Communication
### Asset Download Tests
*** Asset Download Tests
### Asset Upload Tests
*** Asset Upload Tests
### Integrated Web Browser
*** Integrated Web Browser
### Media On a Prim
*** Media On a Prim
## '''Verify''' that all tests pass.
** '''Verify''' that all tests pass.


== No Proxy Enabled ==
== No Proxy Enabled ==
# '''Repeat Connectivity Tests''' Verify that users that are not using the proxy will not be negatively impacted by the change.
* '''Repeat Connectivity Tests''' Verify that users that are not using the proxy will not be negatively impacted by the change.
## Either test on another computer that is not firewalled, or relax the firewall restrictions on the testing network. If using the reference gateway configuration, run the ''nat_forward_all.sh'' script to allow traffic through without going through a proxy.
** Either test on another computer that is not firewalled, or relax the firewall restrictions on the testing network. If using the reference gateway configuration, run the ''nat_forward_all.sh'' script to allow traffic through without going through a proxy.
## Disable the proxy as described above.
** Disable the proxy as described above.
## Rerun the following list of test cases, which are described in the section above.
** Rerun the following list of test cases, which are described in the section above.
### Viewer Initialization
*** Viewer Initialization
### Avatar Navigation and Movement
*** Avatar Navigation and Movement
### Avatar Communication
*** Avatar Communication
### Asset Download Tests
*** Asset Download Tests
### Asset Upload Tests
*** Asset Upload Tests
### Integrated Web Browser
*** Integrated Web Browser
### Media On a Prim
*** Media On a Prim
## '''Verify''' that all tests pass.
** '''Verify''' that all tests pass.
## '''Verify''' that overall viewer performance is approximately the same as usual for the machine you are testing on.
** '''Verify''' that overall viewer performance is approximately the same as usual for the machine you are testing on.
## Re-enable the firewall if you disabled it before further testing.
** Re-enable the firewall if you disabled it before further testing.


== SOCKS 5 with Username/Password Authentication ==
== SOCKS 5 with Username/Password Authentication ==
# '''Successful Login with SOCKS Authentication''' Test that the viewer can connect when the SOCKS 5 host requires a password.
* '''Successful Login with SOCKS Authentication''' Test that the viewer can connect when the SOCKS 5 host requires a password.
## Enable both proxies, with "other" traffic going through SOCKS 5.   
** Enable both proxies, with "other" traffic going through SOCKS 5.   
## Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
** Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
## Enter your SOCKS 5 username and password in the appropriate fields.  If you followed the reference gateway instructions, your linux username and password should work for the socks credentials.
** Enter your SOCKS 5 username and password in the appropriate fields.  If you followed the reference gateway instructions, your linux username and password should work for the socks credentials.
## Select OK.
** Select OK.
## Try to log in to Second Life.
** Try to log in to Second Life.
## '''Verify''' that login is successful.
** '''Verify''' that login is successful.
## Leave authentication enabled for the next test.
** Leave authentication enabled for the next test.
## Optional: The previous set of connectivity tests could be run in this mode as well to verify that the Username/Password authentication method works as well. This is a lower priority than the other three modes because this configuration is behaviorally very similar to the no authentication test, and should either connect or not connect.
** Optional: The previous set of connectivity tests could be run in this mode as well to verify that the Username/Password authentication method works as well. This is a lower priority than the other three modes because this configuration is behaviorally very similar to the no authentication test, and should either connect or not connect.
# '''SOCKS 5 Password Security''' The SOCKS 5 password should not be stored in cleartext.
* '''SOCKS 5 Password Security''' The SOCKS 5 password should not be stored in cleartext.
## Leave SOCKS 5 authentication enabled in the viewer from the previous test.
** Leave SOCKS 5 authentication enabled in the viewer from the previous test.
## Close all running instances of the viewer.
** Close all running instances of the viewer.
## Navigate to the user's Second Life settings directory.   
** Navigate to the user's Second Life settings directory.   
## Search, using grep or ctrl-f in notepad depending on the platform, for the username and password you used to connect to the SOCKS 5 server in the previous step in the settings.xml that corresponds to the viewer version you are testing with (settings.xml if using a release version, settings_development.xml if using a development build, etc).
** Search, using grep or ctrl-f in notepad depending on the platform, for the username and password you used to connect to the SOCKS 5 server in the previous step in the settings.xml that corresponds to the viewer version you are testing with (settings.xml if using a release version, settings_development.xml if using a development build, etc).
## '''Verify''' that the username and password do not appear in the settings files.
** '''Verify''' that the username and password do not appear in the settings files.
## Start the viewer and disable authentication.
** Start the viewer and disable authentication.


----
----
Line 309: Line 299:
(Optional) - as new failures are observed, new test cases can be added here to supplement the functional tests in the section above.
(Optional) - as new failures are observed, new test cases can be added here to supplement the functional tests in the section above.


# '''Test for bug VWR-xxxx'''
* '''Test for bug VWR-xxxx'''
## step 1
** step 1
## step 2
** step 2
## '''Verify''' against expected behavior
** '''Verify''' against expected behavior


----
----
Line 318: Line 308:


= Pass/Fail Criteria =
= Pass/Fail Criteria =
# '''Passes''' if
* '''Passes''' if
## No unexpected behaviors are observed
** No unexpected behaviors are observed
# '''Fails''' if
* '''Fails''' if
## Deviation from expected behavior is observed
** Deviation from expected behavior is observed
## A bug is detected that was not accounted for by this test plan
** A bug is detected that was not accounted for by this test plan
## Performance degradation is observed when the proxy is disabled.
** Performance degradation is observed when the proxy is disabled.
# '''Known Issues'''
* '''Known Issues'''
## SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall that blocks the ports used for voice communication. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.
** SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall that blocks the ports used for voice communication. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.


= Tear Down =
= Tear Down =
* Disable all proxies in the viewer configuration.
* Disable all proxies in the viewer configuration.
* Disable the built-in browser.
* Disable the built-in browser.

Latest revision as of 13:13, 26 August 2011

Scope

  • This test is to verify that newly added proxy support in the viewer works as expected.
  • The user story that prompted the changes is STORM-1112 .
  • This test will only be meaningful if performed in a network environment that does not have access to second life.
  • The test also requires a working web proxy host and SOCKS 5 proxy host.
  • Estimated running time: 3 hours/platform after securing the appropriate test environment.

Set-up

Environment

  • Viewer: This test requires a build of the viewer that contains the LLProxy code. Grab the latest for your platform from the link below:
STORM-1112 Implement SOCKS 5 proxy
Allow the Second Life Viewer to connect through a SOCKS 5 proxy.
Windows | Macintosh | Linux

Source: https://bitbucket.org/log_linden/viewer_socks5
Details for these builds (build logs, included changesets)



  • Server: The test requires testing of mesh upload and download functionality, so access to a region with mesh support is required. Agni or Aditi are each fine. Region crossing will also be tested, so adjacent regions to test in will also be required.
  • A restrictive, firewalled network to connect the testing machine to is required to obtain valid test results.
  • A working web proxy host and a working SOCKS 5 host are required to complete the test.
  • Instructions to set up a reference Ubuntu Linux server that will act as a firewall and proxy gateway are available.
  • While 3rd party testers are welcome to set up a duplicate of our reference gateway server, we are also interested in results you might get in your organization's specific network setup, rather than using our reference setup. Since you might not be allowed to reconfigure your organization's firewall or proxy host, feel free to only test in the proxy configuration your organization supports and report on results you observe.

Other

  • You need a Second Life account that is able to upload mesh assets on the grid being tested. This will require you to have payment information on file and to pass a brief test on intellectual property rights. A tutorial to help you get set up is available in the Second Life Knowledge Base.
  • Your avatar should be a member of a group and be allowed to send messages in that group for testing.
  • Part of the test is making sure land parcel media is functional. Find somewhere in world that has both web parcel media and video parcel media.
  • Sandbox, or other area where building is allowed.
  • Have a test image file, sound file, and collada model available to test upload functionality. A sample collada model is available from the collada.org website.
  • To test the gpu table and feature table download functionality of the viewer, a packet capture tool on the proxy host such as wireshark or tcp_dump is necessary to verify that the request tool is making use of the proxy. This might not be possible if you do not have access to your organization's proxy host.

Common Procedures

Refer to this section when asked to do one of the following in a test step.

  • Enable proxy connection with HTTP traffic sent through web proxy.
    • Change these settings before logging into Second Life.
    • Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    • Check "Use HTTP Proxy for Web pages" and enter the address and port number.
    • Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
    • Under other HTTP traffic proxy, select "Use HTTP Proxy".
    • Click OK.
  • Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy.
    • Change these settings before logging into Second Life.
    • Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    • Check "Use HTTP Proxy for Web pages" and enter the address and port number.
    • Check "Use SOCKS 5 Proxy for UDP traffic" and enter the address and port number.
    • Under other HTTP traffic proxy, select "Use SOCKS 5 Proxy".
    • Click OK.
  • Disable all proxies
    • Change these settings before logging into Second Life.
    • Open the Proxy settings floater. Me->Preferences->Setup->"Adjust Proxy Settings"
    • Uncheck "Use HTTP Proxy for Web pages".
    • Uncheck "Use SOCKS 5 Proxy for UDP traffic".
    • Click OK.
  • Clear Viewer Caches
    • Click the "Clear Cache" button on the advanced tab of the preferences floater.
    • Confirm that you want to clear the cache.
    • Restart the Viewer.

Test Steps

Configuration Consistency Checks

  • Expected Defaults Check the default configuration.
    • Install a version of the viewer that supports LLProxy communication.
    • Start the viewer that was installed, but do not log in. If you are in Basic mode, change to Advanced and restart.
    • Navigate to the proxy control floater (Me->Preferences->Setup->Adjust proxy Settings.)
    • Inspect the settings.
    • Verify that both proxies are disabled.
    • Leave this floater open for the next test.
  • Reset "Other HTTP traffic proxy" radio button when configuration is not possible.
    • Enable HTTP Proxy.
    • Select HTTP proxy as the "other HTTP traffic proxy".
    • Disable HTTP Proxy.
    • Verify that "Do not proxy." is now selected as the Other HTTP traffic Proxy.
    • Enable SOCKS 5 Proxy.
    • Select SOCKS 5 proxy as the "other HTTP traffic proxy".
    • Disable SOCKS 5 Proxy.
    • Verify that "Do not proxy." is now selected as the Other HTTP traffic Proxy.
  • Invalid HTTP Proxy Configuration Error-Handling Test a configuration that asks for HTTP via SOCKS 5 when SOCKS 5 is disabled.
    • Enable both proxies, enter valid information for both proxies.
    • Change the "Other HTTP traffic proxy" option to "Use SOCKS 5 proxy".
    • Quit the viewer.
    • Edit the settings.xml file that corresponds to the channel of the viewer you are using to test with (e.g. settings_developer.xml, settings.xml, settings_beta.xml, etc.).
    • Change the value of Socks5ProxyEnabled to "0".
    • Restart the viewer.
    • Verify that the viewer doesn't crash
    • Open the proxy preferences floater.
    • Verify that the "Other HTTP traffic" proxy option is now set to "Do not proxy".
    • Enable the SOCKS 5 proxy, and authentication. Make other http traffic use SOCKS 5.
    • Click OK and quit the viewer.
    • Verify that Secondlife.log contains the following warning:
2011-08-23T01:33:25Z WARNING: LLStartUp::startLLProxy: Invalid other HTTP proxy configuration.
  • Invalid Authentication Configuration Error-Handling. Test that an unexpected authentication method will not crash the viewer.
    • Before starting the viewer, change the value of Socks5AuthType to "FakeAuth", a fake value.
    • Start the viewer, but do not log in.
    • Verify that the viewer doesn't crash.
    • Verify that in the settings proxy floater, that authentication is disabled.
    • Close the viewer.
    • Verify that Secondlife.log contains the following warning:
2011-08-23T01:30:38Z WARNING: LLStartUp::startLLProxy: Invalid SOCKS 5 authentication type.

Proxy Enabled, other HTTP through Web Proxy

  • Follow the instructions above to enable the proxy and send HTTP traffic through the web proxy.
  • This should be run with the firewall fully enabled to ensure the only traffic is being sent through the proxy.
  • Verify that you are able to successfully log into Second Life.

Viewer Initialization

  • HTTP Tables Loading Verify that the viewer is able to fetch the GPU table and feature table via the proxy.
    • The proxy should be enabled before starting this test.
    • Close the viewer.
    • Start a packet capture on the proxy host that captures on all interfaces. Note: Even if you are unable to use packet filtering software, complete the test and verify that the error strings below are not in the log file.
    • Start the viewer but do not log in.
    • Inspect the capture for an HTTP request for an HTTP GET for a file of the form gpu_table.X.Y.Z.txt and for featuretable.X.Y.Z.txt.
    • Verify that there was a request originating from the test machine for each of these files, and a subsequent request from the proxy host for the same files. It is normal for each of these requests to receive a 404 response.
    • Close the viewer.
    • Inspect the Secondlife.log file.
    • Verify that there are no logs matching the following in Secondlife.log.
2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/featuretable_xp.3.0.1.238013.txt
2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
2011-08-18T21:42:07Z WARNING: LLURLRequest::process_impl: URLRequest Error: 56, Failure when receiving data from the peer, http://viewer-settings.secondlife.com/gpu_table.3.0.1.238013.txt
2011-08-18T21:42:07Z INFO: LLPumpIO::processChain: Pump generated pipe err: 'STATUS_ERROR'
  • Login Screen Renders Correctly The logon screen should be able to load content from the web using the configured proxy.
    • Start the viewer, but do not log in.
    • Verify that the contents of the login screen are displayed.

Avatar Navigation and Movement

  • Walking
    • Verify that your avatar can move around the world.
  • Sitting
    • Verify that your avatar can sit on objects.
  • Flying
    • Verify that you can fly around the region.
  • World Map
    • Open the World Map Floater (World->World Map).
    • Verify that map tiles load and display the layout of the surrounding regions.
    • Verify that green dots representing avatars are displayed.
    • Close the World Map.
  • Minimap
    • Open the Mini-Map Floater (World->Mini-Map).
    • Verify that map tiles are displayed.
  • Region Crossing
    • Fly or walk across a region boundary.
    • Verify that you successfully arrive in the other region.
  • Intra-region teleport
    • Teleport by double clicking in the World Map floater, within the current region.
    • Verify that you arrive in the place you clicked.
  • Inter-region teleport
    • Teleport by double clicking in the World Map floater, somewhere other than the current region.
    • Verify that you arrive in the new region.

Avatar Communication

  • Local Chat
    • Try sending messages to others avatars standing nearby.
    • Verify that the other people receive your messages
    • Verify that you can receive messages from other people.
  • Group Chat
    • Try sending messages to a group chat channel.
    • Verify that you can send messages
    • Verify that you are receiving group chat messages.
  • IM
    • Try sending private IM messages to another avatar.
    • Verify that the other avatar receives your messages
    • Verify that you are able to receive their response.
  • Display Names
    • Verify that custom display names are visible for avatars that have them set.
    • Verify that the display names of avatars are visible in your friends list.

Asset Download Tests

  • Before starting this test, clear your viewer cache and relog.
  • Texture
    • Verify that textures load onto surfaces in your view.
  • Sounds
    • Locate the Button_click_down asset in your inventory. Double click the sound to play it.
    • Verify that the sound plays.
  • Notecard
    • Locate the Community Standards notecard in the Library of your inventory.
    • Verify that the notecard loads and is readable.
  • Gestures
    • Select a gesture from the "Gesture" menu at the bottom of the window.
    • Verify that the gesture plays.
  • Mesh
    • Travel to a region with mesh assets available.
    • Verify that the mesh assets rez and are visible.
  • Legacy Fetch Methods
    • Enable the Develop menu if you haven't already. (Me->Preferences->Advanced->Show Developer Menu)
    • Disable HTTP Inventory and HTTP Textures in the Develop menu.
    • Clear the viewer cache.
    • Log back into Second Life.
    • Verify that textures load onto surfaces in your view.
    • Verify that your inventory loads.
    • Re-enable HTTP Textures and HTTP inventory.
    • Log out and back in for the next test.

Asset Creation Tests

  • Move to a region where you have permission to build.
  • Sound
    • Upload a test sound using the upload tool (Build->Upload->Sound)
    • When the upload is complete, double click the sound in your inventory to play it back.
    • Verify that the sound plays.
  • Notecard
    • In the inventory sidebar, click the "plus sign" (+) button at the bottom of the list of assets.
    • In the menu that appears, select "New Notecard".
    • Add some text in the body of the notecard and click save.
    • Close the notecard
    • Reopen the notecard from your inventory.
    • Verify that the notecard text loads.
  • Mesh
    • Move to a mesh-enabled region.
    • Select Build->Upload->Model to start the mesh upload process.
    • In the file selection dialog, select the mesh object you prepared while setting up. The example file is named duck.dae.
    • Select "Calculate weights & fee" at the bottom of the Upload Model dialog.
    • After the upload fee has been calculated, select the "Upload" button.
    • Verify that the mesh object is added to your inventory.
    • Drag the mesh object out of your inventory onto the ground to rez it.
    • Verify that the mesh object is rezzed.
  • Object Creation
    • Create a simple object using the build tools.
    • Verify that the object is created
    • Verify that you can take a copy of the created object into your inventory.
    • Drop the object back into the world for the next test.
  • Texture
    • Upload a test image using the upload tool (Build->Upload->Image).
    • When the upload is complete, apply that texture to the object you created.
    • Verify that the image uploaded successfully.
  • Scripting
    • Right click the object you created in the previous test and select edit.
    • Select the content tab of the build floater.
    • Click the New Script button.
    • Double click the new script to edit.
    • Edit the string "Hello, Avatar!" to be "Hi, Avatar!"
    • Click save
    • Verify that the script compiles.
    • Verify that the object has sent the message "Hi, Avatar!".

Integrated Web Browser

  • Browsing Test The integrated webkit browser should be able to browse while accessing the internet through a proxy.
    • Enable the built-in browser. (Me->Preferences->Setup->"Use built-in browser", under "Web:").
    • Enter a full url, like http://secondlife.com into text chat and send.
    • Click the link in the text chat window.
    • Verify that the built-in browser is able to access web content.

Media on a Prim

  • Web Media
    • Verify that web media is visible.
  • Video Media
    • Verify that video media is visible.

Proxy Enabled, other HTTP through SOCKS 5 Proxy

  • Repeat Connectivity Tests Verify that sending other HTTP traffic through the SOCKS 5 proxy works correctly.
    • Configure the viewer as described in the Enable proxy connection with HTTP traffic sent through SOCKS 5 proxy. section above.
    • 'Verify that you are able to successfully log into Second Life.
    • Rerun the following list of test cases, which are described in the section above.
      • Viewer Initialization
      • Avatar Navigation and Movement
      • Avatar Communication
      • Asset Download Tests
      • Asset Upload Tests
      • Integrated Web Browser
      • Media On a Prim
    • Verify that all tests pass.

No Proxy Enabled

  • Repeat Connectivity Tests Verify that users that are not using the proxy will not be negatively impacted by the change.
    • Either test on another computer that is not firewalled, or relax the firewall restrictions on the testing network. If using the reference gateway configuration, run the nat_forward_all.sh script to allow traffic through without going through a proxy.
    • Disable the proxy as described above.
    • Rerun the following list of test cases, which are described in the section above.
      • Viewer Initialization
      • Avatar Navigation and Movement
      • Avatar Communication
      • Asset Download Tests
      • Asset Upload Tests
      • Integrated Web Browser
      • Media On a Prim
    • Verify that all tests pass.
    • Verify that overall viewer performance is approximately the same as usual for the machine you are testing on.
    • Re-enable the firewall if you disabled it before further testing.

SOCKS 5 with Username/Password Authentication

  • Successful Login with SOCKS Authentication Test that the viewer can connect when the SOCKS 5 host requires a password.
    • Enable both proxies, with "other" traffic going through SOCKS 5.
    • Also in the proxy settings floater, select Username/Password as the SOCKS Authentication method.
    • Enter your SOCKS 5 username and password in the appropriate fields. If you followed the reference gateway instructions, your linux username and password should work for the socks credentials.
    • Select OK.
    • Try to log in to Second Life.
    • Verify that login is successful.
    • Leave authentication enabled for the next test.
    • Optional: The previous set of connectivity tests could be run in this mode as well to verify that the Username/Password authentication method works as well. This is a lower priority than the other three modes because this configuration is behaviorally very similar to the no authentication test, and should either connect or not connect.
  • SOCKS 5 Password Security The SOCKS 5 password should not be stored in cleartext.
    • Leave SOCKS 5 authentication enabled in the viewer from the previous test.
    • Close all running instances of the viewer.
    • Navigate to the user's Second Life settings directory.
    • Search, using grep or ctrl-f in notepad depending on the platform, for the username and password you used to connect to the SOCKS 5 server in the previous step in the settings.xml that corresponds to the viewer version you are testing with (settings.xml if using a release version, settings_development.xml if using a development build, etc).
    • Verify that the username and password do not appear in the settings files.
    • Start the viewer and disable authentication.

Pass/Fail Criteria

  • Passes if
    • No unexpected behaviors are observed
  • Fails if
    • Deviation from expected behavior is observed
    • A bug is detected that was not accounted for by this test plan
    • Performance degradation is observed when the proxy is disabled.
  • Known Issues
    • SLVoice does not support proxies, therefore voice is not expected to work when running the viewer behind a strict firewall that blocks the ports used for voice communication. If voice is enabled, an error message will appear when the viewer fails to connect to the voice server.

Tear Down

  • Disable all proxies in the viewer configuration.
  • Disable the built-in browser.