~ubuntu-branches/ubuntu/quantal/geis/quantal

« back to all changes in this revision

Viewing changes to testsuite/geis2/check_class.c

  • Committer: Package Import Robot
  • Author(s): Chase Douglas
  • Date: 2012-07-30 08:51:42 UTC
  • Revision ID: package-import@ubuntu.com-20120730085142-jrc33ygjvt0ob1wl
Tags: upstream-2.2.11
ImportĀ upstreamĀ versionĀ 2.2.11

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/**
 
2
 * Unit tests for GEIS v2.0 Input Gesture Class Module.
 
3
 */
 
4
#include <check.h>
 
5
 
 
6
#include <geis/geis.h>
 
7
#include "libgeis/geis_test_api.h"
 
8
 
 
9
 
 
10
/* fixtures */
 
11
static Geis g_geis;
 
12
 
 
13
/* fixture setup */
 
14
static void
 
15
construct_geis()
 
16
{
 
17
  g_geis = geis_new(GEIS_INIT_MOCK_BACKEND,
 
18
                    GEIS_INIT_TRACK_GESTURE_CLASSES,
 
19
                    NULL);
 
20
}
 
21
 
 
22
/* fixture teardown */
 
23
static void
 
24
destroy_geis()
 
25
{
 
26
  geis_delete(g_geis);
 
27
}
 
28
 
 
29
 
 
30
/* Compile-time test to ensure types are defined */
 
31
START_TEST(geis_gesture_class_types)
 
32
{
 
33
  GeisGestureClass gesture_class CK_ATTRIBUTE_UNUSED;
 
34
}
 
35
END_TEST
 
36
 
 
37
/* Compile-time test to ensure constants are defined */
 
38
START_TEST(geis_gesture_class_constants)
 
39
{
 
40
  GeisString attr_name;
 
41
  attr_name = GEIS_CLASS_ATTRIBUTE_NAME;
 
42
  attr_name = GEIS_CLASS_ATTRIBUTE_ID;
 
43
  attr_name = GEIS_EVENT_ATTRIBUTE_CLASS;
 
44
}
 
45
END_TEST
 
46
 
 
47
/* Compile-and-link-time test to verify required functions exist */
 
48
START_TEST(geis_gesture_class_functions)
 
49
{
 
50
  Geis geis = NULL;
 
51
  GeisEventCallback callback = 0;
 
52
  GeisGestureClass gesture_class = NULL;
 
53
  GeisString n CK_ATTRIBUTE_UNUSED;
 
54
  GeisInteger i CK_ATTRIBUTE_UNUSED;
 
55
  GeisSize s CK_ATTRIBUTE_UNUSED;
 
56
  GeisAttr a CK_ATTRIBUTE_UNUSED;
 
57
 
 
58
  geis_register_class_callback(geis, callback, NULL);
 
59
 
 
60
  geis_gesture_class_ref(gesture_class);
 
61
  geis_gesture_class_unref(gesture_class);
 
62
  n = geis_gesture_class_name(gesture_class);
 
63
  i = geis_gesture_class_id(gesture_class);
 
64
  s = geis_gesture_class_attr_count(gesture_class);
 
65
  a = geis_gesture_class_attr(gesture_class, 0);
 
66
}
 
67
END_TEST
 
68
 
 
69
START_TEST(receive_events)
 
70
{
 
71
  GeisStatus status;
 
72
  GeisEvent  event_out;
 
73
  int        class_event_count = 0;
 
74
 
 
75
  status = geis_dispatch_events(g_geis);
 
76
  fail_unless(status == GEIS_STATUS_SUCCESS,
 
77
              "unexpected status from geis_dispatch_events");
 
78
  status = geis_next_event(g_geis, &event_out);
 
79
  while (status == GEIS_STATUS_CONTINUE || status == GEIS_STATUS_SUCCESS)
 
80
  {
 
81
    if (geis_event_type(event_out) == GEIS_EVENT_CLASS_AVAILABLE)
 
82
    {
 
83
      ++class_event_count;
 
84
    }
 
85
    geis_event_delete(event_out);
 
86
    status = geis_next_event(g_geis, &event_out);
 
87
  }
 
88
  fail_unless(class_event_count > 0, "no class events received");
 
89
}
 
90
END_TEST
 
91
 
 
92
 
 
93
/* boilerplate */
 
94
Suite *
 
95
geis2_gesture_class_suite_new()
 
96
{
 
97
  TCase *gesture_class;
 
98
  TCase *usage;
 
99
  Suite *s = suite_create("geis2_gesture_class");
 
100
 
 
101
  gesture_class = tcase_create("gesture-class-api");
 
102
  tcase_add_test(gesture_class, geis_gesture_class_types);
 
103
  tcase_add_test(gesture_class, geis_gesture_class_constants);
 
104
  suite_add_tcase(s, gesture_class);
 
105
 
 
106
  usage = tcase_create("gesture-class-usage");
 
107
  tcase_add_checked_fixture(usage, construct_geis, destroy_geis);
 
108
  tcase_add_test(usage, receive_events);
 
109
  suite_add_tcase(s, usage);
 
110
 
 
111
  return s;
 
112
}
 
113