#include <glib-object.h>
#include <dpl/test/test_runner.h>
-TemporaryTestUser::TemporaryTestUser(std::string userName, GumUserType userType, bool offline) {
- m_userName = userName;
- m_id = 0;
- m_userType = userType;
+TemporaryTestUser::TemporaryTestUser(std::string userName, GumUserType userType, bool offline)
+ : m_uid(0)
+ , m_gid(0)
+ , m_userName(userName)
+ , m_userType(userType)
+{
m_guser = gum_user_create_sync (offline);
RUNNER_ASSERT_MSG(m_guser != nullptr, "Failed to create gumd user object");
g_object_set(G_OBJECT(m_guser), "usertype", userType, NULL);
g_object_set(G_OBJECT(m_guser), "username", userName.c_str(), NULL);
gboolean added = gum_user_add_sync(m_guser);
RUNNER_ASSERT_MSG(added, "Failed to add user");
- g_object_get(G_OBJECT(m_guser), "uid", &m_id, NULL);
- RUNNER_ASSERT_MSG(m_id != 0, "Something strange happened during user creation");
+ g_object_get(G_OBJECT(m_guser), "uid", &m_uid, NULL);
+ RUNNER_ASSERT_MSG(m_uid != 0, "Something strange happened during user creation. uid == 0.");
+ g_object_get(G_OBJECT(m_guser), "gid", &m_gid, NULL);
+ RUNNER_ASSERT_MSG(m_gid != 0, "Something strange happened during user creation. gid == 0.");
}
-void TemporaryTestUser::remove(void) {
+void TemporaryTestUser::remove(void)
+{
if(m_guser){
gum_user_delete_sync(m_guser, TRUE);
g_object_unref(m_guser);
}
}
-TemporaryTestUser::~TemporaryTestUser() {
+TemporaryTestUser::~TemporaryTestUser()
+{
this->remove();
}
TemporaryTestUser(std::string userName, GumUserType userType, bool offline);
~TemporaryTestUser();
void remove(void);
- uid_t getUid() const {return m_id;}
+ uid_t getUid() const {return m_uid;}
+ uid_t getGid() const {return m_gid;}
const std::string& getUserName() const {return m_userName;}
GumUserType getUserType() const {return m_userType;}
private:
- uid_t m_id;
+ uid_t m_uid;
+ uid_t m_gid;
std::string m_userName;
GumUserType m_userType;
GumUser *m_guser;