anchor.diff:       {starttls, get_starttls(Features)},
        {stream_management, get_stream_management(Features)},
        {advanced_message_processing, get_advanced_message_processing(Features)},
  -     {client_state_indication, get_client_state_indication(Features)}]
  -    ++ get_sasl_mechanisms(Features).
  +     {client_state_indication, get_client_state_indication(Features)},
  +     {sasl_mechanisms, get_sasl_mechanisms(Features)}].
   
   -spec get_compression(exml:element()) -> boolean().
   get_compression(Features) ->
  
positive.code:               step/0,
                step_state/0]).
  
  -type feature() :: {atom(), boolean()}.
  -type features() :: [feature()].
  -define(CONNECTION_STEP, (escalus_connection:client(),
                            escalus_users:user_spec(),
  
negative.code: 
  -spec get_sasl_mechanisms(exml:element()) -> features().
  get_sasl_mechanisms(Features) ->
      exml_query:paths(Features, [{element, <<"mechanisms">>},
                                  {element, <<"mechanism">>}, cdata]).
  
  -spec stream_start_to_element(exml_stream:start() | exml:element()) -> exml:element().
  stream_start_to_element(#xmlel{name = <<"open">>} = Open) -> Open;
  