From e552688b70889a4879ef16ce38bc8c95e6f447c7 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 14:35:36 -0500 Subject: Steal a bunch of test infrastructure from libpam-icaclient --- tests/test-freerdp-wrapper.cc | 67 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 tests/test-freerdp-wrapper.cc (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc new file mode 100644 index 0000000..889aedb --- /dev/null +++ b/tests/test-freerdp-wrapper.cc @@ -0,0 +1,67 @@ +/* + * Copyright © 2012 Canonical Ltd. All rights reserved. + * + * Author(s): David Barth + * + */ + +#include + +extern "C" { + +#include "mock_pam.h" +#include "mock_guest.h" + + int freerdpclient_wrapper (int argc, char * argv[]); +} + +namespace { + + // The fixture for testing class Foo. + class FreerdpclientWrapperTest : public ::testing::Test { + protected: + // You can remove any or all of the following functions if its body + // is empty. + + FreerdpclientWrapperTest() { + // You can do set-up work for each test here. + setenv("HOME", "/tmp", 1 /* overwrite */); + } + + virtual ~FreerdpclientWrapperTest() { + // You can do clean-up work that doesn't throw exceptions here. + } + + // If the constructor and destructor are not enough for setting up + // and cleaning up each test, you can define the following methods: + + virtual void SetUp() { + // Code here will be called immediately after the constructor (right + // before each test). + unlink("/tmp/.freerdp-socket"); + } + + virtual void TearDown() { + // Code here will be called immediately after each test (right + // before the destructor). + unlink("/tmp/.freerdp-socket"); + } + + // Objects declared here can be used by all tests in the test case for Foo. + }; + + TEST_F(FreerdpclientWrapperTest, canLinkTheWholeGang) { + EXPECT_EQ (1, 1); // right, that's trivial, but that means + // that I got all of the wrapper and pam to link there + } + + TEST_F(FreerdpclientWrapperTest, canCallPamOpenSession) { + const char *argv[] = { NULL }; + + pam_handle_t *pamh = pam_handle_new (); + + EXPECT_EQ (PAM_SUCCESS, + pam_sm_open_session (pamh, 0, 0, argv)); + } + +} -- cgit v1.2.3 From b3857b0cb9d0ad808a40b39ae099feaac82d8b2b Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 15:39:09 -0500 Subject: Make sure to close so we don't leave processes around --- tests/test-freerdp-wrapper.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc index 889aedb..e53d94b 100644 --- a/tests/test-freerdp-wrapper.cc +++ b/tests/test-freerdp-wrapper.cc @@ -62,6 +62,8 @@ namespace { EXPECT_EQ (PAM_SUCCESS, pam_sm_open_session (pamh, 0, 0, argv)); + EXPECT_EQ (PAM_SUCCESS, + pam_sm_close_session (pamh, 0, 0, argv)); } } -- cgit v1.2.3 From d7705fcc79144eb895a8ebc04dd5561f3c8afd70 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 16:42:55 -0500 Subject: Set everything up so that the auth check binary can be different in the tests --- tests/test-freerdp-wrapper.cc | 3 +++ 1 file changed, 3 insertions(+) (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc index e53d94b..3effc2a 100644 --- a/tests/test-freerdp-wrapper.cc +++ b/tests/test-freerdp-wrapper.cc @@ -13,6 +13,9 @@ extern "C" { #include "mock_guest.h" int freerdpclient_wrapper (int argc, char * argv[]); + +const char * auth_check_path = ""; + } namespace { -- cgit v1.2.3 From 7d6377d559133048ddb17d39be6395b6c2281a19 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 17:01:11 -0500 Subject: Make the auth use the auth check utility --- tests/test-freerdp-wrapper.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc index 3effc2a..2063c5c 100644 --- a/tests/test-freerdp-wrapper.cc +++ b/tests/test-freerdp-wrapper.cc @@ -14,7 +14,7 @@ extern "C" { int freerdpclient_wrapper (int argc, char * argv[]); -const char * auth_check_path = ""; +const char * auth_check_path = AUTH_CHECK; } -- cgit v1.2.3 From 4751bcf4c80c1cfb231b3a52b376cd947fd35eb0 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 23:29:28 -0500 Subject: Adding an authenticate --- tests/test-freerdp-wrapper.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc index 2063c5c..c9d221e 100644 --- a/tests/test-freerdp-wrapper.cc +++ b/tests/test-freerdp-wrapper.cc @@ -63,6 +63,8 @@ namespace { pam_handle_t *pamh = pam_handle_new (); + EXPECT_EQ (PAM_SUCCESS, + pam_sm_authenticate (pamh, 0, 0, argv)); EXPECT_EQ (PAM_SUCCESS, pam_sm_open_session (pamh, 0, 0, argv)); EXPECT_EQ (PAM_SUCCESS, -- cgit v1.2.3 From 74540195ac67a579ba0f8a2479cfcadb6bee6cc8 Mon Sep 17 00:00:00 2001 From: Ted Gould Date: Wed, 19 Sep 2012 23:32:08 -0500 Subject: Add a set cred call like LightDM does it --- tests/test-freerdp-wrapper.cc | 2 ++ 1 file changed, 2 insertions(+) (limited to 'tests/test-freerdp-wrapper.cc') diff --git a/tests/test-freerdp-wrapper.cc b/tests/test-freerdp-wrapper.cc index c9d221e..cfe86de 100644 --- a/tests/test-freerdp-wrapper.cc +++ b/tests/test-freerdp-wrapper.cc @@ -65,6 +65,8 @@ namespace { EXPECT_EQ (PAM_SUCCESS, pam_sm_authenticate (pamh, 0, 0, argv)); + EXPECT_EQ (PAM_SUCCESS, + pam_sm_setcred (pamh, 0, 0, argv)); EXPECT_EQ (PAM_SUCCESS, pam_sm_open_session (pamh, 0, 0, argv)); EXPECT_EQ (PAM_SUCCESS, -- cgit v1.2.3