anchor.diff:       {group, clients},
        {group, sessions},
        {group, routes},
  -     {group, subscriptions}
  +     {group, subscriptions},
  +     {group, admins}
        ].
   
   groups() ->
  
positive.code:     emqttd_mnesia:ensure_stopped().
   
  brokers(_) ->
      ?assert(connect_dashbaord_(get, "api/brokers")).
  
  stats(_) ->
      ?assert(connect_dashbaord_(get, "api/stats")).
  
  ptype(_) ->
      ?assert(connect_dashbaord_(get, "api/ptype")).
  
  memory(_) ->
      ?assert(connect_dashbaord_(get, "api/memory")).
  
  cpu(_) ->
      ?assert(connect_dashbaord_(get, "api/cpu")).
  
  nodes(_) ->
      ?assert(connect_dashbaord_(get, "api/nodes")).
  
  metrics(_) ->
      ?assert(connect_dashbaord_(get, "api/metrics")).
  
  listeners(_) ->
      ?assert(connect_dashbaord_(get, "api/listeners")).
  
  bnode(_) ->
      ?assert(connect_dashbaord_(get, "api/bnode")).
  
  clients(_) ->
      ?assert(connect_dashbaord_(post, "api/clients", "page_size=100&curr_page=1")).
     
  clients_query(_) ->
      Sock = client_connect_(<<16,12,0,4,77,81,84,84,4,0,0,90,0,0>>, 4),
  
negative.code:           false
      end.
  
  auth_header_() ->
      auth_header_("admin", "public").
  
  auth_header_(User, Pass) ->
      Encoded = base64:encode_to_string(lists:append([User,":",Pass])),
      {"Authorization","Basic " ++ Encoded}.
  
  connect_dashbaord_(Method, Api, Params, Auth) ->
      Url = "http://127.0.0.1:18083/" ++ Api,
      case httpc:request(Method, {Url, [Auth], ?CONTENT_TYPE, Params}, [], []) of
      {error, socket_closed_remotely} ->
          false;
  