2
* Gtest test suite for GEIS v1 instances.
4
* Copyright 2012 Canonical Ltd.
6
#include "geis_config.h"
8
#define _XOPEN_SOURCE 600
11
#include "geis/geis.h"
12
#include "gtest_evemu_device.h"
13
#include <gtest/gtest.h>
14
#include <xorg/gtest/xorg-gtest.h>
20
const std::string TEST_DEVICE_PROP_FILE(TEST_ROOT_DIR "recordings/apple_magic_trackpad/device.prop");
24
* A special fixture that does not have any GEIS instances yet.
26
class Geis1InstanceTests
27
: public xorg::testing::Test
31
: evemu_device_(TEST_DEVICE_PROP_FILE), device_count_(0)
37
int device_seen_count() const
38
{ return device_count_; }
41
Testsuite::EvemuDevice evemu_device_;
47
* Regression test for lp:973539.
49
* The problem would only occur if an appropriate X server was
50
* unavailable or did not support the required XI2.2 functionality.
53
TEST_F(Geis1InstanceTests, noX11Server)
55
char* old_display = getenv("DISPLAY");
56
ASSERT_TRUE(old_display != NULL);
59
GeisXcbWinInfo xcb_win_info = { NULL, NULL, 0 };
60
GeisWinInfo win_info = { GEIS_XCB_FULL_WINDOW, &xcb_win_info };
62
ASSERT_NE(GEIS_STATUS_SUCCESS, geis_init(&win_info, &geis));
64
setenv("DISPLAY", old_display, ~0);
68
input_device_added(void *context,
69
GeisInputDeviceId device_id GEIS_UNUSED,
70
void *attrs GEIS_UNUSED)
72
Geis1InstanceTests* fixture = static_cast<Geis1InstanceTests*>(context);
73
fixture->device_seen();
78
null_device_function(void *context GEIS_UNUSED,
79
GeisInputDeviceId device_id GEIS_UNUSED,
80
void *attrs GEIS_UNUSED)
84
static GeisInputFuncs input_funcs = {
90
TEST_F(Geis1InstanceTests, reportDevices)
92
GeisXcbWinInfo xcb_win_info = { NULL, NULL, 0 };
93
GeisWinInfo win_info = { GEIS_XCB_FULL_WINDOW, &xcb_win_info };
95
ASSERT_EQ(GEIS_STATUS_SUCCESS,
96
geis_init(&win_info, &geis));
97
ASSERT_EQ(GEIS_STATUS_SUCCESS,
98
geis_input_devices(geis, &input_funcs, this));
99
EXPECT_GT(device_seen_count(), 0) << "no devices seen";
102
} // anonymous namespace