efl

Форк
0
/
elm_test_entry.c 
700 строк · 20.8 Кб
1
#ifdef HAVE_CONFIG_H
2
# include "elementary_config.h"
3
#endif
4

5
#define EFL_ACCESS_OBJECT_BETA
6
#define EFL_ACCESS_TEXT_BETA
7
#define EFL_ACCESS_TEXT_PROTECTED
8
#include <Elementary.h>
9
#include "elm_suite.h"
10

11
EFL_START_TEST(elm_entry_legacy_type_check)
12
{
13
   Evas_Object *win, *entry;
14
   const char *type;
15

16
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
17

18
   entry = elm_entry_add(win);
19

20
   type = elm_object_widget_type_get(entry);
21
   ck_assert(type != NULL);
22
   ck_assert(!strcmp(type, "Elm_Entry"));
23

24
   type = evas_object_type_get(entry);
25
   ck_assert(type != NULL);
26
   ck_assert(!strcmp(type, "elm_entry"));
27

28
}
29
EFL_END_TEST
30

31
EFL_START_TEST(elm_entry_del)
32
{
33
   Evas_Object *win, *entry;
34

35
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
36

37
   entry = elm_entry_add(win);
38
   elm_object_text_set(entry, "TEST");
39

40
}
41
EFL_END_TEST
42

43
void
44
_dummy_cb(void *data EINA_UNUSED, Eo *obj EINA_UNUSED,
45
          const char *sig EINA_UNUSED, const char *src EINA_UNUSED)
46
{
47
}
48

49
EFL_START_TEST(elm_entry_signal_callback)
50
{
51
   Evas_Object *win, *entry;
52
   void *data;
53
   int k;
54

55
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
56

57
   entry = elm_entry_add(win);
58

59
   for (k = 1; k < 10; k++)
60
     {
61
        int *val = malloc(sizeof(int));
62
        *val = 42 * k;
63
        elm_layout_signal_callback_add(entry, "sig", "src", _dummy_cb, val);
64
     }
65

66
   data = elm_layout_signal_callback_del(entry, "notsig", "notsrc", _dummy_cb);
67
   fail_if(data);
68

69
   // this test verifies that the legacy wrapper returns the proper data
70
   // the eo API requires the data as input to "del()"
71
   for (k = 1; k < 10; k++)
72
     {
73
        int *val;
74
        data = elm_layout_signal_callback_del(entry, "sig", "src", _dummy_cb);
75
        fail_if(!data);
76
        val = (int *)data;
77
        ck_assert_int_ne(*val, 0);
78
        ck_assert_int_eq((*val) % 42, 0);
79
        free(data);
80
     }
81

82
   data = elm_layout_signal_callback_del(entry, "sig", "src", _dummy_cb);
83
   fail_if(data);
84

85
}
86
EFL_END_TEST
87

88
EFL_START_TEST(elm_entry_atspi_text_char_get)
89
{
90
   Evas_Object *win, *entry;
91
   Eina_Unicode *expected;
92
   Eina_Unicode val;
93

94
   const char *txt = "ĄA11Y Ł TEST";
95
   const char *mtxt = "<b>ĄA11Y</b> <title>Ł</> TEST";
96

97
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
98

99
   entry = elm_entry_add(win);
100
   elm_object_text_set(entry, mtxt);
101

102
   expected = eina_unicode_utf8_to_unicode(txt, NULL);
103

104
   val = efl_access_text_character_get(entry, -1);
105
   ck_assert(val == 0);
106

107
   val = efl_access_text_character_get(entry, 0);
108
   ck_assert(val == expected[0]);
109

110
   val = efl_access_text_character_get(entry, 1);
111
   ck_assert(val == expected[1]);
112

113
   val = efl_access_text_character_get(entry, 2);
114
   ck_assert(val == expected[2]);
115

116
   val = efl_access_text_character_get(entry, 6);
117
   ck_assert(val == expected[6]);
118

119
   val = efl_access_text_character_get(entry, 26);
120
   ck_assert(val == 0);
121

122
   free(expected);
123
}
124
EFL_END_TEST
125

126
EFL_START_TEST(elm_entry_atspi_text_char_count)
127
{
128
   Evas_Object *win, *entry;
129
   int val;
130

131
   const char *mtxt = "<b>AĄ11Y</b> <title>Ł</> TEST";
132

133
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
134

135
   entry = elm_entry_add(win);
136
   elm_object_text_set(entry, mtxt);
137

138
   val = efl_access_text_character_count_get(entry);
139
   ck_assert(val == 12);
140

141
}
142
EFL_END_TEST
143

