2004-05-28 Padraig O'Briain <padraig.obriain@sun.com>
[platform/core/uifw/at-spi2-atk.git] / test / login-helper-server-test.c
1 #include <libbonobo.h>
2 #include <login-helper/login-helper.h>
3
4 static void test_init_login_helper_vpointers (LoginHelper *helper, 
5                                               gpointer test_set_safe, 
6                                               gpointer test_get_device_reqs, 
7                                               gpointer test_get_raise_windows);
8
9 static gboolean test_set_safe (LoginHelper *helper, gboolean safe);
10
11 static LoginHelperDeviceReqFlags test_get_device_reqs (LoginHelper *helper);
12
13 static Window* test_get_raise_windows (LoginHelper *helper);
14
15 int
16 main (int argc, char **argv)
17 {
18         int          ret;
19         char        *obj_id, *display_name;
20         BonoboObject *helper;
21         
22         if (!bonobo_init (&argc, argv))
23         {
24                 g_error ("Could not initialize oaf / Bonobo");
25         }
26         
27         obj_id = "OAFIID:GNOME_GOK:1.0";  /* just for testing, stolen from GOK */
28         
29         helper = BONOBO_OBJECT (g_object_new (LOGIN_HELPER_TYPE, NULL));
30         
31         ret = bonobo_activation_register_active_server (
32                 obj_id,
33                 bonobo_object_corba_objref (bonobo_object (helper)),
34                 NULL);
35         
36         if (ret != Bonobo_ACTIVATION_REG_SUCCESS)
37         {
38                 switch (ret) 
39                 {
40                 case Bonobo_ACTIVATION_REG_NOT_LISTED:
41                         fprintf (stderr, "OAFIID not listed\n");
42                         break;
43                 default:
44                         fprintf (stderr, "Registration Error: %d\n", ret);
45                         break;
46                 }
47         }
48         else
49         {
50                 CORBA_Environment ev;
51                 CORBA_exception_init (&ev);
52                 
53                 Bonobo_Unknown ret = Bonobo_Unknown_queryInterface (
54                         BONOBO_OBJREF (helper),
55                         "IDL:Accessibility/LoginHelper:1.0", 
56                         &ev);
57                 
58                 if (BONOBO_EX (&ev))
59                 {
60                         fprintf (stderr, "queryInterface error: %s\n", 
61                                  bonobo_exception_get_text (&ev));
62                 }
63                 else
64                 {
65                         fprintf (stderr, "query returned %p: objref self = %p\n", 
66                                  ret, BONOBO_OBJREF (helper));
67                 }
68         }
69
70         /* this is a testing hack - we are changing the LoginHelperClass's vpointers here */
71         
72         test_init_login_helper_vpointers (helper, test_set_safe, test_get_device_reqs, test_get_raise_windows);
73
74         bonobo_main ();
75 }
76
77 static void
78 test_init_login_helper_vpointers (LoginHelper *helper, 
79                                   gpointer set_safe_func, 
80                                   gpointer get_device_reqs_func, 
81                                   gpointer get_raise_windows_func)
82 {
83         LoginHelperClass *klass = LOGIN_HELPER_GET_CLASS (helper);
84         klass->set_safe = set_safe_func;
85         klass->get_device_reqs = get_device_reqs_func;
86         klass->get_raise_windows = get_raise_windows_func;
87 }
88
89 static gboolean
90 test_set_safe (LoginHelper *helper, gboolean safe)
91 {
92         return TRUE;
93 }
94
95 static LoginHelperDeviceReqFlags
96 test_get_device_reqs (LoginHelper *helper)
97 {
98         return 0;
99 }
100
101 static Window*
102 test_get_raise_windows (LoginHelper *helper)
103 {
104         return NULL;
105 }