Merge "custom eail widget implementation" into tizen
[platform/core/uifw/eail.git] / tests / eail_multibuttonentry_tc4.c
1 /*
2  * Tested interface: AtkEditableText
3  *
4  * Tested AtkObject: EailMultibuttonentry
5  *
6  * Description: Test AtkEditableText interface
7  *
8  * Test input: accessible object representing EailMultibuttonentry
9  *
10  * Expected test result: test should return 0 (success)
11  */
12
13 #include <Elementary.h>
14 #include <atk/atk.h>
15
16 #include "eail_test_utils.h"
17
18 #define ENTRY_TEXT "Trololo lololololo olololo"
19
20 INIT_TEST("EailMultibuttonentry")
21
22 static void
23 _do_test(AtkObject *obj)
24 {
25    gchar *text = NULL;
26    gint start_offset;
27    gint end_offset;
28
29    g_assert(ATK_IS_EDITABLE_TEXT(obj));
30
31    atk_editable_text_set_text_contents(ATK_EDITABLE_TEXT(obj), ENTRY_TEXT);
32
33    start_offset = 0;
34    end_offset = -1;
35    text = atk_text_get_text(ATK_TEXT(obj), start_offset, end_offset);
36    g_assert_cmpstr(text, ==, ENTRY_TEXT);
37    g_free(text);
38
39    start_offset = 0;
40    end_offset = 7;
41    atk_editable_text_delete_text(ATK_EDITABLE_TEXT(obj), start_offset, end_offset);
42    text = atk_text_get_text(ATK_TEXT(obj), 0, -1);
43    g_assert_cmpstr(text, ==, " lololololo olololo");
44    g_free(text);
45
46    atk_editable_text_insert_text(ATK_EDITABLE_TEXT(obj), "Trololo", 7,
47                                  &start_offset);
48    text = atk_text_get_text(ATK_TEXT(obj), 0, -1);
49    g_assert(start_offset == 7);
50    g_assert_cmpstr(text, ==, ENTRY_TEXT);
51    g_free(text);
52
53    start_offset = 8;
54    end_offset = 18;
55    atk_editable_text_copy_text(ATK_EDITABLE_TEXT(obj), start_offset, end_offset);
56    atk_editable_text_set_text_contents(ATK_EDITABLE_TEXT(obj), "123");
57    atk_editable_text_paste_text(ATK_EDITABLE_TEXT(obj), 3);
58
59    start_offset = 0;
60    end_offset = -1;
61    text = atk_text_get_text(ATK_TEXT(obj), start_offset, end_offset);
62    g_assert_cmpstr(text, ==, "123lololololo");
63    g_free(text);
64
65    start_offset = 0;
66    end_offset = 3;
67    atk_editable_text_cut_text(ATK_EDITABLE_TEXT(obj), start_offset, end_offset);
68    text = atk_text_get_text(ATK_TEXT(obj), start_offset, end_offset);
69    g_assert_cmpstr(text, ==, "lol");
70    g_free(text);
71
72    start_offset = 0;
73    end_offset = -1;
74    atk_editable_text_paste_text(ATK_EDITABLE_TEXT(obj), 3);
75    text = atk_text_get_text(ATK_TEXT(obj), start_offset, end_offset);
76    g_assert_cmpstr(text, ==, "lol123olololo");
77    g_free(text);
78
79    eailu_test_code_called = 1;
80
81 }
82
83 static void
84 _init_multibutton_entry(Evas_Object *win)
85 {
86    Evas_Object *scroller, *bg, *box, *mb_entry;
87
88    elm_policy_set(ELM_POLICY_QUIT, ELM_POLICY_QUIT_LAST_WINDOW_CLOSED);
89    elm_win_autodel_set(win, EINA_TRUE);
90
91    bg = elm_bg_add(win);
92    evas_object_size_hint_weight_set(bg, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
93    elm_win_resize_object_add(win, bg);
94    evas_object_show(bg);
95
96    box = elm_box_add(win);
97    evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
98    elm_win_resize_object_add(win, box);
99    evas_object_show(box);
100
101    scroller = elm_scroller_add(win);
102    elm_scroller_bounce_set(scroller, EINA_FALSE, EINA_TRUE);
103    elm_scroller_policy_set
104        (scroller, ELM_SCROLLER_POLICY_OFF,ELM_SCROLLER_POLICY_AUTO);
105    evas_object_show(scroller);
106
107    mb_entry = elm_multibuttonentry_add(win);
108    evas_object_size_hint_weight_set(mb_entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
109    evas_object_size_hint_align_set(mb_entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
110    elm_object_content_set(scroller, mb_entry);
111    elm_multibuttonentry_editable_set(mb_entry, EINA_TRUE);
112    evas_object_show(mb_entry);
113
114    evas_object_resize(win, 130, 180);
115 }
116
117 EAPI_MAIN int
118 elm_main(int argc, char **argv)
119 {
120    Evas_Object *win;
121
122    win = eailu_create_test_window_with_glib_init(_on_done, _on_focus_in);
123    _init_multibutton_entry(win);
124
125    evas_object_show(win);
126    elm_run();
127    elm_shutdown();
128
129    /* exit code */
130    return 0;
131 }
132 ELM_MAIN()