144
EFL_START_TEST(elm_entry_atspi_text_string_get_char)
145
{
146
   Evas_Object *win, *entry;
147
   char *val;
148
   int start, end;
149

150
   const char *txt = "Lorem ipśum   dolor sit amęt";
151

152
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
153

154
   entry = elm_entry_add(win);
155
   elm_object_text_set(entry, txt);
156

157
   start = 1;
158
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
159
   ck_assert_str_eq(val, "o");
160
   ck_assert(start == 1);
161
   ck_assert(end == 2);
162
   if (val) free(val);
163

164
   start = 8;
165
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
166
   ck_assert_str_eq(val, "ś");
167
   ck_assert(start == 8);
168
   ck_assert(end == 9);
169
   if (val) free(val);
170

171
   start = 11;
172
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
173
   ck_assert_str_eq(val, " ");
174
   ck_assert(start == 11);
175
   ck_assert(end == 12);
176
   if (val) free(val);
177

178
   start = 111;
179
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_CHAR, &start, &end, &val);
180
   ck_assert(start == -1);
181
   ck_assert(end == -1);
182
   ck_assert(val == NULL);
183

184
}
185
EFL_END_TEST
186

187
EFL_START_TEST(elm_entry_atspi_text_string_get_word)
188
{
189
   Evas_Object *win, *entry;
190
   char *val;
191
   int start, end;
192

193
   const char *txt = "Lorem ipśum   dolor sit amęt";
194

195
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
196

197
   entry = elm_entry_add(win);
198
   elm_object_text_set(entry, txt);
199

200
   start = 1;
201
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
202
   ck_assert_str_eq(val, "Lorem");
203
   ck_assert(start == 0);
204
   ck_assert(end == 5);
205
   if (val) free(val);
206

207
   start = 6;
208
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
209
   ck_assert_str_eq(val, "ipśum");
210
   ck_assert(start == 6);
211
   ck_assert(end == 11);
212
   if (val) free(val);
213

214
   start = 19;
215
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
216
   ck_assert_str_eq(val, "dolor");
217
   ck_assert(start == 14);
218
   ck_assert(end == 19);
219
   if (val) free(val);
220

221
   start = 111;
222
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
223
   ck_assert(start == -1);
224
   ck_assert(end == -1);
225
   ck_assert(val == NULL);
226
   if (val) free(val);
227

228
}
229
EFL_END_TEST
230

231
EFL_START_TEST(elm_entry_atspi_text_string_get_paragraph)
232
{
233
   Evas_Object *win, *entry;
234
   char *val;
235
   int start, end;
236

237
   const char *txt = "Lorem ipśum<br>   dolor sit<br> amęt";
238

239
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
240

241
   entry = elm_entry_add(win);
242
   elm_object_text_set(entry, txt);
243

244
   start = 1;
245
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
246
   ck_assert_str_eq(val, "Lorem ipśum");
247
   ck_assert(start == 0);
248
   ck_assert(end == 11);
249
   if (val) free(val);
250

251
   start = 20;
252
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
253
   ck_assert_str_eq(val, "   dolor sit");
254
   ck_assert(start == 12);
255
   ck_assert(end == 24);
256
   if (val) free(val);
257

258
   start = 25;
259
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH, &start, &end, &val);
260
   ck_assert_str_eq(val, " amęt");
261
   ck_assert(start == 25);
262
   ck_assert(end == 30);
263
   if (val) free(val);
264

265
   start = 111;
266
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_WORD, &start, &end, &val);
267
   ck_assert(start == -1);
268
   ck_assert(end == -1);
269
   ck_assert(val == NULL);
270
   if (val) free(val);
271

272
}
273
EFL_END_TEST
274

275
EFL_START_TEST(elm_entry_atspi_text_string_get_line)
276
{
277
   Evas_Object *win, *entry;
278
   char *val;
279
   int start, end;
280

281
   const char *txt = "Lorem ipśum<br>   dolor sit amęt";
282

283
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
284

285
   entry = elm_entry_add(win);
286
   evas_object_resize(entry, 500, 500);
287

288
   elm_object_text_set(entry, txt);
289

290
   start = 1;
291
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
292

293
   ck_assert_str_eq(val, "Lorem ipśum");
294
   ck_assert(start == 0);
295
   ck_assert(end == 11);
296
   if (val) free(val);
297

298
   start = 13;
299
   efl_access_text_string_get(entry, EFL_ACCESS_TEXT_GRANULARITY_LINE, &start, &end, &val);
300
   ck_assert_str_eq(val, "   dolor sit amęt");
301
   ck_assert(start == 12);
302
   ck_assert(end == 29);
303
   if (val) free(val);
304

305
}
306
EFL_END_TEST
307

