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
);
55 mount
= g_volume_get_mount (volume
);
58 do_mount_tests (drive
, volume
, mount
);
59 g_object_unref (mount
);
62 uuid
= g_volume_get_uuid (volume
);
66 v
= g_volume_monitor_get_volume_for_uuid (monitor
, uuid
);
67 g_assert (v
== volume
);
74 do_drive_tests (GDrive
*drive
)
80 g_assert (G_IS_DRIVE (drive
));
81 name
= g_drive_get_name (drive
);
82 g_assert (name
!= NULL
);
85 has_volumes
= g_drive_has_volumes (drive
);
86 volumes
= g_drive_get_volumes (drive
);
87 g_assert (has_volumes
== (volumes
!= NULL
));
88 for (l
= volumes
; l
; l
= l
->next
)
90 GVolume
*volume
= l
->data
;
91 do_volume_tests (drive
, volume
);
94 g_list_free_full (volumes
, g_object_unref
);
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_free_full (drives
, g_object_unref
);
119 volumes
= g_volume_monitor_get_volumes (monitor
);
121 for (l
= volumes
; l
; l
= l
->next
)
123 GVolume
*volume
= l
->data
;
126 drive
= g_volume_get_drive (volume
);
127 do_volume_tests (drive
, volume
);
129 g_object_unref (drive
);
132 g_list_free_full (volumes
, g_object_unref
);
140 mounts
= g_volume_monitor_get_mounts (monitor
);
142 for (l
= mounts
; l
; l
= l
->next
)
144 GMount
*mount
= l
->data
;
148 drive
= g_mount_get_drive (mount
);
149 volume
= g_mount_get_volume (mount
);
150 do_mount_tests (drive
, volume
, mount
);
153 g_object_unref (drive
);
155 g_object_unref (volume
);
158 g_list_free_full (mounts
, g_object_unref
);
161 main (int argc
, char *argv
[])
165 g_setenv ("GIO_USE_VFS", "local", FALSE
);
167 g_test_init (&argc
, &argv
, NULL
);
169 monitor
= g_volume_monitor_get ();
171 g_test_add_func ("/volumemonitor/connected_drives", test_connected_drives
);
172 g_test_add_func ("/volumemonitor/volumes", test_volumes
);
173 g_test_add_func ("/volumemonitor/mounts", test_mounts
);
177 g_object_unref (monitor
);