anchor.diff:  	ok = ocs:delete_product(ProductName),
   	{error, not_found} = ocs:find_product(ProductName).
   
  +add_user() ->
  +	[{userdata, [{doc, "Create a new user"}]}].
  +
  +add_user(_Config) ->
  +	User = "staff_billing",
  +	Password = ocs:generate_password(),
  +	Locale = "en",
  +	{ok, {E1, E2}} = ocs:add_user(User, Password, Locale),
  +	true = is_integer(E1),
  +	true = is_integer(E2),
  +	{Port, Address, Dir, _} = get_params(),
  +	{ok, #httpd_user{username = User, password = Password,
  +	user_data = UserData}} = mod_auth:get_user(User, Address, Port, Dir),
  +	{_, Locale} = lists:keyfind(locale, 1, UserData),
  +	{_, {E1, E2}} = lists:keyfind(last_modified, 1, UserData).
  +
   %%---------------------------------------------------------------------
   %%  Internal functions
   %%---------------------------------------------------------------------
   
  +get_params() ->
  +	{_, _, Info} = lists:keyfind(httpd, 1, inets:services_info()),
  +	{_, Port} = lists:keyfind(port, 1, Info),
  +	{_, Address} = lists:keyfind(bind_address, 1, Info),
  +	{ok, EnvObj} = application:get_env(inets, services),
  +	{httpd, HttpdObj} = lists:keyfind(httpd, 1, EnvObj),
  +	{directory, {Directory, AuthObj}} = lists:keyfind(directory, 1, HttpdObj),
  +	case lists:keyfind(require_group, 1, AuthObj) of
  +		{require_group, [Group | _T]} ->
  +			{Port, Address, Directory, Group};
  +		false ->
  +			exit(not_found)
  +	end.
  
positive.code: -include("ocs_eap_codec.hrl").
  -include("ocs.hrl").
  -include_lib("common_test/include/ct.hrl").
  
  %% support deprecated_time_unit()
  -define(MILLISECOND, milli_seconds).
  
negative.code: all() -> 
  	[client, get_all_clients, update_client_password, delete_client,
  	subscriber, update_password, update_attributes, delete_subscriber,
  	add_product, find_product, get_products, delete_product, add_user].
  
  %%---------------------------------------------------------------------
  %%  Test cases
  