~ubuntu-branches/ubuntu/utopic/remote-login-service/utopic

« back to all changes in this revision

Viewing changes to tests/dbus-interface.c

  • Committer: Package Import Robot
  • Author(s): Ted Gould
  • Date: 2012-09-20 23:55:05 UTC
  • mfrom: (1.1.5)
  • Revision ID: package-import@ubuntu.com-20120920235505-ndvmwqqso7qrlqhp
Tags: 1.0.0-0ubuntu1
* New upstream release.
  * Support caching the recently used server
* debian/control: Add build dep on libgcrypt11-dev 

Show diffs side-by-side

added added

removed removed

Lines of Context:
37
37
        {NULL, NULL, NULL}
38
38
};
39
39
 
 
40
slmock_server_t freerdp_server_table_after_set_last_used[] = {
 
41
        {"FreeRDP US",    "23.21.151.133",  "freerdp", FALSE, "Administrator", "", ""},
 
42
        {"FreeRDP Asia",  "46.137.222.181", "freerdp", TRUE, "Administrator", "", ""},
 
43
        {"FreeRDP UK",    "46.137.189.194", "freerdp", FALSE, "Administrator", "", ""},
 
44
        {NULL, NULL, NULL}
 
45
};
 
46
 
40
47
slmock_server_t big_server_table[] = {
41
48
        {"XenServer",    "107.21.17.35",    "ica",     FALSE, "",         "",             "ASIA"},
42
49
        {"Citrix2",      "http://1.2.3.4",  "ica",     FALSE, "fakeuser", "fakepassword", "DOMAIN1"},
48
55
slmock_table_t slmock_table[] = {
49
56
        {"c", "c", citrix_server_table},
50
57
        {"f", "f", freerdp_server_table},
51
 
        {"b", "b", big_server_table}
 
58
        {"b", "b", big_server_table},
 
59
        {"f", "f", freerdp_server_table_after_set_last_used}
52
60
};
53
61
 
54
62
static gboolean
138
146
}
139
147
 
140
148
static gboolean
141
 
slmock_check_login(GDBusConnection * session, slmock_table_t * slmockdata)
 
149
slmock_check_login(GDBusConnection * session, slmock_table_t * slmockdata, gboolean clear_cache)
142
150
{
 
151
        if (clear_cache) {
 
152
                gchar *username_sha = g_compute_checksum_for_string (G_CHECKSUM_SHA256, slmockdata->username, -1);
 
153
                gchar *file_path = g_build_path ("/", g_get_user_cache_dir(), "remote-login-service", "cache", username_sha, NULL);
 
154
                unlink (file_path);
 
155
                g_free (username_sha);
 
156
                g_free (file_path);
 
157
        }
143
158
        GVariant * retval = g_dbus_connection_call_sync(session,
144
159
                                                        "com.canonical.RemoteLogin",
145
160
                                                        "/com/canonical/RemoteLogin",
200
215
        GDBusConnection * session = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
201
216
        g_dbus_connection_set_exit_on_close(session, FALSE);
202
217
 
203
 
        g_assert(slmock_check_login(session, (slmock_table_t *)data));
 
218
        g_assert(slmock_check_login(session, (slmock_table_t *)data, TRUE));
204
219
 
205
220
        g_object_unref(session);
206
221
        g_object_unref(rls);
286
301
        GDBusConnection * session = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
287
302
        g_dbus_connection_set_exit_on_close(session, FALSE);
288
303
 
289
 
        g_assert(slmock_check_login(session, &slmock_table[0]));
290
 
        g_assert(slmock_check_login(session, &slmock_table[1]));
 
304
        g_assert(slmock_check_login(session, &slmock_table[0], TRUE));
 
305
        g_assert(slmock_check_login(session, &slmock_table[1], TRUE));
291
306
 
292
307
        g_object_unref(session);
293
308
        g_object_unref(rls);
477
492
}
478
493
 
479
494
 
 
495
static void
 
496
test_setlastused_basic (void)
 
497
{
 
498
        DbusTestService * service = dbus_test_service_new(NULL);
 
499
 
 
500
        /* RLS */
 
501
        DbusTestProcess * rls = dbus_test_process_new(REMOTE_LOGIN_SERVICE);
 
502
        dbus_test_process_append_param(rls, "--config-file=" SLMOCK_CONFIG_FILE);
 
503
        dbus_test_service_add_task(service, DBUS_TEST_TASK(rls));
 
504
 
 
505
        /* Dummy */
 
506
        DbusTestTask * dummy = dbus_test_task_new();
 
507
        dbus_test_task_set_wait_for(dummy, "com.canonical.RemoteLogin");
 
508
        dbus_test_service_add_task(service, dummy);
 
509
 
 
510
        /* Get RLS up and running and us on that bus */
 
511
        dbus_test_service_start_tasks(service);
 
512
 
 
513
        GDBusConnection * session = g_bus_get_sync(G_BUS_TYPE_SESSION, NULL, NULL);
 
514
        g_dbus_connection_set_exit_on_close(session, FALSE);
 
515
        
 
516
        g_assert(slmock_check_login(session, &slmock_table[1], TRUE));
 
517
 
 
518
        GError * error = NULL;
 
519
        GVariant * retval = g_dbus_connection_call_sync(session,
 
520
                                                        "com.canonical.RemoteLogin",
 
521
                                                        "/com/canonical/RemoteLogin",
 
522
                                                        "com.canonical.RemoteLogin",
 
523
                                                        "SetLastUsedServer",
 
524
                                                        g_variant_new("(ss)", "Landscape", freerdp_server_table[1].uri), /* params */
 
525
                                                        NULL, /* ret type */
 
526
                                                        G_DBUS_CALL_FLAGS_NONE,
 
527
                                                        -1,
 
528
                                                        NULL,
 
529
                                                        &error);
 
530
 
 
531
        if (error != NULL) {
 
532
                g_debug("Error from SetLastUsedServer: %s", error->message);
 
533
                g_error_free(error);
 
534
                error = NULL;
 
535
        }
 
536
 
 
537
        g_assert(retval != NULL);
 
538
        g_assert(g_variant_n_children(retval) == 0);
 
539
        g_variant_unref(retval);
 
540
        
 
541
        g_assert(slmock_check_login(session, &slmock_table[3], FALSE));
 
542
 
 
543
        g_object_unref(session);
 
544
        g_object_unref(rls);
 
545
        g_object_unref(service);
 
546
        
 
547
        return;
 
548
}
 
549
 
 
550
 
480
551
/* Build the test suite */
481
552
static void
482
553
test_dbus_suite (void)
489
560
        g_test_add_func ("/dbus/interface/GetServers/SLMock/none",   test_getservers_slmock_none);
490
561
        g_test_add_func ("/dbus/interface/GetServers/SLMock/two",   test_getservers_slmock_two);
491
562
        g_test_add_func ("/dbus/interface/GetDomains/Basic",   test_getdomains_basic);
 
563
        g_test_add_func ("/dbus/interface/SetLastUsed/Basic",   test_setlastused_basic);
492
564
 
493
565
        return;
494
566
}