308
EFL_START_TEST(elm_entry_atspi_text_text_get)
309
{
310
   Evas_Object *win, *entry;
311
   char *val;
312
   const char *txt = "Lorem Xpśum dolor sit amęt";
313

314
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
315

316
   entry = elm_entry_add(win);
317
   elm_object_text_set(entry, txt);
318

319
   // invalid ranges
320
   val = efl_access_text_get(entry, 6, 100);
321
   ck_assert(val == NULL);
322
   val = efl_access_text_get(entry, -6, 10);
323
   ck_assert(val == NULL);
324
   val = efl_access_text_get(entry, -6, -10);
325
   ck_assert(val == NULL);
326
   val = efl_access_text_get(entry, 60, 100);
327
   ck_assert(val == NULL);
328

329
   // proper range
330
   val = efl_access_text_get(entry, 6, 17);
331
   ck_assert_str_eq(val, "Xpśum dolor");
332

333
   if (val) free(val);
334
}
335
EFL_END_TEST
336

337
EFL_START_TEST(elm_entry_atspi_text_selections)
338
{
339
   Evas_Object *win, *entry;
340
   int val, start, end;
341
   const char *str;
342
   Eina_Bool ret;
343
   const char *txt = "Lorem ipśum<br>   dolor sit\n amęt";
344

345
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
346

347
   entry = elm_entry_add(win);
348
   elm_object_text_set(entry, txt);
349

350
   val = efl_access_text_selections_count_get(entry);
351
   ck_assert(val == 0);
352

353
   elm_entry_select_region_set(entry, 2, 4);
354
   val = efl_access_text_selections_count_get(entry);
355
   ck_assert(val == 1);
356
   efl_access_text_access_selection_get(entry, 0, &start, &end);
357
   ck_assert(start == 2);
358
   ck_assert(end == 4);
359

360
   elm_entry_select_region_set(entry, 6, 10);
361
   val = efl_access_text_selections_count_get(entry);
362
   ck_assert(val == 1);
363
   efl_access_text_access_selection_get(entry, 0, &start, &end);
364
   ck_assert(start == 6);
365
   ck_assert(end == 10);
366

367
   elm_entry_select_none(entry);
368
   ret = efl_access_text_selection_add(entry, 2, 5);
369
   ck_assert(ret == EINA_TRUE);
370
   str = elm_entry_selection_get(entry);
371
   ck_assert_str_eq(str, "rem");
372

373
   ret = efl_access_text_selection_remove(entry, 0);
374
   ck_assert(ret == EINA_TRUE);
375
   str = elm_entry_selection_get(entry);
376
   ck_assert(str == NULL);
377

378
}
379
EFL_END_TEST
380

381
EFL_START_TEST(elm_atspi_role_get)
382
{
383
   Evas_Object *win, *entry;
384
   Efl_Access_Role role;
385

386
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
387

388
   entry = elm_entry_add(win);
389
   role = efl_access_object_role_get(entry);
390

391
   ck_assert(role == EFL_ACCESS_ROLE_ENTRY);
392

393
}
394
EFL_END_TEST
395

396
static Eina_Bool
397
end_test()
398
{
399
   ecore_main_loop_quit();
400
   return EINA_FALSE;
401
}
402

