[gnome-color-manager] Use the GcmProfile luminance functionality in the GcmCieWidget self test, and compare against a know
- From: Richard Hughes <rhughes src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [gnome-color-manager] Use the GcmProfile luminance functionality in the GcmCieWidget self test, and compare against a know
- Date: Wed, 2 Dec 2009 09:34:11 +0000 (UTC)
commit d5bd0a6efc144ed9ceda22a06a82fda48f55ef61
Author: Richard Hughes <richard hughsie com>
Date: Wed Dec 2 08:57:05 2009 +0000
Use the GcmProfile luminance functionality in the GcmCieWidget self test, and compare against a known image
data/tests/Makefile.am | 1 +
data/tests/cie-widget.png | Bin 0 -> 23406 bytes
src/gcm-cie-widget.c | 64 ++++++++++++++++++++++++++++++++++++++++++--
3 files changed, 62 insertions(+), 3 deletions(-)
---
diff --git a/data/tests/Makefile.am b/data/tests/Makefile.am
index 95501ea..9aa20f1 100644
--- a/data/tests/Makefile.am
+++ b/data/tests/Makefile.am
@@ -1,4 +1,5 @@
TEST_FILES = \
+ cie-widget.png \
Lenovo-T61-Internal.bin \
LG-L225W-External.bin
diff --git a/data/tests/cie-widget.png b/data/tests/cie-widget.png
new file mode 100644
index 0000000..f65f9a3
Binary files /dev/null and b/data/tests/cie-widget.png differ
diff --git a/src/gcm-cie-widget.c b/src/gcm-cie-widget.c
index 950e6c2..a0cec95 100644
--- a/src/gcm-cie-widget.c
+++ b/src/gcm-cie-widget.c
@@ -1141,14 +1141,26 @@ gcm_cie_widget_new (void)
#ifdef EGG_TEST
#include "egg-test.h"
+#include "gcm-profile.h"
+#include "gcm-xyz.h"
+
void
gcm_cie_widget_test (EggTest *test)
{
GtkWidget *widget;
+ GtkWidget *image;
GtkWidget *dialog;
GtkWidget *vbox;
gboolean ret;
GError *error = NULL;
+ GcmProfile *profile;
+ GcmXyz *white;
+ GcmXyz *red;
+ GcmXyz *green;
+ GcmXyz *blue;
+ gint response;
+ gchar *filename_profile;
+ gchar *filename_image;
if (!egg_test_start (test, "GcmCieWidget"))
return;
@@ -1158,17 +1170,63 @@ gcm_cie_widget_test (EggTest *test)
widget = gcm_cie_widget_new ();
egg_test_assert (test, widget != NULL);
+ /************************************************************/
+ egg_test_title (test, "get filename of image file");
+ filename_image = egg_test_get_data_file ("cie-widget.png");
+ egg_test_assert (test, (filename_image != NULL));
+
+ /************************************************************/
+ egg_test_title (test, "get filename of data file");
+ filename_profile = egg_test_get_data_file ("bluish.icc");
+ egg_test_assert (test, (filename_profile != NULL));
+
+ profile = gcm_profile_new ();
+ gcm_profile_parse (profile, filename_profile, NULL);
+ g_object_get (profile,
+ "white-point", &white,
+ "luminance-red", &red,
+ "luminance-green", &green,
+ "luminance-blue", &blue,
+ NULL);
+
+ g_object_set (widget,
+ "red-x", gcm_xyz_get_x (red),
+ "red-y", gcm_xyz_get_y (red),
+ "green-x", gcm_xyz_get_x (green),
+ "green-y", gcm_xyz_get_y (green),
+ "blue-x", gcm_xyz_get_x (blue),
+ "blue-y", gcm_xyz_get_y (blue),
+ "white-x", gcm_xyz_get_x (white),
+ "white-y", gcm_xyz_get_y (white),
+ NULL);
+
/* show in a dialog as an example */
- dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_INFO, GTK_BUTTONS_CLOSE, "CIE widget");
+ dialog = gtk_message_dialog_new (NULL, GTK_DIALOG_DESTROY_WITH_PARENT, GTK_MESSAGE_QUESTION, GTK_BUTTONS_YES_NO, "Does CIE widget match\nthe picture below?");
+ image = gtk_image_new_from_file (filename_image);
vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
gtk_box_pack_end (GTK_BOX(vbox), widget, TRUE, TRUE, 12);
- gtk_widget_set_size_request (widget, 200, 200);
+ gtk_box_pack_end (GTK_BOX(vbox), image, TRUE, TRUE, 12);
+ gtk_widget_set_size_request (widget, 300, 300);
gtk_window_set_resizable (GTK_WINDOW (dialog), TRUE);
gtk_widget_show (widget);
+ gtk_widget_show (image);
+
+ response = gtk_dialog_run (GTK_DIALOG (dialog));
+
+ /************************************************************/
+ egg_test_title (test, "plotted as expected?");
+ egg_test_assert (test, (response == GTK_RESPONSE_YES));
- gtk_dialog_run (GTK_DIALOG (dialog));
gtk_widget_destroy (dialog);
+ g_object_unref (profile);
+ g_object_unref (white);
+ g_object_unref (red);
+ g_object_unref (green);
+ g_object_unref (blue);
+ g_free (filename_profile);
+ g_free (filename_image);
+
egg_test_end (test);
}
#endif
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]