app: fix tests test-save-and-export and test-xcf

This commit is contained in:
Michael Natterer 2014-07-08 10:07:18 +02:00
parent ba00571756
commit b9e234f042
2 changed files with 125 additions and 107 deletions

View File

@ -75,48 +75,49 @@ typedef gboolean (*GimpUiTestFunc) (GObject *object);
/**
* new_file_has_no_uris:
* new_file_has_no_files:
* @data:
*
* Tests that the URIs are correct for a newly created image.
**/
static void
new_file_has_no_uris (gconstpointer data)
new_file_has_no_files (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image = gimp_test_utils_create_image_from_dialog (gimp);
g_assert (gimp_image_get_uri (image) == NULL);
g_assert (gimp_image_get_imported_uri (image) == NULL);
g_assert (gimp_image_get_exported_uri (image) == NULL);
g_assert (gimp_image_get_file (image) == NULL);
g_assert (gimp_image_get_imported_file (image) == NULL);
g_assert (gimp_image_get_exported_file (image) == NULL);
}
/**
* opened_xcf_file_uris:
* opened_xcf_file_files:
* @data:
*
* Tests that GimpImage URIs are correct for an XCF file that has just
* been opened.
**/
static void
opened_xcf_file_uris (gconstpointer data)
opened_xcf_file_files (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image;
gchar *uri;
GFile *file;
gchar *filename;
GimpPDBStatusType status;
filename = g_build_filename (g_getenv ("GIMP_TESTING_ABS_TOP_SRCDIR"),
"app/tests/files/gimp-2-6-file.xcf",
NULL);
uri = g_filename_to_uri (filename, NULL, NULL);
file = g_file_new_for_path (filename);
g_free (filename);
image = file_open_image (gimp,
gimp_get_user_context (gimp),
NULL /*progress*/,
uri,
filename,
file,
file,
FALSE /*as_new*/,
NULL /*file_proc*/,
GIMP_RUN_NONINTERACTIVE,
@ -124,26 +125,25 @@ opened_xcf_file_uris (gconstpointer data)
NULL /*mime_type*/,
NULL /*error*/);
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_uri (image)),
g_file_new_for_uri (uri)));
g_assert (gimp_image_get_imported_uri (image) == NULL);
g_assert (gimp_image_get_exported_uri (image) == NULL);
g_assert (g_file_equal (gimp_image_get_file (image), file));
g_assert (gimp_image_get_imported_file (image) == NULL);
g_assert (gimp_image_get_exported_file (image) == NULL);
/* Don't bother g_free()ing strings */
g_object_unref (file);
}
/**
* imported_file_uris:
* imported_file_files:
* @data:
*
* Tests that URIs are correct for an imported image.
**/
static void
imported_file_uris (gconstpointer data)
imported_file_files (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image;
gchar *uri;
GFile *file;
gchar *filename;
GimpPDBStatusType status;
@ -151,13 +151,14 @@ imported_file_uris (gconstpointer data)
"desktop/64x64/gimp.png",
NULL);
g_assert (g_file_test (filename, G_FILE_TEST_EXISTS));
file = g_file_new_for_path (filename);
g_free (filename);
uri = g_filename_to_uri (filename, NULL, NULL);
image = file_open_image (gimp,
gimp_get_user_context (gimp),
NULL /*progress*/,
uri,
filename,
file,
file,
FALSE /*as_new*/,
NULL /*file_proc*/,
GIMP_RUN_NONINTERACTIVE,
@ -165,27 +166,28 @@ imported_file_uris (gconstpointer data)
NULL /*mime_type*/,
NULL /*error*/);
g_assert (gimp_image_get_uri (image) == NULL);
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_imported_uri (image)),
g_file_new_for_uri (uri)));
g_assert (gimp_image_get_exported_uri (image) == NULL);
g_assert (gimp_image_get_file (image) == NULL);
g_assert (g_file_equal (gimp_image_get_imported_file (image), file));
g_assert (gimp_image_get_exported_file (image) == NULL);
g_object_unref (file);
}
/**
* saved_imported_file_uris:
* saved_imported_file_files:
* @data:
*
* Tests that the URIs are correct for an image that has been imported
* and then saved.
**/
static void
saved_imported_file_uris (gconstpointer data)
saved_imported_file_files (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image;
gchar *import_uri;
GFile *import_file;
gchar *import_filename;
gchar *save_uri;
GFile *save_file;
gchar *save_filename;
GimpPDBStatusType status;
GimpPlugInProcedure *proc;
@ -193,16 +195,19 @@ saved_imported_file_uris (gconstpointer data)
import_filename = g_build_filename (g_getenv ("GIMP_TESTING_ABS_TOP_SRCDIR"),
"desktop/64x64/gimp.png",
NULL);
import_uri = g_filename_to_uri (import_filename, NULL, NULL);
import_file = g_file_new_for_path (import_filename);
g_free (import_filename);
save_filename = g_build_filename (g_get_tmp_dir (), "gimp-test.xcf", NULL);
save_uri = g_filename_to_uri (save_filename, NULL, NULL);
save_file = g_file_new_for_path (save_filename);
g_free (save_filename);
/* Import */
image = file_open_image (gimp,
gimp_get_user_context (gimp),
NULL /*progress*/,
import_uri,
import_filename,
import_file,
import_file,
FALSE /*as_new*/,
NULL /*file_proc*/,
GIMP_RUN_NONINTERACTIVE,
@ -210,14 +215,16 @@ saved_imported_file_uris (gconstpointer data)
NULL /*mime_type*/,
NULL /*error*/);
g_object_unref (import_file);
/* Save */
proc = file_procedure_find (image->gimp->plug_in_manager->save_procs,
save_uri,
save_file,
NULL /*error*/);
file_save (gimp,
image,
NULL /*progress*/,
save_uri,
save_file,
proc,
GIMP_RUN_NONINTERACTIVE,
TRUE /*change_saved_state*/,
@ -226,40 +233,41 @@ saved_imported_file_uris (gconstpointer data)
NULL /*error*/);
/* Assert */
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_uri (image)),
g_file_new_for_uri (save_uri)));
g_assert (gimp_image_get_imported_uri (image) == NULL);
g_assert (gimp_image_get_exported_uri (image) == NULL);
g_assert (g_file_equal (gimp_image_get_file (image), save_file));
g_assert (gimp_image_get_imported_file (image) == NULL);
g_assert (gimp_image_get_exported_file (image) == NULL);
g_unlink (save_filename);
g_file_delete (save_file, NULL, NULL);
g_object_unref (save_file);
}
/**
* new_file_has_no_uris:
* exported_file_files:
* @data:
*
* Tests that the URIs for an exported, newly created file are
* correct.
**/
static void
exported_file_uris (gconstpointer data)
exported_file_files (gconstpointer data)
{
gchar *save_uri;
GFile *save_file;
gchar *save_filename;
GimpPlugInProcedure *proc;
Gimp *gimp = GIMP (data);
GimpImage *image = gimp_test_utils_create_image_from_dialog (gimp);
save_filename = g_build_filename (g_get_tmp_dir (), "gimp-test.png", NULL);
save_uri = g_filename_to_uri (save_filename, NULL, NULL);
save_file = g_file_new_for_path (save_filename);
g_free (save_filename);
proc = file_procedure_find (image->gimp->plug_in_manager->export_procs,
save_uri,
save_file,
NULL /*error*/);
file_save (gimp,
image,
NULL /*progress*/,
save_uri,
save_file,
proc,
GIMP_RUN_NONINTERACTIVE,
FALSE /*change_saved_state*/,
@ -267,16 +275,16 @@ exported_file_uris (gconstpointer data)
TRUE /*export_forward*/,
NULL /*error*/);
g_assert (gimp_image_get_uri (image) == NULL);
g_assert (gimp_image_get_imported_uri (image) == NULL);
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_exported_uri (image)),
g_file_new_for_uri (save_uri)));
g_assert (gimp_image_get_file (image) == NULL);
g_assert (gimp_image_get_imported_file (image) == NULL);
g_assert (g_file_equal (gimp_image_get_exported_file (image), save_file));
g_unlink (save_filename);
g_file_delete (save_file, NULL, NULL);
g_object_unref (save_file);
}
/**
* clear_import_uri_after_export:
* clear_import_file_after_export:
* @data:
*
* Tests that after a XCF file that was imported has been exported,
@ -284,13 +292,13 @@ exported_file_uris (gconstpointer data)
* imported and exported at the same time.
**/
static void
clear_import_uri_after_export (gconstpointer data)
clear_import_file_after_export (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image;
gchar *uri;
GFile *file;
gchar *filename;
gchar *save_uri;
GFile *save_file;
gchar *save_filename;
GimpPlugInProcedure *proc;
GimpPDBStatusType status;
@ -298,13 +306,14 @@ clear_import_uri_after_export (gconstpointer data)
filename = g_build_filename (g_getenv ("GIMP_TESTING_ABS_TOP_SRCDIR"),
"desktop/64x64/gimp.png",
NULL);
uri = g_filename_to_uri (filename, NULL, NULL);
file = g_file_new_for_path (filename);
g_free (filename);
image = file_open_image (gimp,
gimp_get_user_context (gimp),
NULL /*progress*/,
uri,
filename,
file,
file,
FALSE /*as_new*/,
NULL /*file_proc*/,
GIMP_RUN_NONINTERACTIVE,
@ -312,21 +321,23 @@ clear_import_uri_after_export (gconstpointer data)
NULL /*mime_type*/,
NULL /*error*/);
g_assert (gimp_image_get_uri (image) == NULL);
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_imported_uri (image)),
g_file_new_for_uri (uri)));
g_assert (gimp_image_get_exported_uri (image) == NULL);
g_assert (gimp_image_get_file (image) == NULL);
g_assert (g_file_equal (gimp_image_get_imported_file (image), file));
g_assert (gimp_image_get_exported_file (image) == NULL);
g_object_unref (file);
save_filename = g_build_filename (g_get_tmp_dir (), "gimp-test.png", NULL);
save_uri = g_filename_to_uri (save_filename, NULL, NULL);
save_file = g_file_new_for_path (save_filename);
g_free (save_filename);
proc = file_procedure_find (image->gimp->plug_in_manager->export_procs,
save_uri,
save_file,
NULL /*error*/);
file_save (gimp,
image,
NULL /*progress*/,
save_uri,
save_file,
proc,
GIMP_RUN_NONINTERACTIVE,
FALSE /*change_saved_state*/,
@ -334,15 +345,17 @@ clear_import_uri_after_export (gconstpointer data)
TRUE /*export_forward*/,
NULL /*error*/);
g_assert (gimp_image_get_uri (image) == NULL);
g_assert (gimp_image_get_imported_uri (image) == NULL);
g_assert (g_file_equal (g_file_new_for_uri (gimp_image_get_exported_uri (image)),
g_file_new_for_uri (save_uri)));
g_assert (gimp_image_get_file (image) == NULL);
g_assert (gimp_image_get_imported_file (image) == NULL);
g_assert (g_file_equal (gimp_image_get_exported_file (image), save_file));
g_unlink (save_filename);
g_file_delete (save_file, NULL, NULL);
g_object_unref (save_file);
}
int main(int argc, char **argv)
int
main(int argc,
char **argv)
{
Gimp *gimp = NULL;
gint result = -1;
@ -358,12 +371,12 @@ int main(int argc, char **argv)
gimp = gimp_init_for_gui_testing (TRUE /*show_gui*/);
gimp_test_run_mainloop_until_idle ();
ADD_TEST (new_file_has_no_uris);
ADD_TEST (opened_xcf_file_uris);
ADD_TEST (imported_file_uris);
ADD_TEST (saved_imported_file_uris);
ADD_TEST (exported_file_uris);
ADD_TEST (clear_import_uri_after_export);
ADD_TEST (new_file_has_no_files);
ADD_TEST (opened_xcf_file_files);
ADD_TEST (imported_file_files);
ADD_TEST (saved_imported_file_files);
ADD_TEST (exported_file_files);
ADD_TEST (clear_import_file_after_export);
/* Run the tests and return status */
result = g_test_run ();

View File

@ -17,8 +17,6 @@
#include <string.h>
#include <glib/gstdio.h>
#include <gegl.h>
#include <gtk/gtk.h>
@ -141,7 +139,7 @@
GimpImage * gimp_test_load_image (Gimp *gimp,
const gchar *uri);
GFile *file);
static void gimp_write_and_read_file (Gimp *gimp,
gboolean with_unusual_stuff,
gboolean compat_paths,
@ -203,15 +201,18 @@ write_and_read_gimp_2_6_format_unusual (gconstpointer data)
static void
load_gimp_2_6_file (gconstpointer data)
{
Gimp *gimp = GIMP (data);
GimpImage *image = NULL;
gchar *uri = NULL;
Gimp *gimp = GIMP (data);
GimpImage *image;
gchar *filename;
GFile *file;
uri = g_build_filename (g_getenv ("GIMP_TESTING_ABS_TOP_SRCDIR"),
"app/tests/files/gimp-2-6-file.xcf",
NULL);
filename = g_build_filename (g_getenv ("GIMP_TESTING_ABS_TOP_SRCDIR"),
"app/tests/files/gimp-2-6-file.xcf",
NULL);
file = g_file_new_for_path (filename);
g_free (filename);
image = gimp_test_load_image (gimp, uri);
image = gimp_test_load_image (gimp, file);
/* The image file was constructed by running
* gimp_write_and_read_file (FALSE, FALSE) in GIMP 2.6 by
@ -245,25 +246,25 @@ write_and_read_gimp_2_8_format (gconstpointer data)
}
GimpImage *
gimp_test_load_image (Gimp *gimp,
const gchar *uri)
gimp_test_load_image (Gimp *gimp,
GFile *file)
{
GimpPlugInProcedure *proc = NULL;
GimpImage *image = NULL;
GimpPDBStatusType not_used = 0;
GimpPlugInProcedure *proc;
GimpImage *image;
GimpPDBStatusType unused;
proc = file_procedure_find (gimp->plug_in_manager->load_procs,
uri,
file,
NULL /*error*/);
image = file_open_image (gimp,
gimp_get_user_context (gimp),
NULL /*progress*/,
uri,
"irrelevant" /*entered_filename*/,
file,
file,
FALSE /*as_new*/,
proc,
GIMP_RUN_NONINTERACTIVE,
&not_used /*status*/,
&unused /*status*/,
NULL /*mime_type*/,
NULL /*error*/);
@ -284,10 +285,11 @@ gimp_write_and_read_file (Gimp *gimp,
gboolean compat_paths,
gboolean use_gimp_2_8_features)
{
GimpImage *image = NULL;
GimpImage *loaded_image = NULL;
GimpPlugInProcedure *proc = NULL;
gchar *uri = NULL;
GimpImage *image;
GimpImage *loaded_image;
GimpPlugInProcedure *proc;
gchar *filename;
GFile *file;
/* Create the image */
image = gimp_create_mainimage (gimp,
@ -302,14 +304,17 @@ gimp_write_and_read_file (Gimp *gimp,
use_gimp_2_8_features);
/* Write to file */
uri = g_build_filename (g_get_tmp_dir (), "gimp-test.xcf", NULL);
filename = g_build_filename (g_get_tmp_dir (), "gimp-test.xcf", NULL);
file = g_file_new_for_path (filename);
g_free (filename);
proc = file_procedure_find (image->gimp->plug_in_manager->save_procs,
uri,
file,
NULL /*error*/);
file_save (gimp,
image,
NULL /*progress*/,
uri,
file,
proc,
GIMP_RUN_NONINTERACTIVE,
FALSE /*change_saved_state*/,
@ -318,7 +323,7 @@ gimp_write_and_read_file (Gimp *gimp,
NULL /*error*/);
/* Load from file */
loaded_image = gimp_test_load_image (image->gimp, uri);
loaded_image = gimp_test_load_image (image->gimp, file);
/* Assert on the loaded file. If success, it means that there is no
* significant information loss when we wrote the image to a file
@ -329,8 +334,8 @@ gimp_write_and_read_file (Gimp *gimp,
compat_paths,
use_gimp_2_8_features);
g_unlink (uri);
g_free (uri);
g_file_delete (file, NULL, NULL);
g_object_unref (file);
}
/**