403
EFL_START_TEST(elm_entry_magnifier)
404
{
405
   Evas_Object *win, *entry;
406
   Evas *e;
407
   char buf[4096];
408

409
   win = win_add_focused(NULL, "entry", ELM_WIN_BASIC);
410
   e = evas_object_evas_get(win);
411
   evas_object_size_hint_weight_set(win, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
412

413
   entry = elm_entry_add(win);
414
   elm_entry_line_wrap_set(entry, ELM_WRAP_NONE);
415
   snprintf(buf, sizeof(buf),
416
            "This is an entry widget in this window that<br/>"
417
            "uses markup <b>like this</> for styling and<br/>"
418
            "formatting <em>like this</>, as well as<br/>"
419
            "<a href=X><link>links in the text</></a>, so enter text<br/>"
420
            "in here to edit it. By the way, links are<br/>"
421
            "called <a href=anc-02>Anchors</a> so you will need<br/>"
422
            "to refer to them this way.<br/>"
423
            "<br/>"
424

425
            "Also you can stick in items with (relsize + ascent): "
426
            "<item relsize=16x16 vsize=ascent href=emoticon/evil-laugh></item>"
427
            " (full) "
428
            "<item relsize=16x16 vsize=full href=emoticon/guilty-smile></item>"
429
            " (to the left)<br/>"
430

431
            "Also (size + ascent): "
432
            "<item size=16x16 vsize=ascent href=emoticon/haha></item>"
433
            " (full) "
434
            "<item size=16x16 vsize=full href=emoticon/happy-panting></item>"
435
            " (before this)<br/>"
436

437
            "And as well (absize + ascent): "
438
            "<item absize=64x64 vsize=ascent href=emoticon/knowing-grin></item>"
439
            " (full) "
440
            "<item absize=64x64 vsize=full href=emoticon/not-impressed></item>"
441
            " or even paths to image files on disk too like: "
442
            "<item absize=96x128 vsize=full href=file://%s/images/sky_01.jpg></item>"
443
            " ... end."
444
            , elm_app_data_dir_get()
445
            );
446
   elm_object_text_set(entry, buf);
447
   evas_object_size_hint_weight_set(entry, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
448
   evas_object_size_hint_align_set(entry, EVAS_HINT_FILL, EVAS_HINT_FILL);
449
   evas_object_show(entry);
450
   elm_win_resize_object_add(win, entry);
451
   evas_object_show(win);
452
   evas_object_resize(entry, 600, 400);
453
   evas_object_resize(win, 600, 400);
454
   get_me_to_those_events(e);
455

456
   evas_event_feed_mouse_out(e, 0, NULL);
457
   evas_event_feed_mouse_in(e, 0, NULL);
458
   evas_event_feed_mouse_move(e, 200, 100, 0, NULL);
459
   evas_event_feed_mouse_down(e, 1, 0, 0, NULL);
460
   real_timer_add(elm_config_longpress_timeout_get() + 0.1, end_test, NULL);
461
}
462
EFL_END_TEST
463

464
EFL_START_TEST(elm_entry_text_set)
465
{
466
   Evas_Object *win, *entry;
467
   const char *entry_text = "hello world";
468
   const char *entry_text2 = "scrollable";
469

470
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
471

472
   entry = elm_entry_add(win);
473

474
   ck_assert(elm_layout_text_set(entry, NULL, entry_text));
475
   ck_assert_str_eq(elm_object_text_get(entry), entry_text);
476

477
   elm_entry_scrollable_set(entry, EINA_TRUE);
478
   ck_assert(elm_layout_text_set(entry, NULL, entry_text2));
479
   ck_assert_str_eq(elm_object_text_get(entry), entry_text2);
480
}
481
EFL_END_TEST
482

483
EFL_START_TEST(elm_entry_guide_text_set)
484
{
485
   Evas_Object *win, *entry;
486
   const char *markup_text = "<font_size=32 color=#FFF>markup_test</font_size>";
487
   const char *markup_text2 = "<font_size=24 color=#FFF>test_markup</font_size>";
488

489
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
490

491
   entry = elm_entry_add(win);
492

493
   elm_object_part_text_set(entry, "elm.guide", markup_text);
494
   elm_entry_editable_set(entry, EINA_FALSE);
495
   ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text);
496

497
   elm_object_part_text_set(entry, "elm.guide", markup_text2);
498
   elm_entry_single_line_set(entry, EINA_FALSE);
499
   ck_assert_str_eq(elm_object_part_text_get(entry, "elm.guide"), markup_text2);
500
}
501
EFL_END_TEST
502

503
EFL_START_TEST(elm_entry_file_get_set)
504
{
505
   Evas_Object *win, *entry;
506
   const char *file_path = NULL;
507
   Elm_Text_Format format = ELM_TEXT_FORMAT_PLAIN_UTF8;
508

509
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
510
   entry = elm_entry_add(win);
511

512
   ck_assert(elm_entry_file_set(entry, TESTS_SRC_DIR"/testfile_entry.txt", ELM_TEXT_FORMAT_PLAIN_UTF8));
513
   elm_entry_file_get(entry, &file_path, &format);
514
   fprintf(stderr, "elm_entry_file_get_set1 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
515

516
   ck_assert_str_eq(elm_object_text_get(entry), "hello world<br/>");
517
   ck_assert_str_eq(file_path, TESTS_SRC_DIR"/testfile_entry.txt");
518
   ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
519

520
   ck_assert(elm_entry_file_set(entry, TESTS_SRC_DIR"/testfile_entry2.txt", ELM_TEXT_FORMAT_PLAIN_UTF8));
521
   elm_entry_file_get(entry, &file_path, &format);
522
   fprintf(stderr, "elm_entry_file_get_set2 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
523

524
   ck_assert_str_eq(elm_object_text_get(entry), "hello elementary<br/>hello entry<br/>");
525
   ck_assert_str_eq(file_path, TESTS_SRC_DIR"/testfile_entry2.txt");
526
   ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
527

528
   ck_assert(elm_entry_file_set(entry, NULL, ELM_TEXT_FORMAT_PLAIN_UTF8));
529
   elm_entry_file_get(entry, &file_path, &format);
530
   fprintf(stderr, "elm_entry_file_get_set3 %s, %s, %d\n", elm_object_text_get(entry), file_path, format);
531

532
   ck_assert_str_eq(elm_object_text_get(entry), "");
533
   ck_assert(file_path == NULL);
534
   ck_assert(format == ELM_TEXT_FORMAT_PLAIN_UTF8);
535

536
   fprintf(stderr, "elm_entry_file_get_set4\n");
537

538
}
539
EFL_END_TEST
540

541
EFL_START_TEST(elm_entry_test_text_class)
542
{
543
   Evas_Object *win, *entry1, *entry2, *entry3, *entry4;
544
   const char *filename = NULL;
545
   int w1 = 0, h1 = 0, w2 = 0, h2 = 0, w3 = 0, h3 = 0;
546
   const char *font;
547
   int font_size;
548

549
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
550
   entry1 = elm_entry_add(win);
551
   entry2 = elm_entry_add(win);
552
   entry3 = elm_entry_add(win);
553

554
   elm_object_text_set(entry1, "hello");
555
   elm_object_text_set(entry2, "hello");
556
   elm_object_text_set(entry3, "hello");
557

558
   edje_object_file_get(elm_layout_edje_get(entry1), &filename, NULL);
559
   ck_assert(filename != NULL);
560

561
   ck_assert(edje_file_text_class_set(filename, "entry_text", "Serif:Style=Bold", 24));
562

563
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
564
   ck_assert_int_eq(font_size, 24);
565
   ck_assert_str_eq(font, "Serif:Style=Bold");
566
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
567
   ck_assert_int_eq(font_size, 24);
568
   ck_assert_str_eq(font, "Serif:Style=Bold");
569
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
570
   ck_assert_int_eq(font_size, 24);
571
   ck_assert_str_eq(font, "Serif:Style=Bold");
572

573
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
574
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
575
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
576

577
   ck_assert_int_eq(w1, w2);
578
   ck_assert_int_eq(h1, h2);
579
   ck_assert_int_eq(w2, w3);
580
   ck_assert_int_eq(h2, h3);
581

582
   ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry1), "entry_text", "Sans", 50));
583
   ck_assert(edje_object_text_class_set(elm_layout_edje_get(entry2), "entry_text", "Serif", 20));
584

585
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry1), "entry_text", &font, &font_size));
586
   ck_assert_int_eq(font_size, 50);
