summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGodly T.Alias <godlytalias@yahoo.co.in>2018-05-02 19:16:49 -0400
committerMike Blumenkrantz <zmike@osg.samsung.com>2018-05-02 19:16:50 -0400
commite72cf7b0a496a3e948d0367ce286f7cafc334a7f (patch)
treeb327393940d594b3727156be8e490091dd7d520f
parent4d62d59978e92fc8f78c62ea498e5e9cad23bf63 (diff)
downloadefl-e72cf7b0a496a3e948d0367ce286f7cafc334a7f.tar.gz
Genlist: Test Cases for Genlist Item Show on Launch
Summary: This includes test cases for the Genlist Item Show Changes ( D5428 ) Signed-off-by: Godly T.Alias <godlytalias@yahoo.co.in> Test Plan: Elementary Test -> Genlist Item Show Reviewers: SanghyeonLee, cedric, raster, prince.dubey Subscribers: shilpasingh, rajeshps, jpeg Differential Revision: https://phab.enlightenment.org/D5499
-rw-r--r--src/bin/elementary/test.c2
-rw-r--r--src/bin/elementary/test_genlist.c281
2 files changed, 282 insertions, 1 deletions
diff --git a/src/bin/elementary/test.c b/src/bin/elementary/test.c
index f34be34e71..0408d37341 100644
--- a/src/bin/elementary/test.c
+++ b/src/bin/elementary/test.c
@@ -141,6 +141,7 @@ void test_genlist_filter(void *data, Evas_Object *obj, void *event_info);
void test_genlist_show_bring(void *data, Evas_Object *obj, void *event_info);
void test_genlist_cache(void *data, Evas_Object *obj, void *event_info);
void test_genlist_reusable(void *data, Evas_Object *obj, void *event_info);
+void test_genlist_item_show(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer2(void *data, Evas_Object *obj, void *event_info);
void test_gesture_layer3(void *data, Evas_Object *obj, void *event_info);
@@ -967,6 +968,7 @@ add_tests:
ADD_TEST(NULL, "Lists - Genlist", "Genlist Show/Bring", test_genlist_show_bring);
ADD_TEST(NULL, "Lists - Genlist", "Genlist Cache", test_genlist_cache);
ADD_TEST(NULL, "Lists - Genlist", "Genlist Reusable Contents", test_genlist_reusable);
+ ADD_TEST(NULL, "Lists - Genlist", "Genlist Item Show", test_genlist_item_show);
//------------------------------//
diff --git a/src/bin/elementary/test_genlist.c b/src/bin/elementary/test_genlist.c
index 98ffb221c2..66d0ffb835 100644
--- a/src/bin/elementary/test_genlist.c
+++ b/src/bin/elementary/test_genlist.c
@@ -21,6 +21,9 @@ struct _api_data
void *gl;
void *filter_data; /* The data used for filtering */
+ Elm_Genlist_Item_Scrollto_Type type;
+ Elm_List_Mode mode;
+ int max_items, show_item;
int scrollto;
};
typedef struct _api_data api_data;
@@ -5467,7 +5470,6 @@ test_genlist_show_bring(void *data EINA_UNUSED,
elm_genlist_item_class_free(api->itc1);
gli = elm_genlist_nth_item_get(gl, 1340);
- elm_genlist_item_selected_set(gli, EINA_TRUE);
elm_genlist_item_show(gli, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
evas_object_resize(win, 480, 400);
@@ -5475,6 +5477,283 @@ test_genlist_show_bring(void *data EINA_UNUSED,
evas_object_show(win);
}
+static Eina_Bool
+_late_item_prepender(void *data)
+{
+ api_data *api = (api_data*)data;
+ int i;
+ Elm_Object_Item *it = elm_genlist_nth_item_get(api->gl, api->show_item);
+ for (i = 0; i <= 100; i++)
+ elm_genlist_item_prepend(api->gl, api->itc1, (void*)(uintptr_t)i, it, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ elm_genlist_item_class_free(api->itc1);
+ return ECORE_CALLBACK_CANCEL;
+}
+
+static void
+test_genlist_show_item(void *data,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Evas_Object *win, *gl;
+ Elm_Object_Item *gli = NULL;
+ int i, max;
+ api_data *api = calloc(1, sizeof(api_data));
+ api_data *g_data = (api_data*)data;
+
+ win = elm_win_util_standard_add("genlist", "Genlist Show Last Item");
+ elm_win_autodel_set(win, EINA_TRUE);
+ evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(gl);
+ if (g_data)
+ elm_genlist_mode_set(gl, g_data->mode);
+ else
+ elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+ api->gl = gl;
+ elm_win_resize_object_add(win, gl);
+
+ api->itc1 = elm_genlist_item_class_new();
+ api->itc1->item_style = "default";
+ api->itc1->func.text_get = gl_text_get1;
+ api->itc1->func.content_get = gl_content_get;
+ api->itc1->func.state_get = NULL;
+ api->itc1->func.del = NULL;
+
+ g_data->gl = gl;
+ g_data->itc1 = api->itc1;
+
+ if (g_data)
+ max = g_data->max_items;
+ else max = 20000;
+ for (i = 0; i <= max; i++)
+ elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, NULL, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+
+ if (g_data)
+ gli = elm_genlist_nth_item_get(gl, g_data->show_item);
+ if (!gli) gli = elm_genlist_last_item_get(gl);
+ elm_genlist_item_show(gli, g_data->type);
+
+ //prepends item while queue processing is happening
+ ecore_timer_add(0.1, _late_item_prepender, g_data);
+
+ evas_object_resize(win, 480, 400);
+ explode_win_enable(win);
+ evas_object_show(win);
+}
+
+static void
+test_genlist_show_tree(void *data,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+ Evas_Object *win, *gl;
+ Elm_Object_Item *gli = NULL, *show = NULL;
+ int i, max;
+ api_data *api = calloc(1, sizeof(api_data));
+ api_data *g_data = (api_data*)data;
+
+ win = elm_win_util_standard_add("genlist", "Genlist Show Tree");
+ elm_win_autodel_set(win, EINA_TRUE);
+ evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api);
+
+ gl = elm_genlist_add(win);
+ evas_object_size_hint_weight_set(gl, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(gl, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(gl);
+ api->gl = gl;
+ elm_win_resize_object_add(win, gl);
+ if (g_data)
+ elm_genlist_mode_set(gl, g_data->mode);
+ else
+ elm_genlist_mode_set(gl, ELM_LIST_COMPRESS);
+
+ api->itc1 = elm_genlist_item_class_new();
+ api->itc1->item_style = "default";
+ api->itc1->func.text_get = gl_text_get1;
+ api->itc1->func.content_get = gl_content_get;
+ api->itc1->func.state_get = NULL;
+ api->itc1->func.del = NULL;
+
+ if (g_data)
+ max = g_data->max_items;
+ else max = 2000;
+ for (i = 0; i <= max; i++)
+ {
+ if (i % (max / 20) == 0)
+ gli = elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, gli, ELM_GENLIST_ITEM_TREE, NULL, NULL);
+ else
+ elm_genlist_item_append(gl, api->itc1, (void*)(uintptr_t)i, gli, ELM_GENLIST_ITEM_NONE, NULL, NULL);
+ }
+
+ if (g_data)
+ show = elm_genlist_nth_item_get(gl, g_data->show_item);
+ else show = gli;
+ elm_genlist_item_class_free(api->itc1);
+ elm_genlist_item_show(show, g_data->type);
+
+ evas_object_resize(win, 480, 400);
+ explode_win_enable(win);
+ evas_object_show(win);
+}
+
+static void
+_entry_changed_cb(void *data,
+ Evas_Object *obj,
+ void *event_info EINA_UNUSED)
+{
+ int *val = (int*) data;
+ *val = atoi(elm_entry_entry_get(obj));
+}
+
+static void
+_radio_changed_type_cb(void *data,
+ Evas_Object *obj,
+ void *event_info EINA_UNUSED)
+{
+ int val = elm_radio_state_value_get(obj);
+ api_data *api = (api_data*)data;
+ api->type = val;
+}
+
+static void
+_radio_changed_mode_cb(void *data,
+ Evas_Object *obj,
+ void *event_info EINA_UNUSED)
+{
+ int val = elm_radio_state_value_get(obj);
+ api_data *api = (api_data*)data;
+ api->mode = val;
+}
+
+void
+test_genlist_item_show(void *data EINA_UNUSED,
+ Evas_Object *obj EINA_UNUSED,
+ void *event_info EINA_UNUSED)
+{
+
+ Evas_Object *win, *bt_show, *bt_bring, *bx, *max_items, *show_item, *bxx, *rd1, *rd2, *rd3;
+ static Elm_Entry_Filter_Accept_Set digits_filter_data;
+ api_data *api = calloc(1, sizeof(api_data));
+
+ win = elm_win_util_standard_add("genlist", "Genlist Item Show");
+ elm_win_autodel_set(win, EINA_TRUE);
+ evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _cleanup_cb, api);
+
+ bx = elm_box_add(win);
+ evas_object_size_hint_weight_set(bx, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(bx, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ evas_object_show(bx);
+ elm_win_resize_object_add(win, bx);
+
+ digits_filter_data.accepted = "0123456789";
+ digits_filter_data.rejected = NULL;
+
+ max_items = elm_entry_add(win);
+ elm_entry_single_line_set(max_items, EINA_TRUE);
+ elm_entry_scrollable_set(max_items, EINA_TRUE);
+ evas_object_size_hint_weight_set(max_items, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(max_items, EVAS_HINT_FILL, 0.5);
+ elm_object_part_text_set(max_items, "guide", "Enter the maximum number of items needed");
+ evas_object_smart_callback_add(max_items, "changed", _entry_changed_cb, (void*)(&(api->max_items)));
+ elm_entry_markup_filter_append(max_items, elm_entry_filter_accept_set, &digits_filter_data);
+ evas_object_show(max_items);
+ elm_box_pack_end(bx, max_items);
+
+ show_item = elm_entry_add(win);
+ elm_entry_single_line_set(show_item, EINA_TRUE);
+ elm_entry_scrollable_set(show_item, EINA_TRUE);
+ evas_object_size_hint_weight_set(show_item, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(show_item, EVAS_HINT_FILL, 0.5);
+ elm_object_part_text_set(show_item, "guide", "Enter the number of item to be shown");
+ evas_object_smart_callback_add(show_item, "changed", _entry_changed_cb, (void*)(&(api->show_item)));
+ elm_entry_markup_filter_append(show_item, elm_entry_filter_accept_set, &digits_filter_data);
+ evas_object_show(show_item);
+ elm_box_pack_end(bx, show_item);
+
+ bxx = elm_box_add(win);
+ elm_box_horizontal_set(bxx, EINA_TRUE);
+ evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bxx, EVAS_HINT_FILL, 0.5);
+
+ rd1 = elm_radio_add(win);
+ elm_object_text_set(rd1, "Top");
+ elm_radio_state_value_set(rd1, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ evas_object_smart_callback_add(rd1, "changed", _radio_changed_type_cb, api);
+ evas_object_show(rd1);
+ elm_box_pack_end(bxx, rd1);
+
+ rd2 = elm_radio_add(win);
+ elm_object_text_set(rd2, "Middle");
+ evas_object_smart_callback_add(rd2, "changed", _radio_changed_type_cb, api);
+ elm_radio_state_value_set(rd2, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
+ elm_radio_group_add(rd2, rd1);
+ evas_object_show(rd2);
+ elm_box_pack_end(bxx, rd2);
+
+ rd3 = elm_radio_add(win);
+ elm_object_text_set(rd3, "Bottom");
+ evas_object_smart_callback_add(rd3, "changed", _radio_changed_type_cb, api);
+ elm_radio_state_value_set(rd3, ELM_GENLIST_ITEM_SCROLLTO_BOTTOM);
+ elm_radio_group_add(rd3, rd1);
+ evas_object_show(rd3);
+ elm_box_pack_end(bxx, rd3);
+ evas_object_show(bxx);
+ elm_box_pack_end(bx, bxx);
+ elm_radio_value_set(rd1, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+ api->type = ELM_GENLIST_ITEM_SCROLLTO_TOP;
+
+ bxx = elm_box_add(win);
+ elm_box_horizontal_set(bxx, EINA_TRUE);
+ evas_object_size_hint_weight_set(bxx, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(bxx, EVAS_HINT_FILL, 0.5);
+
+ rd1 = elm_radio_add(win);
+ elm_object_text_set(rd1, "ELM_LIST_SCROLL");
+ elm_radio_state_value_set(rd1, ELM_LIST_SCROLL);
+ evas_object_smart_callback_add(rd1, "changed", _radio_changed_mode_cb, api);
+ evas_object_show(rd1);
+ elm_box_pack_end(bxx, rd1);
+
+ rd2 = elm_radio_add(win);
+ elm_object_text_set(rd2, "ELM_LIST_LIMIT");
+ evas_object_smart_callback_add(rd2, "changed", _radio_changed_mode_cb, api);
+ elm_radio_state_value_set(rd2, ELM_LIST_LIMIT);
+ elm_radio_group_add(rd2, rd1);
+ evas_object_show(rd2);
+ elm_box_pack_end(bxx, rd2);
+
+ rd3 = elm_radio_add(win);
+ elm_object_text_set(rd3, "ELM_LIST_COMPRESS");
+ evas_object_smart_callback_add(rd3, "changed", _radio_changed_mode_cb, api);
+ elm_radio_state_value_set(rd3, ELM_LIST_COMPRESS);
+ elm_radio_group_add(rd3, rd1);
+ evas_object_show(rd3);
+ elm_box_pack_end(bxx, rd3);
+ evas_object_show(bxx);
+ elm_box_pack_end(bx, bxx);
+ elm_radio_value_set(rd1, ELM_LIST_SCROLL);
+ api->mode = ELM_LIST_SCROLL;
+
+ bt_show = elm_button_add(win);
+ elm_object_text_set(bt_show, "Plain Genlist");
+ evas_object_smart_callback_add(bt_show, "clicked", test_genlist_show_item, api);
+ evas_object_show(bt_show);
+ elm_box_pack_end(bx, bt_show);
+
+ bt_bring = elm_button_add(win);
+ elm_object_text_set(bt_bring, "Genlist Tree");
+ evas_object_smart_callback_add(bt_bring, "clicked", test_genlist_show_tree, api);
+ evas_object_show(bt_bring);
+ elm_box_pack_end(bx, bt_bring);
+
+ evas_object_resize(win, 480, 400);
+ explode_win_enable(win);
+ evas_object_show(win);
+}
+
/*** Genlist Cache *********************************************************/
static char *