3 static GVolumeMonitor *monitor;
6 do_mount_tests (GDrive *drive, GVolume *volume, GMount *mount)
13 name = g_mount_get_name (mount);
14 g_assert (name != NULL);
17 v = g_mount_get_volume (mount);
18 g_assert (v == volume);
22 d = g_mount_get_drive (mount);
23 g_assert (d == drive);
27 uuid = g_mount_get_uuid (mount);
31 m = g_volume_monitor_get_mount_for_uuid (monitor, uuid);
32 g_assert (m == mount);
39 do_volume_tests (GDrive *drive, GVolume *volume)
46 name = g_volume_get_name (volume);
47 g_assert (name != NULL);
50 d = g_volume_get_drive (volume);
51 g_assert (d == drive);
54 mount = g_volume_get_mount (volume);
57 do_mount_tests (drive, volume, mount);
58 g_object_unref (mount);
61 uuid = g_volume_get_uuid (volume);
65 v = g_volume_monitor_get_volume_for_uuid (monitor, uuid);
66 g_assert (v == volume);
73 do_drive_tests (GDrive *drive)
79 g_assert (G_IS_DRIVE (drive));
80 name = g_drive_get_name (drive);
81 g_assert (name != NULL);
84 has_volumes = g_drive_has_volumes (drive);
85 volumes = g_drive_get_volumes (drive);
86 g_assert (has_volumes == (volumes != NULL));
87 for (l = volumes; l; l = l->next)
89 GVolume *volume = l->data;
90 do_volume_tests (drive, volume);
93 g_list_foreach (volumes, (GFunc)g_object_unref, NULL);
94 g_list_free (volumes);
98 test_connected_drives (void)
103 drives = g_volume_monitor_get_connected_drives (monitor);
105 for (l = drives; l; l = l->next)
107 GDrive *drive = l->data;
108 do_drive_tests (drive);
111 g_list_foreach (drives, (GFunc)g_object_unref, NULL);
112 g_list_free (drives);
120 volumes = g_volume_monitor_get_volumes (monitor);
122 for (l = volumes; l; l = l->next)
124 GVolume *volume = l->data;
127 drive = g_volume_get_drive (volume);
128 do_volume_tests (drive, volume);
129 g_object_unref (drive);
132 g_list_foreach (volumes, (GFunc)g_object_unref, NULL);
133 g_list_free (volumes);
141 mounts = g_volume_monitor_get_mounts (monitor);
143 for (l = mounts; l; l = l->next)
145 GMount *mount = l->data;
149 drive = g_mount_get_drive (mount);
150 volume = g_mount_get_volume (mount);
151 do_mount_tests (drive, volume, mount);
154 g_object_unref (drive);
156 g_object_unref (volume);
159 g_list_foreach (mounts, (GFunc)g_object_unref, NULL);
160 g_list_free (mounts);
163 main (int argc, char *argv[])
167 g_setenv ("GIO_USE_VFS", "local", FALSE);
171 g_test_init (&argc, &argv, NULL);
173 monitor = g_volume_monitor_get ();
175 g_test_add_func ("/volumemonitor/connected_drives", test_connected_drives);
176 g_test_add_func ("/volumemonitor/volumes", test_volumes);
177 g_test_add_func ("/volumemonitor/mounts", test_mounts);
181 g_object_unref (monitor);