587
   ck_assert_str_eq(font, "Sans");
588
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry2), "entry_text", &font, &font_size));
589
   ck_assert_int_eq(font_size, 20);
590
   ck_assert_str_eq(font, "Serif");
591
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry3), "entry_text", &font, &font_size));
592
   ck_assert_int_eq(font_size, 24);
593
   ck_assert_str_eq(font, "Serif:Style=Bold");
594

595
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry1), &w1, &h1);
596
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry2), &w2, &h2);
597
   evas_object_textblock_size_formatted_get(elm_entry_textblock_get(entry3), &w3, &h3);
598

599
   ck_assert_int_ne(w1, w2);
600
   ck_assert_int_ne(h1, h2);
601
   ck_assert_int_ne(w2, w3);
602
   ck_assert_int_ne(h2, h3);
603

604
   entry4 = elm_entry_add(win);
605

606
   elm_object_text_set(entry4, "hello");
607
   ck_assert(edje_object_text_class_get(elm_layout_edje_get(entry4), "entry_text", &font, &font_size));
608
   ck_assert_int_eq(font_size, 24);
609
   ck_assert_str_eq(font, "Serif:Style=Bold");
610
}
611
EFL_END_TEST
612

613
EFL_START_TEST(elm_entry_test_burmese)
614
{
615
   Evas_Object *win, *textblock;
616
   Evas_Textblock_Style *style;
617
   int w;
618

619
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
620
   textblock = evas_object_textblock_add(win);
621

622
   style = evas_textblock_style_new();
623
   evas_textblock_style_set(style, "DEFAULT='font=arial font_size=20 color=red'");
624
   evas_object_textblock_style_set(textblock, style);
625
   evas_textblock_style_free(style);
626
   style = NULL;
627

628
   evas_object_textblock_text_markup_set(textblock, "\u1006\u200C\u1031\u200C\u1031\u200C\u1031");
629
   evas_object_textblock_size_native_get(textblock, &w, NULL);
630
   ck_assert_int_ne(w, 0);
631
}
632
EFL_END_TEST
633

