Deprecate the unused gtk-file-chooser-backend setting
This commit is contained in:
parent
3d5d3e8eae
commit
7ca327c9bb
@ -313,7 +313,6 @@ _gdk_win32_window_delete_property (GdkWindow *window,
|
|||||||
"Gtk/IMPreeditStyle\0" "gtk-im-preedit-style\0"
|
"Gtk/IMPreeditStyle\0" "gtk-im-preedit-style\0"
|
||||||
"Gtk/IMStatusStyle\0" "gtk-im-status-style\0"
|
"Gtk/IMStatusStyle\0" "gtk-im-status-style\0"
|
||||||
"Gtk/Modules\0" "gtk-modules\0"
|
"Gtk/Modules\0" "gtk-modules\0"
|
||||||
"Gtk/FileChooserBackend\0" "gtk-file-chooser-backend\0"
|
|
||||||
"Gtk/CursorThemeName\0" "gtk-cursor-theme-name\0"
|
"Gtk/CursorThemeName\0" "gtk-cursor-theme-name\0"
|
||||||
"Gtk/CursorThemeSize\0" "gtk-cursor-theme-size\0"
|
"Gtk/CursorThemeSize\0" "gtk-cursor-theme-size\0"
|
||||||
"Gtk/TimeoutInitial\0" "gtk-timeout-initial\0"
|
"Gtk/TimeoutInitial\0" "gtk-timeout-initial\0"
|
||||||
|
@ -38,7 +38,6 @@ static const struct {
|
|||||||
{"Gtk/IMPreeditStyle", "gtk-im-preedit-style"},
|
{"Gtk/IMPreeditStyle", "gtk-im-preedit-style"},
|
||||||
{"Gtk/IMStatusStyle", "gtk-im-status-style"},
|
{"Gtk/IMStatusStyle", "gtk-im-status-style"},
|
||||||
{"Gtk/Modules", "gtk-modules"},
|
{"Gtk/Modules", "gtk-modules"},
|
||||||
{"Gtk/FileChooserBackend", "gtk-file-chooser-backend"},
|
|
||||||
{"Gtk/CursorThemeName", "gtk-cursor-theme-name"},
|
{"Gtk/CursorThemeName", "gtk-cursor-theme-name"},
|
||||||
{"Gtk/CursorThemeSize", "gtk-cursor-theme-size"},
|
{"Gtk/CursorThemeSize", "gtk-cursor-theme-size"},
|
||||||
{"Gtk/TimeoutInitial", "gtk-timeout-initial"},
|
{"Gtk/TimeoutInitial", "gtk-timeout-initial"},
|
||||||
|
@ -915,6 +915,13 @@ gtk_settings_class_init (GtkSettingsClass *class)
|
|||||||
NULL);
|
NULL);
|
||||||
g_assert (result == PROP_COLOR_HASH);
|
g_assert (result == PROP_COLOR_HASH);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GtkSettings:gtk-file-chooser-backend:
|
||||||
|
*
|
||||||
|
* Name of the GtkFileChooser backend to use by default.
|
||||||
|
*
|
||||||
|
* Deprecated: 3.10: This setting is ignored. #GtkFileChooser uses GIO by default.
|
||||||
|
*/
|
||||||
result = settings_install_property_parser (class,
|
result = settings_install_property_parser (class,
|
||||||
g_param_spec_string ("gtk-file-chooser-backend",
|
g_param_spec_string ("gtk-file-chooser-backend",
|
||||||
P_("Default file chooser backend"),
|
P_("Default file chooser backend"),
|
||||||
|
@ -1,724 +0,0 @@
|
|||||||
/* GTK - The GIMP Toolkit
|
|
||||||
* autotestfilesystem.c: Automated tests for GtkFileSystem implementations
|
|
||||||
* Copyright (C) 2005, Novell, Inc.
|
|
||||||
*
|
|
||||||
* Authors:
|
|
||||||
* Federico Mena-Quintero <federico@novell.com>
|
|
||||||
*
|
|
||||||
* This library is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU Lesser General Public
|
|
||||||
* License as published by the Free Software Foundation; either
|
|
||||||
* version 2 of the License, or (at your option) any later version.
|
|
||||||
*
|
|
||||||
* This library is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
* Lesser General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU Lesser General Public
|
|
||||||
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#define GTK_FILE_SYSTEM_ENABLE_UNSUPPORTED
|
|
||||||
|
|
||||||
#include "config.h"
|
|
||||||
#include <string.h>
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
#include <unistd.h>
|
|
||||||
#endif
|
|
||||||
#include <glib/gprintf.h>
|
|
||||||
#include <gtk/gtk.h>
|
|
||||||
#include <gtk/gtkfilesystem.h>
|
|
||||||
|
|
||||||
#ifdef G_OS_WIN32
|
|
||||||
#include <direct.h>
|
|
||||||
#define rmdir(d) _rmdir(d)
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CALLBACK_TIMEOUT_MS 3000 /* Period after which the callback must have been called */
|
|
||||||
#define CANCEL_TIMEOUT_MS 100 /* We'll sleep for this much time before cancelling */
|
|
||||||
|
|
||||||
#define GET_FOLDER_FILENAME "/etc"
|
|
||||||
#define GET_INFO_FILENAME "/etc/passwd"
|
|
||||||
#define CREATE_FOLDER_FILENAME "/tmp/autotestfilesystem-tmp"
|
|
||||||
#define VOLUME_MOUNT_FILENAME "/"
|
|
||||||
|
|
||||||
/* This is stolen from gtkfilechooserdefault.c:set_file_system_backend() */
|
|
||||||
static GtkFileSystem *
|
|
||||||
get_file_system (void)
|
|
||||||
{
|
|
||||||
GtkFileSystem *file_system = NULL;
|
|
||||||
|
|
||||||
#if 1
|
|
||||||
file_system = gtk_file_system_create ("gnome-vfs");
|
|
||||||
#else
|
|
||||||
GtkSettings *settings = gtk_settings_get_default ();
|
|
||||||
gchar *default_backend = NULL;
|
|
||||||
|
|
||||||
g_object_get (settings, "gtk-file-chooser-backend", &default_backend, NULL);
|
|
||||||
if (default_backend)
|
|
||||||
{
|
|
||||||
file_system = gtk_file_system_create (default_backend);
|
|
||||||
g_free (default_backend);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!file_system)
|
|
||||||
{
|
|
||||||
#if defined (G_OS_UNIX)
|
|
||||||
file_system = gtk_file_system_unix_new ();
|
|
||||||
#elif defined (G_OS_WIN32)
|
|
||||||
file_system = gtk_file_system_win32_new ();
|
|
||||||
#else
|
|
||||||
#error "No default filesystem implementation on the platform"
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return file_system;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***** Testing infrastructure *****/
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
gboolean callback_was_called;
|
|
||||||
gboolean timeout_was_called;
|
|
||||||
} TestCallbackClosure;
|
|
||||||
|
|
||||||
static void
|
|
||||||
notify_callback_called (TestCallbackClosure *closure)
|
|
||||||
{
|
|
||||||
closure->callback_was_called = TRUE;
|
|
||||||
gtk_main_quit ();
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
timeout_cb (gpointer data)
|
|
||||||
{
|
|
||||||
TestCallbackClosure *closure;
|
|
||||||
|
|
||||||
closure = data;
|
|
||||||
|
|
||||||
closure->timeout_was_called = TRUE;
|
|
||||||
gtk_main_quit ();
|
|
||||||
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
wait_for_callback (TestCallbackClosure *closure)
|
|
||||||
{
|
|
||||||
gdk_threads_add_timeout (CALLBACK_TIMEOUT_MS, timeout_cb, closure);
|
|
||||||
gtk_main ();
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
const char *test_name;
|
|
||||||
gboolean callback_must_be_called;
|
|
||||||
gpointer (* setup_fn) (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure);
|
|
||||||
void (* cleanup_fn) (gpointer data, gboolean *success, char **failure_reason);
|
|
||||||
} TestSpec;
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
run_test (TestSpec *test_spec)
|
|
||||||
{
|
|
||||||
GtkFileSystem *file_system;
|
|
||||||
TestCallbackClosure closure;
|
|
||||||
gboolean success_setup, success_cleanup;
|
|
||||||
gpointer test_data;
|
|
||||||
gboolean callback_success;
|
|
||||||
gboolean passed;
|
|
||||||
char *setup_failure_reason;
|
|
||||||
char *cleanup_failure_reason;
|
|
||||||
|
|
||||||
file_system = get_file_system ();
|
|
||||||
if (!file_system)
|
|
||||||
{
|
|
||||||
printf ("FAIL: test \"%s\"\n", test_spec->test_name);
|
|
||||||
printf (" could not create file system!\n");
|
|
||||||
return FALSE;
|
|
||||||
}
|
|
||||||
|
|
||||||
closure.callback_was_called = FALSE;
|
|
||||||
closure.timeout_was_called = FALSE;
|
|
||||||
|
|
||||||
success_setup = success_cleanup = callback_success = FALSE;
|
|
||||||
setup_failure_reason = cleanup_failure_reason = NULL;
|
|
||||||
|
|
||||||
test_data = test_spec->setup_fn (file_system, &success_setup, &setup_failure_reason, &closure);
|
|
||||||
if (success_setup)
|
|
||||||
{
|
|
||||||
wait_for_callback (&closure);
|
|
||||||
|
|
||||||
test_spec->cleanup_fn (test_data, &success_cleanup, &cleanup_failure_reason);
|
|
||||||
|
|
||||||
callback_success = (test_spec->callback_must_be_called == closure.callback_was_called);
|
|
||||||
}
|
|
||||||
|
|
||||||
g_object_unref (file_system);
|
|
||||||
|
|
||||||
passed = (success_setup && success_cleanup && callback_success);
|
|
||||||
|
|
||||||
printf ("%s: test \"%s\"\n", passed ? "PASS" : "FAIL", test_spec->test_name);
|
|
||||||
|
|
||||||
if (!passed)
|
|
||||||
{
|
|
||||||
if (!success_setup)
|
|
||||||
printf (" failure during setup: %s\n",
|
|
||||||
setup_failure_reason ? setup_failure_reason : "unknown failure");
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (!success_cleanup)
|
|
||||||
printf (" failure during cleanup: %s\n",
|
|
||||||
cleanup_failure_reason ? cleanup_failure_reason : "unknown failure");
|
|
||||||
|
|
||||||
if (!callback_success)
|
|
||||||
printf (" callback %s called but it %s called\n",
|
|
||||||
test_spec->callback_must_be_called ? "MUST BE" : "MUST NOT BE",
|
|
||||||
closure.callback_was_called ? "WAS" : "WAS NOT");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
g_free (setup_failure_reason);
|
|
||||||
g_free (cleanup_failure_reason);
|
|
||||||
|
|
||||||
return passed;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gboolean
|
|
||||||
run_tests (TestSpec *test_specs, int num_tests)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
int num_passed;
|
|
||||||
|
|
||||||
num_passed = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < num_tests; i++)
|
|
||||||
if (run_test (test_specs + i))
|
|
||||||
num_passed++;
|
|
||||||
|
|
||||||
if (num_passed == num_tests)
|
|
||||||
printf ("ALL TESTS PASSED\n");
|
|
||||||
else
|
|
||||||
printf ("%d of %d tests FAILED\n", (num_tests - num_passed), num_tests);
|
|
||||||
|
|
||||||
return (num_passed == num_tests);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***** Test functions *****/
|
|
||||||
|
|
||||||
static void
|
|
||||||
sleep_and_cancel_handle (GtkFileSystemHandle *handle)
|
|
||||||
{
|
|
||||||
g_usleep (CANCEL_TIMEOUT_MS * 1000);
|
|
||||||
gtk_file_system_cancel_operation (handle);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* get_folder */
|
|
||||||
|
|
||||||
struct get_folder_data {
|
|
||||||
TestCallbackClosure *callback_closure;
|
|
||||||
GtkFileSystemHandle *handle;
|
|
||||||
GtkFileFolder *folder;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_folder_cb (GtkFileSystemHandle *handle,
|
|
||||||
GtkFileFolder *folder,
|
|
||||||
const GError *error,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
struct get_folder_data *get_folder_data;
|
|
||||||
|
|
||||||
get_folder_data = data;
|
|
||||||
get_folder_data->folder = folder;
|
|
||||||
notify_callback_called (get_folder_data->callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_folder_generic_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
struct get_folder_data *get_folder_data;
|
|
||||||
GtkFilePath *path;
|
|
||||||
|
|
||||||
path = gtk_file_system_filename_to_path (file_system, GET_FOLDER_FILENAME);
|
|
||||||
if (!path)
|
|
||||||
{
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup_printf ("could not turn \"%s\" into a GtkFilePath", GET_FOLDER_FILENAME);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
get_folder_data = g_new (struct get_folder_data, 1);
|
|
||||||
|
|
||||||
get_folder_data->callback_closure = callback_closure;
|
|
||||||
get_folder_data->folder = NULL;
|
|
||||||
|
|
||||||
get_folder_data->handle = gtk_file_system_get_folder (file_system,
|
|
||||||
path,
|
|
||||||
GTK_FILE_INFO_ALL,
|
|
||||||
get_folder_cb,
|
|
||||||
get_folder_data);
|
|
||||||
gtk_file_path_free (path);
|
|
||||||
|
|
||||||
if (!get_folder_data->handle)
|
|
||||||
{
|
|
||||||
g_free (get_folder_data);
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup ("gtk_file_system_get_folder() returned a NULL handle");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
|
|
||||||
return get_folder_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_folder_no_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
return get_folder_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_folder_cleanup (gpointer data, gboolean *success, char **failure_reason)
|
|
||||||
{
|
|
||||||
struct get_folder_data *get_folder_data;
|
|
||||||
|
|
||||||
get_folder_data = data;
|
|
||||||
|
|
||||||
if (get_folder_data->folder)
|
|
||||||
g_object_unref (get_folder_data->folder);
|
|
||||||
|
|
||||||
g_free (get_folder_data);
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_folder_with_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
struct get_folder_data *get_folder_data;
|
|
||||||
|
|
||||||
get_folder_data = get_folder_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
|
|
||||||
if (*success)
|
|
||||||
sleep_and_cancel_handle (get_folder_data->handle);
|
|
||||||
|
|
||||||
return get_folder_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* get_info */
|
|
||||||
|
|
||||||
struct get_info_data {
|
|
||||||
TestCallbackClosure *callback_closure;
|
|
||||||
GtkFileSystemHandle *handle;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_info_cb (GtkFileSystemHandle *handle,
|
|
||||||
const GtkFileInfo *file_info,
|
|
||||||
const GError *error,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
struct get_info_data *get_info_data;
|
|
||||||
|
|
||||||
get_info_data = data;
|
|
||||||
notify_callback_called (get_info_data->callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_info_generic_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
GtkFilePath *path;
|
|
||||||
struct get_info_data *get_info_data;
|
|
||||||
|
|
||||||
path = gtk_file_system_filename_to_path (file_system, GET_INFO_FILENAME);
|
|
||||||
if (!path)
|
|
||||||
{
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup_printf ("could not turn \"%s\" into a GtkFilePath", GET_INFO_FILENAME);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
get_info_data = g_new (struct get_info_data, 1);
|
|
||||||
|
|
||||||
get_info_data->callback_closure = callback_closure;
|
|
||||||
get_info_data->handle = gtk_file_system_get_info (file_system,
|
|
||||||
path,
|
|
||||||
GTK_FILE_INFO_ALL,
|
|
||||||
get_info_cb,
|
|
||||||
get_info_data);
|
|
||||||
gtk_file_path_free (path);
|
|
||||||
|
|
||||||
if (!get_info_data->handle)
|
|
||||||
{
|
|
||||||
g_free (get_info_data);
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup ("gtk_file_system_get_info() returned a NULL handle");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
return get_info_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_info_no_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
return get_info_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
get_info_cleanup (gpointer data, gboolean *success, char **failure_reason)
|
|
||||||
{
|
|
||||||
struct get_info_data *get_info_data;
|
|
||||||
|
|
||||||
get_info_data = data;
|
|
||||||
g_free (get_info_data);
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
get_info_with_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
struct get_info_data *get_info_data;
|
|
||||||
|
|
||||||
get_info_data = get_info_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
|
|
||||||
if (*success)
|
|
||||||
sleep_and_cancel_handle (get_info_data->handle);
|
|
||||||
|
|
||||||
return get_info_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* create_folder */
|
|
||||||
|
|
||||||
struct create_folder_data {
|
|
||||||
TestCallbackClosure *callback_closure;
|
|
||||||
GtkFileSystemHandle *handle;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
create_folder_cb (GtkFileSystemHandle *handle,
|
|
||||||
const GtkFilePath *path,
|
|
||||||
const GError *error,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
struct get_folder_data *get_folder_data;
|
|
||||||
|
|
||||||
get_folder_data = data;
|
|
||||||
notify_callback_called (get_folder_data->callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
create_folder_generic_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
GtkFilePath *path;
|
|
||||||
struct create_folder_data *create_folder_data;
|
|
||||||
|
|
||||||
path = gtk_file_system_filename_to_path (file_system, CREATE_FOLDER_FILENAME);
|
|
||||||
if (!path)
|
|
||||||
{
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup_printf ("could not turn \"%s\" into a GtkFilePath", CREATE_FOLDER_FILENAME);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
create_folder_data = g_new (struct create_folder_data, 1);
|
|
||||||
|
|
||||||
create_folder_data->callback_closure = callback_closure;
|
|
||||||
create_folder_data->handle = gtk_file_system_create_folder (file_system,
|
|
||||||
path,
|
|
||||||
create_folder_cb,
|
|
||||||
create_folder_data);
|
|
||||||
gtk_file_path_free (path);
|
|
||||||
|
|
||||||
if (!create_folder_data->handle)
|
|
||||||
{
|
|
||||||
g_free (create_folder_data);
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup ("gtk_file_system_create_folder() returned a NULL handle");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
return create_folder_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
create_folder_no_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
return create_folder_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
create_folder_cleanup (gpointer data, gboolean *success, char **failure_reason)
|
|
||||||
{
|
|
||||||
struct create_folder_data *create_folder_data;
|
|
||||||
|
|
||||||
create_folder_data = data;
|
|
||||||
|
|
||||||
rmdir (CREATE_FOLDER_FILENAME);
|
|
||||||
|
|
||||||
g_free (create_folder_data);
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
create_folder_with_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
struct create_folder_data *create_folder_data;
|
|
||||||
|
|
||||||
create_folder_data = create_folder_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
|
|
||||||
if (*success)
|
|
||||||
sleep_and_cancel_handle (create_folder_data->handle);
|
|
||||||
|
|
||||||
return create_folder_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* volume_mount */
|
|
||||||
|
|
||||||
struct volume_mount_data {
|
|
||||||
TestCallbackClosure *callback_closure;
|
|
||||||
GtkFileSystemVolume *volume;
|
|
||||||
GtkFileSystemHandle *handle;
|
|
||||||
};
|
|
||||||
|
|
||||||
static void
|
|
||||||
volume_mount_cb (GtkFileSystemHandle *handle,
|
|
||||||
GtkFileSystemVolume *volume,
|
|
||||||
const GError *error,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
struct volume_mount_data *volume_mount_data;
|
|
||||||
|
|
||||||
volume_mount_data = data;
|
|
||||||
notify_callback_called (volume_mount_data->callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
volume_mount_generic_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
GtkFilePath *path;
|
|
||||||
struct volume_mount_data *volume_mount_data;
|
|
||||||
|
|
||||||
path = gtk_file_system_filename_to_path (file_system, VOLUME_MOUNT_FILENAME);
|
|
||||||
if (!path)
|
|
||||||
{
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup_printf ("could not turn \"%s\" into a GtkFilePath", VOLUME_MOUNT_FILENAME);
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
volume_mount_data = g_new (struct volume_mount_data, 1);
|
|
||||||
|
|
||||||
volume_mount_data->callback_closure = callback_closure;
|
|
||||||
volume_mount_data->volume = gtk_file_system_get_volume_for_path (file_system, path);
|
|
||||||
gtk_file_path_free (path);
|
|
||||||
|
|
||||||
if (!volume_mount_data->volume)
|
|
||||||
{
|
|
||||||
g_free (volume_mount_data);
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup ("gtk_file_system_get_volume_for_path() returned a NULL volume");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
volume_mount_data->handle = gtk_file_system_volume_mount (file_system,
|
|
||||||
volume_mount_data->volume,
|
|
||||||
volume_mount_cb,
|
|
||||||
volume_mount_data);
|
|
||||||
if (!volume_mount_data->handle)
|
|
||||||
{
|
|
||||||
g_object_unref (volume_mount_data->volume);
|
|
||||||
g_free (volume_mount_data);
|
|
||||||
*success = FALSE;
|
|
||||||
*failure_reason = g_strdup ("gtk_file_system_volume_mount() returned a NULL handle");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
return volume_mount_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
volume_mount_no_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
return volume_mount_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
volume_mount_cleanup (gpointer data, gboolean *success, char **failure_reason)
|
|
||||||
{
|
|
||||||
struct volume_mount_data *volume_mount_data;
|
|
||||||
|
|
||||||
volume_mount_data = data;
|
|
||||||
|
|
||||||
g_object_unref (volume_mount_data->volume);
|
|
||||||
g_free (volume_mount_data);
|
|
||||||
|
|
||||||
*success = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
static gpointer
|
|
||||||
volume_mount_with_cancel_setup (GtkFileSystem *file_system, gboolean *success, char **failure_reason,
|
|
||||||
TestCallbackClosure *callback_closure)
|
|
||||||
{
|
|
||||||
struct volume_mount_data *volume_mount_data;
|
|
||||||
|
|
||||||
volume_mount_data = volume_mount_generic_setup (file_system, success, failure_reason, callback_closure);
|
|
||||||
|
|
||||||
if (*success)
|
|
||||||
sleep_and_cancel_handle (volume_mount_data->handle);
|
|
||||||
|
|
||||||
return volume_mount_data;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* tests */
|
|
||||||
|
|
||||||
static TestSpec tests[] = {
|
|
||||||
{
|
|
||||||
"get_folder no cancel",
|
|
||||||
TRUE,
|
|
||||||
get_folder_no_cancel_setup,
|
|
||||||
get_folder_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"get_folder with cancel",
|
|
||||||
FALSE,
|
|
||||||
get_folder_with_cancel_setup,
|
|
||||||
get_folder_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"get_info no cancel",
|
|
||||||
TRUE,
|
|
||||||
get_info_no_cancel_setup,
|
|
||||||
get_info_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"get_info with cancel",
|
|
||||||
FALSE,
|
|
||||||
get_info_with_cancel_setup,
|
|
||||||
get_info_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"create_folder no cancel",
|
|
||||||
TRUE,
|
|
||||||
create_folder_no_cancel_setup,
|
|
||||||
create_folder_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"create_folder with cancel",
|
|
||||||
FALSE,
|
|
||||||
create_folder_with_cancel_setup,
|
|
||||||
create_folder_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"volume_mount no cancel",
|
|
||||||
TRUE,
|
|
||||||
volume_mount_no_cancel_setup,
|
|
||||||
volume_mount_cleanup
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"volume_mount with cancel",
|
|
||||||
FALSE,
|
|
||||||
volume_mount_with_cancel_setup,
|
|
||||||
volume_mount_cleanup
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/***** main *****/
|
|
||||||
|
|
||||||
static GLogFunc default_log_handler;
|
|
||||||
static int num_warnings;
|
|
||||||
static int num_errors;
|
|
||||||
static int num_critical_errors;
|
|
||||||
|
|
||||||
static void
|
|
||||||
log_override_cb (const gchar *log_domain,
|
|
||||||
GLogLevelFlags log_level,
|
|
||||||
const gchar *message,
|
|
||||||
gpointer user_data)
|
|
||||||
{
|
|
||||||
if (log_level & G_LOG_LEVEL_WARNING)
|
|
||||||
num_warnings++;
|
|
||||||
|
|
||||||
if (log_level & G_LOG_LEVEL_ERROR)
|
|
||||||
num_errors++;
|
|
||||||
|
|
||||||
if (log_level & G_LOG_LEVEL_CRITICAL)
|
|
||||||
num_critical_errors++;
|
|
||||||
|
|
||||||
(* default_log_handler) (log_domain, log_level, message, user_data);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
|
||||||
log_test (gboolean passed, const char *test_name, ...)
|
|
||||||
{
|
|
||||||
va_list args;
|
|
||||||
char *str;
|
|
||||||
|
|
||||||
va_start (args, test_name);
|
|
||||||
str = g_strdup_vprintf (test_name, args);
|
|
||||||
va_end (args);
|
|
||||||
|
|
||||||
g_printf ("%s: %s\n", passed ? "PASSED" : "FAILED", str);
|
|
||||||
g_free (str);
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main (int argc, char **argv)
|
|
||||||
{
|
|
||||||
gboolean passed;
|
|
||||||
gboolean zero_warnings;
|
|
||||||
gboolean zero_errors;
|
|
||||||
gboolean zero_critical_errors;
|
|
||||||
|
|
||||||
default_log_handler = g_log_set_default_handler (log_override_cb, NULL);
|
|
||||||
|
|
||||||
gtk_init (&argc, &argv);
|
|
||||||
|
|
||||||
/* Start tests */
|
|
||||||
|
|
||||||
passed = run_tests (tests, G_N_ELEMENTS (tests));
|
|
||||||
|
|
||||||
/* Warnings and errors */
|
|
||||||
|
|
||||||
zero_warnings = num_warnings == 0;
|
|
||||||
zero_errors = num_errors == 0;
|
|
||||||
zero_critical_errors = num_critical_errors == 0;
|
|
||||||
|
|
||||||
log_test (zero_warnings, "main(): zero warnings (actual number %d)", num_warnings);
|
|
||||||
log_test (zero_errors, "main(): zero errors (actual number %d)", num_errors);
|
|
||||||
log_test (zero_critical_errors, "main(): zero critical errors (actual number %d)", num_critical_errors);
|
|
||||||
|
|
||||||
/* Done */
|
|
||||||
|
|
||||||
passed = passed && zero_warnings && zero_errors && zero_critical_errors;
|
|
||||||
|
|
||||||
log_test (passed, "main(): ALL TESTS");
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -37,7 +37,6 @@ all : \
|
|||||||
# Test programs:
|
# Test programs:
|
||||||
#
|
#
|
||||||
TESTAPPS = \
|
TESTAPPS = \
|
||||||
# autotestfilechooser autotestfilesystem \
|
|
||||||
# buildertest floatingtest \
|
# buildertest floatingtest \
|
||||||
flicker \
|
flicker \
|
||||||
# objecttests \
|
# objecttests \
|
||||||
|
Loading…
Reference in New Issue
Block a user