<html>
 <body>
  <div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
   <table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 solid;">
    <tr>
     <td>
      This is an automatically generated e-mail. To reply, visit:
      <a href="https://reviewboard.asterisk.org/r/3881/">https://reviewboard.asterisk.org/r/3881/</a>
     </td>
    </tr>
   </table>
   <br />




<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" style="background-image: url('https://reviewboard.asterisk.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); background-position: left top; background-repeat: repeat-x; border: 1px black solid;">
 <tr>
  <td>

<div>Review request for Asterisk Developers and Mark Michelson.</div>
<div>By Jonathan Rose.</div>


<p style="color: grey;"><i>Updated Aug. 1, 2014, 5:49 p.m.</i></p>



<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Changes</h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Use reactor.callLater to queue up device state changes.  Also I accidentally named the test classes for the full state tests for this set 'partial_state.py' in the previous version.</pre>
  </td>
 </tr>
</table>





<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Bugs: </b>


 <a href="https://issues.asterisk.org/jira/browse/ASTERISK-23872">ASTERISK-23872</a>


</div>



<div style="margin-top: 1.5em;">
 <b style="color: #575012; font-size: 10pt;">Repository: </b>
testsuite
</div>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
 <table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Similar to the presence tests in https://reviewboard.asterisk.org/r/3873/

The main set of tests follows operations against the following list setup:

subscription to pres_list
pres_list: carol (presence), pres_sublist (list)
pres_sublist: alice (presence), bob (presence)

This setup is tested against the following:

subscription_establishment: Uses sipp to check that a subscription can successfully be established (only evaluates SIP traffic to and from Asterisk, not concerned with NOTIFY contents)

initial_notify: Verifies that a NOTIFY is received after subscribing and that it contains all of the expected elements

full_state_alice: After receiving the initial notify, Alice's state is changed. The following NOTIFY is checked to confirm that it contains full state for all items in pres_list (which includes state information for pres_sublist items as well)

full_state_carol: As with full_state_alice, only Carol's state is changed instead.

partial_state_alice: As with full_state_alice, only since full state information isn't set for the lists, we only want changed entries. In this case, the notify should only include pres_sublist and pres_sublist should only include alice.

partial_state_carol: As with full_state_carol, only since full state information isn't set for the lists, we only want changed entries. In this case, the notify should only include carol and not the pres_sublist.

resubscribe_full_state: After the initial notify, The sipp client resubscribes to the list. We expect to receive full state information even though the individual lists are set to give partial state information on updates.

termation_full_state: After the initial notify, the sipp client terminates the subscription. We expect to receive full state information even though the individual lists are set to give partial state information on updates and also we expect the state of each list entry to be terminated since we are unsubscribing.



In addition, I've added one additional test here which tests for an additional tier of nested lists. Right now this test crashes the rls-rlmi branch, but this is more due to the sheer size of the message than because it messes up when creating the actual list:

pres_list: carol (presence), pres_sublist (list)
pres_sublist: pres_sublist_sublist (list), alice (presence), bob (presence)
pres_sublist_sublist: dave (presence)

listception_initial_notify: This is the same as the initial notify test, only it tests for a list that goes three levels deep instead of two.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Testing </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" style="border: 1px solid #b8b5a0">
 <tr>
  <td>
   <pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: -moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">All tests were checked against the rls-rlmi branch to make sure they would run and produce the expected flow of SIP messages.  All tests had their expected RESOURCES lists changed to verify that if they differed from the contents of the NOTIFY in any way that the tests would fail.</pre>
  </td>
 </tr>
</table>


<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> (updated)</h1>
<ul style="margin-left: 3em; padding-left: 0;">

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/tests.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/termination_full_state/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/termination_full_state/termination.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/termination_full_state/sipp/termination.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/termination_full_state/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/termination_full_state/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/subscription_establishment/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/subscription_establishment/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/subscription_establishment/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/subscription_establishment/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/resubscribe_full_state/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/resubscribe_full_state/sipp/resubscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/resubscribe_full_state/resubscribe.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/resubscribe_full_state/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/resubscribe_full_state/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_carol/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_carol/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_carol/partial_state.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_carol/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_carol/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_alice/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_alice/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_alice/partial_state.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_alice/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/partial_state_alice/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/listception_initial_notify/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/listception_initial_notify/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/listception_initial_notify/notify.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/listception_initial_notify/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/listception_initial_notify/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/initial_notify/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/initial_notify/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/initial_notify/notify.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/initial_notify/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/initial_notify/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_carol/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_carol/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_carol/full_state.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_carol/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_carol/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_alice/test-config.yaml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_alice/sipp/list_subscribe.xml <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_alice/full_state.py <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_alice/configs/ast1/pjsip.conf <span style="color: grey">(PRE-CREATION)</span></li>

 <li>/asterisk/trunk/tests/channels/pjsip/subscriptions/rls/lists_of_lists/nominal/presence/full_state_alice/configs/ast1/extensions.conf <span style="color: grey">(PRE-CREATION)</span></li>

</ul>

<p><a href="https://reviewboard.asterisk.org/r/3881/diff/" style="margin-left: 3em;">View Diff</a></p>







  </td>
 </tr>
</table>




  </div>
 </body>
</html>