634
EFL_START_TEST(elm_entry_keycode)
635
{
636
   Evas_Object *win, *entry;
637

638
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
639
   entry = elm_entry_add(win);
640
   evas_object_show(entry);
641

642
   elm_entry_entry_set(entry, "Hello World");
643
   Evas *e = evas_object_evas_get(entry);
644
   elm_object_focus_set(entry, EINA_TRUE);
645
   evas_key_modifier_on(e, "Control");
646
   evas_event_feed_key_down_with_keycode(e, "", "a", "", "", time(NULL), NULL, 38);
647
   ecore_main_loop_iterate();
648
   evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);
649
   ck_assert_str_eq(elm_object_text_get(entry), "");
650

651
   evas_object_del(entry);
652
   evas_object_del(win);
653
}
654
EFL_END_TEST
655

656
EFL_START_TEST(elm_entry_textnodes_with_no_format)
657
{
658
   Evas_Object *win, *entry;
659

660
   win = win_add(NULL, "entry", ELM_WIN_BASIC);
661
   entry = elm_entry_add(win);
662
   evas_object_show(entry);
663

664
   elm_entry_entry_set(entry, "<br/><br/>");
665
   Evas_Object *tb = elm_entry_textblock_get(entry);
666
   Evas_Textblock_Cursor *c1 = evas_object_textblock_cursor_new(tb);
667
   Evas_Textblock_Cursor *c2 = evas_object_textblock_cursor_new(tb);
668
   evas_textblock_cursor_char_next(c2);
669
   evas_textblock_cursor_range_delete(c1, c2);
670
   elm_entry_cursor_pos_set(entry, 0);
671
   ck_assert(elm_entry_cursor_down(entry));
672

673
   evas_object_del(entry);
674
   evas_object_del(win);
675
}
676
EFL_END_TEST
677

678
void elm_test_entry(TCase *tc)
679
{
680
   tcase_add_test(tc, elm_entry_legacy_type_check);
681
   tcase_add_test(tc, elm_entry_del);
682
   tcase_add_test(tc, elm_entry_signal_callback);
683
   tcase_add_test(tc, elm_entry_atspi_text_char_get);
684
   tcase_add_test(tc, elm_entry_atspi_text_char_count);
685
   tcase_add_test(tc, elm_entry_atspi_text_string_get_char);
686
   tcase_add_test(tc, elm_entry_atspi_text_string_get_word);
687
   tcase_add_test(tc, elm_entry_atspi_text_string_get_paragraph);
688
   tcase_add_test(tc, elm_entry_atspi_text_string_get_line);
689
   tcase_add_test(tc, elm_entry_atspi_text_text_get);
690
   tcase_add_test(tc, elm_entry_atspi_text_selections);
691
   tcase_add_test(tc, elm_atspi_role_get);
692
   tcase_add_test(tc, elm_entry_text_set);
693
   tcase_add_test(tc, elm_entry_guide_text_set);
694
   tcase_add_test(tc, elm_entry_magnifier);
695
   tcase_add_test(tc, elm_entry_file_get_set);
696
   tcase_add_test(tc, elm_entry_test_text_class);
697
   tcase_add_test(tc, elm_entry_test_burmese);
698
   tcase_add_test(tc, elm_entry_keycode);
699
   tcase_add_test(tc, elm_entry_textnodes_with_no_format);
700
}
701

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.