aboutsummaryrefslogtreecommitdiff
path: root/tests/test-x2go-wrapper.cc
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test-x2go-wrapper.cc')
-rw-r--r--tests/test-x2go-wrapper.cc78
1 files changed, 78 insertions, 0 deletions
diff --git a/tests/test-x2go-wrapper.cc b/tests/test-x2go-wrapper.cc
new file mode 100644
index 0000000..67aca58
--- /dev/null
+++ b/tests/test-x2go-wrapper.cc
@@ -0,0 +1,78 @@
+/*
+ * Copyright © 2012 Canonical Ltd. All rights reserved.
+ *
+ * Author(s): David Barth <david.barth@canonical.com>
+ *
+ */
+
+#include <gtest/gtest.h>
+
+extern "C" {
+
+#include "mock_pam.h"
+#include "mock_guest.h"
+
+ int x2goclient_wrapper (int argc, char * argv[]);
+
+const char * auth_check_path = AUTH_CHECK;
+
+}
+
+namespace {
+
+ // The fixture for testing class Foo.
+ class PyhocaWrapperTest : public ::testing::Test {
+ protected:
+ // You can remove any or all of the following functions if its body
+ // is empty.
+
+ PyhocaWrapperTest() {
+ // You can do set-up work for each test here.
+ setenv("HOME", "/tmp", 1 /* overwrite */);
+ }
+
+ virtual ~PyhocaWrapperTest() {
+ // 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/.x2go-socket");
+ }
+
+ virtual void TearDown() {
+ // Code here will be called immediately after each test (right
+ // before the destructor).
+ unlink("/tmp/.x2go-socket");
+ }
+
+ // Objects declared here can be used by all tests in the test case for Foo.
+ };
+
+ TEST_F(PyhocaWrapperTest, 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(PyhocaWrapperTest, canCallPamOpenSession) {
+ const char *argv[] = { NULL };
+
+ pam_handle_t *pamh = pam_handle_new ();
+
+ 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(0, socket_sucker());
+ EXPECT_EQ (PAM_SUCCESS,
+ pam_sm_close_session (pamh, 0, 0, argv));
+ }
+
+}