Enlightenment CVS committal

Author  : pfritz
Project : e17
Module  : libs/ewl

Dir     : e17/libs/ewl/src/bin/tests/object


Modified Files:
        ewl_object_test.c 


Log Message:
add unit test for the returned values of preferred_size_get()

===================================================================
RCS file: /cvs/e/e17/libs/ewl/src/bin/tests/object/ewl_object_test.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- ewl_object_test.c   11 Jun 2008 23:04:43 -0000      1.12
+++ ewl_object_test.c   9 Jul 2008 22:56:59 -0000       1.13
@@ -27,6 +27,7 @@
 static int position_size_test_set_get(char *buf, int len);
 static int preferred_inner_size_test_set_get(char *buf, int len);
 static int preferred_size_test_set_get(char *buf, int len);
+static int preferred_size_test_get(char *buf, int len);
 static int minimum_size_test_set_get(char *buf, int len);
 static int maximum_size_test_set_get(char *buf, int len);
 static int minimum_size_test_set_request(char *buf, int len);
@@ -50,6 +51,7 @@
                 {"position size set/get", position_size_test_set_get, NULL, 
-1, 0},
                 {"preferred inner size set/get", 
preferred_inner_size_test_set_get, NULL, -1, 0},
                 {"preferred size set/get", preferred_size_test_set_get, NULL, 
-1, 0},
+                {"preferred size get", preferred_size_test_get, NULL, -1, 0},
                 {"minimum size set/get", minimum_size_test_set_get, NULL, -1, 
0},
                 {"maximum size set/get", maximum_size_test_set_get, NULL, -1, 
0},
                 {"minimum size set/request", minimum_size_test_set_request, 
NULL, -1, 0},
@@ -459,6 +461,97 @@
                         width, height);
 
         ewl_widget_destroy(w);
+
+        return ret;
+}
+
+/*
+ * Set different sizes (minimum, maximum, preferred) and fill policies
+ * and test if it returns the right size
+ */
+static int
+preferred_size_test_get(char *buf, int len)
+{
+        Ewl_Object *o;
+        int width, height;
+        int ret = 0;
+        const int small_w = 13;
+        const int medium_w = 20;
+        const int large_w = 30;
+        const int small_h = 7;
+        const int medium_h = 30;
+        const int large_h = 32;
+
+        o = EWL_OBJECT(ewl_widget_new());
+
+        ewl_object_preferred_inner_size_set(o, medium_w, medium_h);
+
+        ewl_object_preferred_size_get(o, &width, &height);
+        if (width != medium_w && height != medium_h)
+        {
+                LOG_FAILURE(buf, len,
+                                "Preferred size differs from the set value"
+                                "set: %dx%d get: %dx%d", 
+                                medium_w, medium_h, width, height);
+                goto DONE;
+        }
+        
+        /* now set a minimum size that is larger then the preferred size */
+        ewl_object_minimum_size_set(o, large_w, large_h);
+        ewl_object_preferred_size_get(o, &width, &height);
+        if (width != large_w || height != large_h)
+        {
+                LOG_FAILURE(buf, len,
+                                "Preferred size differs from the minimum size"
+                                "expect: %dx%d get: %dx%d", 
+                                large_w, large_h, width, height);
+                goto DONE;
+        }
+        /* reset the minimum size */
+        ewl_object_minimum_size_set(o, 0, 0);
+
+        /* set a maximum size that is smaller then the preferred size */
+        ewl_object_maximum_size_set(o, small_w, small_h);
+        ewl_object_preferred_size_get(o, &width, &height);
+        if (width != small_w || height != small_h)
+        {
+                LOG_FAILURE(buf, len,
+                                "Preferred size differs from the maximum size"
+                                "expect: %dx%d get: %dx%d", 
+                                small_w, small_h, width, height);
+                goto DONE;
+        }
+        /* reset the minimum size */
+        ewl_object_maximum_size_set(o, 0, 0);
+
+        /* set a smaller minimum size, but set the fill policy to shrink */
+        ewl_object_minimum_size_set(o, small_w, small_h);
+        ewl_object_fill_policy_set(o, EWL_FLAG_FILL_SHRINK);
+        ewl_object_preferred_size_get(o, &width, &height);
+        if (width != small_w || height != small_h)
+        {
+                LOG_FAILURE(buf, len,
+                                "Preferred size differs from the minimum size"
+                                "expect: %dx%d get: %dx%d", 
+                                small_w, small_h, width, height);
+                goto DONE;
+        }
+
+        /* do the same but this time with a larger minimum size */
+        ewl_object_minimum_size_set(o, large_w, large_h);
+        ewl_object_preferred_size_get(o, &width, &height);
+        if (width != large_w || height != large_h)
+        {
+                LOG_FAILURE(buf, len,
+                                "Preferred size differs from the minimum size"
+                                "expect: %dx%d get: %dx%d", 
+                                large_w, large_h, width, height);
+                goto DONE;
+        }
+
+        ret = 1;
+DONE:
+        ewl_widget_destroy(EWL_WIDGET(o));
 
         return ret;
 }



-------------------------------------------------------------------------
Sponsored by: SourceForge.net Community Choice Awards: VOTE NOW!
Studies have shown that voting for your favorite open source project,
along with a healthy diet, reduces your potential for chronic lameness
and boredom. Vote Now at http://www.sourceforge.net/community/cca08
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to