87
85
fs = geis_subscription_add_filter(sub, filter);
88
86
EXPECT_EQ(fs, GEIS_STATUS_SUCCESS) << "can not add device term";
90
GeisStatus dispatch_status= geis_dispatch_events(geis_);
91
while (dispatch_status == GEIS_STATUS_CONTINUE
92
|| dispatch_status == GEIS_STATUS_SUCCESS)
88
set_geis_event_handler([&](Geis, GeisEvent event)
95
GeisStatus event_status = geis_next_event(geis_, &event);
96
while (event_status == GEIS_STATUS_CONTINUE
97
|| event_status == GEIS_STATUS_SUCCESS)
90
switch (geis_event_type(event))
99
switch (geis_event_type(event))
92
case GEIS_EVENT_INIT_COMPLETE:
101
case GEIS_EVENT_INIT_COMPLETE:
103
EXPECT_EQ(GEIS_STATUS_SUCCESS, geis_subscription_activate(sub))
104
<< "can not activate subscription";
106
GeisBoolean off = GEIS_FALSE;
107
geis_set_configuration(geis_,
108
GEIS_CONFIG_DISCARD_DEVICE_MESSAGES,
110
new_device.reset(new Testsuite::EvemuDevice(TEST_DEVICE_PROP_FILE));
111
device_has_been_created = GEIS_TRUE;
115
case GEIS_EVENT_DEVICE_AVAILABLE:
116
new_device->play(TEST_DEVICE_EVENTS_FILE);
119
case GEIS_EVENT_GESTURE_BEGIN:
120
case GEIS_EVENT_GESTURE_UPDATE:
122
EXPECT_EQ(device_has_been_created, GEIS_TRUE)
123
<< "gesture events without device";
124
gesture_events_received = device_has_been_created;
94
EXPECT_EQ(GEIS_STATUS_SUCCESS, geis_subscription_activate(sub))
95
<< "can not activate subscription";
97
GeisBoolean off = GEIS_FALSE;
98
geis_set_configuration(geis_,
99
GEIS_CONFIG_DISCARD_DEVICE_MESSAGES,
101
new_device.reset(new Testsuite::EvemuDevice(TEST_DEVICE_PROP_FILE));
102
device_has_been_created = GEIS_TRUE;
131
geis_event_delete(event);
132
event_status = geis_next_event(geis_, &event);
106
case GEIS_EVENT_DEVICE_AVAILABLE:
107
new_device->play(TEST_DEVICE_EVENTS_FILE);
110
case GEIS_EVENT_GESTURE_BEGIN:
111
case GEIS_EVENT_GESTURE_UPDATE:
113
EXPECT_EQ(device_has_been_created, GEIS_TRUE)
114
<< "gesture events without device";
115
gesture_events_received = device_has_been_created;
137
FD_SET(geis_fd(), &read_fds);
138
timeval tmo = { 5, 0 };
139
int sstat = select(geis_fd() + 1, &read_fds, NULL, NULL, &tmo);
140
EXPECT_GT(sstat, -1) << "error in select";
143
dispatch_status = geis_dispatch_events(geis_);
123
geis_dispatch_loop();
146
124
EXPECT_TRUE(gesture_events_received) << "no gesture events received";
147
125
EXPECT_TRUE(device_has_been_created) << "no device created";
148
126
geis_filter_delete(filter);
173
151
fs = geis_subscription_add_filter(sub, filter);
174
152
EXPECT_EQ(fs, GEIS_STATUS_SUCCESS) << "can not add device term";
176
GeisStatus dispatch_status= geis_dispatch_events(geis_);
177
while (dispatch_status == GEIS_STATUS_CONTINUE
178
|| dispatch_status == GEIS_STATUS_SUCCESS)
154
set_geis_event_handler([&](Geis, GeisEvent event)
181
GeisStatus event_status = geis_next_event(geis_, &event);
182
while (event_status == GEIS_STATUS_CONTINUE
183
|| event_status == GEIS_STATUS_SUCCESS)
185
switch (geis_event_type(event))
187
case GEIS_EVENT_INIT_COMPLETE:
189
GeisBoolean off = GEIS_FALSE;
190
geis_set_configuration(geis_,
191
GEIS_CONFIG_DISCARD_DEVICE_MESSAGES,
193
new_device.reset(new Testsuite::EvemuDevice(TEST_DEVICE_PROP_FILE));
197
case GEIS_EVENT_DEVICE_AVAILABLE:
199
EXPECT_EQ(GEIS_STATUS_SUCCESS, geis_subscription_activate(sub))
200
<< "can not activate subscription";
205
case GEIS_EVENT_GESTURE_BEGIN:
206
case GEIS_EVENT_GESTURE_UPDATE:
214
geis_event_delete(event);
215
event_status = geis_next_event(geis_, &event);
220
FD_SET(geis_fd(), &read_fds);
221
timeval tmo = { 5, 0 };
222
int sstat = select(geis_fd() + 1, &read_fds, NULL, NULL, &tmo);
223
EXPECT_GT(sstat, -1) << "error in select";
226
dispatch_status = geis_dispatch_events(geis_);
156
if (geis_event_type(event) == GEIS_EVENT_INIT_COMPLETE)
158
GeisBoolean off = GEIS_FALSE;
159
geis_set_configuration(geis_,
160
GEIS_CONFIG_DISCARD_DEVICE_MESSAGES,
162
new_device.reset(new Testsuite::EvemuDevice(TEST_DEVICE_PROP_FILE));
164
else if (geis_event_type(event) == GEIS_EVENT_DEVICE_AVAILABLE)
166
EXPECT_EQ(GEIS_STATUS_SUCCESS, geis_subscription_activate(sub))
167
<< "can not activate subscription";
170
else if (geis_event_type(event) == GEIS_EVENT_DEVICE_UNAVAILABLE)
172
geis_dispatch_stop(true);
176
geis_dispatch_loop();
228
177
geis_filter_delete(filter);
229
178
geis_subscription_delete(sub);
183
* Test case for lp:987539: report X and Y axis extents.
185
* This test creates a devicve with known X and Y extents and verifies the
186
* extent attributes are reported with the expected values.
188
TEST_F(GeisDeviceTests, deviceAttrs)
190
GeisBoolean off = GEIS_FALSE;
191
geis_set_configuration(geis_, GEIS_CONFIG_DISCARD_DEVICE_MESSAGES, &off);
193
Testsuite::EvemuDevice test_device(TEST_DEVICE_PROP_FILE);
194
set_geis_event_handler([&](Geis, GeisEvent event)
196
if (geis_event_type(event) == GEIS_EVENT_DEVICE_AVAILABLE)
198
GeisAttr attr = geis_event_attr_by_name(event, GEIS_EVENT_ATTRIBUTE_DEVICE);
199
EXPECT_TRUE(attr != NULL);
200
GeisDevice device = (GeisDevice)geis_attr_value_to_pointer(attr);
201
ASSERT_TRUE(test_device.name() == geis_device_name(device));
203
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_MIN_X);
204
ASSERT_TRUE(attr != NULL);
205
EXPECT_FLOAT_EQ(0.0f, geis_attr_value_to_float(attr));
206
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_MAX_X);
207
ASSERT_TRUE(attr != NULL);
208
EXPECT_FLOAT_EQ(9600.0f, geis_attr_value_to_float(attr));
209
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_RES_X);
210
ASSERT_TRUE(attr != NULL);
211
EXPECT_FLOAT_EQ(0.0f, geis_attr_value_to_float(attr));
212
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_MIN_Y);
213
ASSERT_TRUE(attr != NULL);
214
EXPECT_FLOAT_EQ(0.0f, geis_attr_value_to_float(attr));
215
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_MAX_Y);
216
ASSERT_TRUE(attr != NULL);
217
EXPECT_FLOAT_EQ(7200.0f, geis_attr_value_to_float(attr));
218
attr = geis_device_attr_by_name(device, GEIS_DEVICE_ATTRIBUTE_RES_Y);
219
ASSERT_TRUE(attr != NULL);
220
EXPECT_FLOAT_EQ(0.0f, geis_attr_value_to_float(attr));
223
geis_dispatch_loop();
233
227
} // anonymous namespace