Changeset 59768c7 in mainline for uspace/lib/ui/test
- Timestamp:
- 2022-01-10T19:29:00Z (4 years ago)
- Branches:
- master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 5de852c
- Parents:
- 9754ed2
- git-author:
- Jiri Svoboda <jiri@…> (2022-01-10 19:27:55)
- git-committer:
- Jiri Svoboda <jiri@…> (2022-01-10 19:29:00)
- Location:
- uspace/lib/ui/test
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/test/menu.c
r9754ed2 r59768c7 36 36 #include <ui/menu.h> 37 37 #include <ui/menubar.h> 38 #include <ui/menuentry.h> 38 39 #include <ui/ui.h> 39 40 #include <ui/window.h> … … 122 123 } 123 124 125 /** ui_menu_last() / ui_menu_prev() iterate over menus in reverse */ 126 PCUT_TEST(last_prev) 127 { 128 ui_t *ui = NULL; 129 ui_window_t *window = NULL; 130 ui_wnd_params_t params; 131 ui_menu_bar_t *mbar = NULL; 132 ui_menu_t *menu1 = NULL; 133 ui_menu_t *menu2 = NULL; 134 ui_menu_t *m; 135 errno_t rc; 136 137 rc = ui_create_disp(NULL, &ui); 138 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 139 140 ui_wnd_params_init(¶ms); 141 params.caption = "Hello"; 142 143 rc = ui_window_create(ui, ¶ms, &window); 144 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 145 PCUT_ASSERT_NOT_NULL(window); 146 147 rc = ui_menu_bar_create(ui, window, &mbar); 148 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 149 PCUT_ASSERT_NOT_NULL(mbar); 150 151 rc = ui_menu_create(mbar, "Test 1", &menu1); 152 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 153 PCUT_ASSERT_NOT_NULL(menu1); 154 155 rc = ui_menu_create(mbar, "Test 1", &menu2); 156 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 157 PCUT_ASSERT_NOT_NULL(menu2); 158 159 m = ui_menu_last(mbar); 160 PCUT_ASSERT_EQUALS(menu2, m); 161 162 m = ui_menu_prev(m); 163 PCUT_ASSERT_EQUALS(menu1, m); 164 165 m = ui_menu_prev(m); 166 PCUT_ASSERT_NULL(m); 167 168 ui_menu_bar_destroy(mbar); 169 ui_window_destroy(window); 170 ui_destroy(ui); 171 } 172 124 173 /** ui_menu_caption() returns the menu's caption */ 125 174 PCUT_TEST(caption) … … 209 258 } 210 259 211 /** Paint background in graphics mode*/212 PCUT_TEST( paint_bg_gfx)260 /** Open and close menu with ui_menu_open() / ui_menu_close() */ 261 PCUT_TEST(open_close) 213 262 { 214 263 ui_t *ui = NULL; … … 218 267 ui_menu_t *menu = NULL; 219 268 gfx_rect_t prect; 220 gfx_coord2_t pos;221 269 errno_t rc; 222 270 … … 244 292 prect.p1.y = 0; 245 293 246 /* Menu needs to be open to be able to paint it*/294 /* Open and close */ 247 295 rc = ui_menu_open(menu, &prect); 248 296 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 249 297 250 pos.x = 0; 251 pos.y = 0; 252 rc = ui_menu_paint_bg_gfx(menu, &pos); 253 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 254 255 ui_menu_bar_destroy(mbar); 256 ui_window_destroy(window); 257 ui_destroy(ui); 258 } 259 260 /** Paint background in text mode */ 261 PCUT_TEST(paint_bg_text) 298 ui_menu_close(menu); 299 300 ui_menu_bar_destroy(mbar); 301 ui_window_destroy(window); 302 ui_destroy(ui); 303 } 304 305 /** ui_menu_is_open() correctly returns menu state */ 306 PCUT_TEST(is_open) 262 307 { 263 308 ui_t *ui = NULL; … … 267 312 ui_menu_t *menu = NULL; 268 313 gfx_rect_t prect; 269 gfx_coord2_t pos;314 bool open; 270 315 errno_t rc; 271 316 … … 293 338 prect.p1.y = 0; 294 339 295 /* Menu needs to be open to be able to paint it */ 340 open = ui_menu_is_open(menu); 341 PCUT_ASSERT_FALSE(open); 342 296 343 rc = ui_menu_open(menu, &prect); 297 344 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 298 345 299 pos.x = 0; 300 pos.y = 0; 301 rc = ui_menu_paint_bg_text(menu, &pos); 302 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 303 304 ui_menu_bar_destroy(mbar); 305 ui_window_destroy(window); 306 ui_destroy(ui); 307 } 308 309 /** Paint menu */ 310 PCUT_TEST(paint) 346 open = ui_menu_is_open(menu); 347 PCUT_ASSERT_TRUE(open); 348 349 ui_menu_close(menu); 350 351 open = ui_menu_is_open(menu); 352 PCUT_ASSERT_FALSE(open); 353 354 ui_menu_bar_destroy(mbar); 355 ui_window_destroy(window); 356 ui_destroy(ui); 357 } 358 359 /** Paint background in graphics mode */ 360 PCUT_TEST(paint_bg_gfx) 311 361 { 312 362 ui_t *ui = NULL; … … 348 398 pos.x = 0; 349 399 pos.y = 0; 400 rc = ui_menu_paint_bg_gfx(menu, &pos); 401 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 402 403 ui_menu_bar_destroy(mbar); 404 ui_window_destroy(window); 405 ui_destroy(ui); 406 } 407 408 /** Paint background in text mode */ 409 PCUT_TEST(paint_bg_text) 410 { 411 ui_t *ui = NULL; 412 ui_window_t *window = NULL; 413 ui_wnd_params_t params; 414 ui_menu_bar_t *mbar = NULL; 415 ui_menu_t *menu = NULL; 416 gfx_rect_t prect; 417 gfx_coord2_t pos; 418 errno_t rc; 419 420 rc = ui_create_disp(NULL, &ui); 421 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 422 423 ui_wnd_params_init(¶ms); 424 params.caption = "Hello"; 425 426 rc = ui_window_create(ui, ¶ms, &window); 427 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 428 PCUT_ASSERT_NOT_NULL(window); 429 430 rc = ui_menu_bar_create(ui, window, &mbar); 431 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 432 PCUT_ASSERT_NOT_NULL(mbar); 433 434 rc = ui_menu_create(mbar, "Test", &menu); 435 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 436 PCUT_ASSERT_NOT_NULL(menu); 437 438 prect.p0.x = 0; 439 prect.p0.y = 0; 440 prect.p1.x = 0; 441 prect.p1.y = 0; 442 443 /* Menu needs to be open to be able to paint it */ 444 rc = ui_menu_open(menu, &prect); 445 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 446 447 pos.x = 0; 448 pos.y = 0; 449 rc = ui_menu_paint_bg_text(menu, &pos); 450 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 451 452 ui_menu_bar_destroy(mbar); 453 ui_window_destroy(window); 454 ui_destroy(ui); 455 } 456 457 /** Paint menu */ 458 PCUT_TEST(paint) 459 { 460 ui_t *ui = NULL; 461 ui_window_t *window = NULL; 462 ui_wnd_params_t params; 463 ui_menu_bar_t *mbar = NULL; 464 ui_menu_t *menu = NULL; 465 gfx_rect_t prect; 466 gfx_coord2_t pos; 467 errno_t rc; 468 469 rc = ui_create_disp(NULL, &ui); 470 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 471 472 ui_wnd_params_init(¶ms); 473 params.caption = "Hello"; 474 475 rc = ui_window_create(ui, ¶ms, &window); 476 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 477 PCUT_ASSERT_NOT_NULL(window); 478 479 rc = ui_menu_bar_create(ui, window, &mbar); 480 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 481 PCUT_ASSERT_NOT_NULL(mbar); 482 483 rc = ui_menu_create(mbar, "Test", &menu); 484 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 485 PCUT_ASSERT_NOT_NULL(menu); 486 487 prect.p0.x = 0; 488 prect.p0.y = 0; 489 prect.p1.x = 0; 490 prect.p1.y = 0; 491 492 /* Menu needs to be open to be able to paint it */ 493 rc = ui_menu_open(menu, &prect); 494 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 495 496 pos.x = 0; 497 pos.y = 0; 350 498 rc = ui_menu_paint(menu, &pos); 351 499 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 500 501 ui_menu_bar_destroy(mbar); 502 ui_window_destroy(window); 503 ui_destroy(ui); 504 } 505 506 /** ui_menu_up() with empty menu does nothing */ 507 PCUT_TEST(up_empty) 508 { 509 ui_t *ui = NULL; 510 ui_window_t *window = NULL; 511 ui_wnd_params_t params; 512 ui_menu_bar_t *mbar = NULL; 513 ui_menu_t *menu = NULL; 514 gfx_rect_t prect; 515 errno_t rc; 516 517 rc = ui_create_disp(NULL, &ui); 518 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 519 520 ui_wnd_params_init(¶ms); 521 params.caption = "Hello"; 522 523 rc = ui_window_create(ui, ¶ms, &window); 524 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 525 PCUT_ASSERT_NOT_NULL(window); 526 527 rc = ui_menu_bar_create(ui, window, &mbar); 528 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 529 PCUT_ASSERT_NOT_NULL(mbar); 530 531 rc = ui_menu_create(mbar, "Test", &menu); 532 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 533 PCUT_ASSERT_NOT_NULL(menu); 534 535 prect.p0.x = 0; 536 prect.p0.y = 0; 537 prect.p1.x = 0; 538 prect.p1.y = 0; 539 540 /* Menu needs to be open to be able to move around it */ 541 rc = ui_menu_open(menu, &prect); 542 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 543 544 ui_menu_up(menu); 545 546 ui_menu_bar_destroy(mbar); 547 ui_window_destroy(window); 548 ui_destroy(ui); 549 } 550 551 /** ui_menu_up() moves one entry up, skips separators, wraps around */ 552 PCUT_TEST(up) 553 { 554 ui_t *ui = NULL; 555 ui_window_t *window = NULL; 556 ui_wnd_params_t params; 557 ui_menu_bar_t *mbar = NULL; 558 ui_menu_t *menu = NULL; 559 ui_menu_entry_t *mentry1 = NULL; 560 ui_menu_entry_t *mentry2 = NULL; 561 ui_menu_entry_t *mentry3 = NULL; 562 gfx_rect_t prect; 563 errno_t rc; 564 565 rc = ui_create_disp(NULL, &ui); 566 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 567 568 ui_wnd_params_init(¶ms); 569 params.caption = "Hello"; 570 571 rc = ui_window_create(ui, ¶ms, &window); 572 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 573 PCUT_ASSERT_NOT_NULL(window); 574 575 rc = ui_menu_bar_create(ui, window, &mbar); 576 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 577 PCUT_ASSERT_NOT_NULL(mbar); 578 579 rc = ui_menu_create(mbar, "Test", &menu); 580 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 581 PCUT_ASSERT_NOT_NULL(menu); 582 583 rc = ui_menu_entry_create(menu, "Foo", "F1", &mentry1); 584 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 585 PCUT_ASSERT_NOT_NULL(mentry1); 586 587 rc = ui_menu_entry_sep_create(menu, &mentry2); 588 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 589 PCUT_ASSERT_NOT_NULL(mentry2); 590 591 rc = ui_menu_entry_create(menu, "Bar", "F2", &mentry3); 592 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 593 PCUT_ASSERT_NOT_NULL(mentry3); 594 595 prect.p0.x = 0; 596 prect.p0.y = 0; 597 prect.p1.x = 0; 598 prect.p1.y = 0; 599 600 /* Menu needs to be open to be able to move around it */ 601 rc = ui_menu_open(menu, &prect); 602 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 603 604 /* When menu is open, the first entry is selected */ 605 PCUT_ASSERT_EQUALS(mentry1, menu->selected); 606 607 ui_menu_up(menu); 608 609 /* Now we've wrapped around to the last entry */ 610 PCUT_ASSERT_EQUALS(mentry3, menu->selected); 611 612 ui_menu_up(menu); 613 614 /* mentry2 is a separator and was skipped */ 615 PCUT_ASSERT_EQUALS(mentry1, menu->selected); 616 617 ui_menu_bar_destroy(mbar); 618 ui_window_destroy(window); 619 ui_destroy(ui); 620 } 621 622 /** ui_menu_down() with empty menu does nothing */ 623 PCUT_TEST(down_empty) 624 { 625 ui_t *ui = NULL; 626 ui_window_t *window = NULL; 627 ui_wnd_params_t params; 628 ui_menu_bar_t *mbar = NULL; 629 ui_menu_t *menu = NULL; 630 gfx_rect_t prect; 631 errno_t rc; 632 633 rc = ui_create_disp(NULL, &ui); 634 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 635 636 ui_wnd_params_init(¶ms); 637 params.caption = "Hello"; 638 639 rc = ui_window_create(ui, ¶ms, &window); 640 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 641 PCUT_ASSERT_NOT_NULL(window); 642 643 rc = ui_menu_bar_create(ui, window, &mbar); 644 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 645 PCUT_ASSERT_NOT_NULL(mbar); 646 647 rc = ui_menu_create(mbar, "Test", &menu); 648 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 649 PCUT_ASSERT_NOT_NULL(menu); 650 651 prect.p0.x = 0; 652 prect.p0.y = 0; 653 prect.p1.x = 0; 654 prect.p1.y = 0; 655 656 /* Menu needs to be open to be able to move around it */ 657 rc = ui_menu_open(menu, &prect); 658 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 659 660 ui_menu_down(menu); 661 662 ui_menu_bar_destroy(mbar); 663 ui_window_destroy(window); 664 ui_destroy(ui); 665 } 666 667 /** ui_menu_down() moves one entry down, skips separators, wraps around */ 668 PCUT_TEST(down) 669 { 670 ui_t *ui = NULL; 671 ui_window_t *window = NULL; 672 ui_wnd_params_t params; 673 ui_menu_bar_t *mbar = NULL; 674 ui_menu_t *menu = NULL; 675 ui_menu_entry_t *mentry1 = NULL; 676 ui_menu_entry_t *mentry2 = NULL; 677 ui_menu_entry_t *mentry3 = NULL; 678 gfx_rect_t prect; 679 errno_t rc; 680 681 rc = ui_create_disp(NULL, &ui); 682 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 683 684 ui_wnd_params_init(¶ms); 685 params.caption = "Hello"; 686 687 rc = ui_window_create(ui, ¶ms, &window); 688 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 689 PCUT_ASSERT_NOT_NULL(window); 690 691 rc = ui_menu_bar_create(ui, window, &mbar); 692 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 693 PCUT_ASSERT_NOT_NULL(mbar); 694 695 rc = ui_menu_create(mbar, "Test", &menu); 696 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 697 PCUT_ASSERT_NOT_NULL(menu); 698 699 rc = ui_menu_entry_create(menu, "Foo", "F1", &mentry1); 700 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 701 PCUT_ASSERT_NOT_NULL(mentry1); 702 703 rc = ui_menu_entry_sep_create(menu, &mentry2); 704 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 705 PCUT_ASSERT_NOT_NULL(mentry2); 706 707 rc = ui_menu_entry_create(menu, "Bar", "F2", &mentry3); 708 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 709 PCUT_ASSERT_NOT_NULL(mentry3); 710 711 prect.p0.x = 0; 712 prect.p0.y = 0; 713 prect.p1.x = 0; 714 prect.p1.y = 0; 715 716 /* Menu needs to be open to be able to move around it */ 717 rc = ui_menu_open(menu, &prect); 718 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 719 720 /* When menu is open, the first entry is selected */ 721 PCUT_ASSERT_EQUALS(mentry1, menu->selected); 722 723 ui_menu_down(menu); 724 725 /* mentry2 is a separator and was skipped */ 726 PCUT_ASSERT_EQUALS(mentry3, menu->selected); 727 728 ui_menu_up(menu); 729 730 /* Now we've wrapped around to the first entry */ 731 PCUT_ASSERT_EQUALS(mentry1, menu->selected); 352 732 353 733 ui_menu_bar_destroy(mbar); -
uspace/lib/ui/test/menubar.c
r9754ed2 r59768c7 1 1 /* 2 * Copyright (c) 202 1Jiri Svoboda2 * Copyright (c) 2022 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 149 149 } 150 150 151 /** Press event on menu bar entry selects menu*/152 PCUT_TEST( pos_event_select)151 /** Deliver menu bar keyboard event */ 152 PCUT_TEST(kbd_event) 153 153 { 154 154 ui_t *ui = NULL; … … 158 158 ui_menu_t *menu = NULL; 159 159 ui_evclaim_t claimed; 160 pos_event_t event;160 kbd_event_t event; 161 161 gfx_rect_t rect; 162 162 errno_t rc; … … 186 186 PCUT_ASSERT_NOT_NULL(menu); 187 187 188 event.type = KEY_PRESS; 189 event.key = KC_ESCAPE; 190 claimed = ui_menu_kbd_pos_event(mbar, &event); 191 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 192 PCUT_ASSERT_EQUALS(ui_claimed, claimed); 193 194 ui_menu_bar_destroy(mbar); 195 ui_window_destroy(window); 196 ui_destroy(ui); 197 } 198 199 /** Press event on menu bar entry selects menu */ 200 PCUT_TEST(pos_event_select) 201 { 202 ui_t *ui = NULL; 203 ui_window_t *window = NULL; 204 ui_wnd_params_t params; 205 ui_menu_bar_t *mbar = NULL; 206 ui_menu_t *menu = NULL; 207 ui_evclaim_t claimed; 208 pos_event_t event; 209 gfx_rect_t rect; 210 errno_t rc; 211 212 rc = ui_create_disp(NULL, &ui); 213 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 214 215 ui_wnd_params_init(¶ms); 216 params.caption = "Hello"; 217 218 rc = ui_window_create(ui, ¶ms, &window); 219 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 220 PCUT_ASSERT_NOT_NULL(window); 221 222 rc = ui_menu_bar_create(ui, window, &mbar); 223 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 224 PCUT_ASSERT_NOT_NULL(mbar); 225 226 rect.p0.x = 0; 227 rect.p0.y = 0; 228 rect.p1.x = 50; 229 rect.p1.y = 25; 230 ui_menu_bar_set_rect(mbar, &rect); 231 232 rc = ui_menu_create(mbar, "Test", &menu); 233 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 234 PCUT_ASSERT_NOT_NULL(menu); 235 188 236 event.type = POS_PRESS; 189 237 event.hpos = 4; … … 209 257 ui_menu_bar_t *mbar = NULL; 210 258 ui_menu_t *menu = NULL; 211 gfx_rect_t rect;212 259 errno_t rc; 213 260 … … 230 277 PCUT_ASSERT_NOT_NULL(menu); 231 278 232 rect.p0.x = 0; 233 rect.p0.y = 0; 234 rect.p1.x = 0; 235 rect.p1.y = 0; 236 ui_menu_bar_select(mbar, &rect, menu); 279 ui_menu_bar_select(mbar, menu, true); 237 280 PCUT_ASSERT_EQUALS(menu, mbar->selected); 238 281 239 282 /* Selecting again should unselect the menu */ 240 ui_menu_bar_select(mbar, &rect, menu);283 ui_menu_bar_select(mbar, menu, true); 241 284 PCUT_ASSERT_NULL(mbar->selected); 242 285 … … 255 298 ui_menu_t *menu1 = NULL; 256 299 ui_menu_t *menu2 = NULL; 257 gfx_rect_t rect;258 300 errno_t rc; 259 301 … … 280 322 PCUT_ASSERT_NOT_NULL(menu2); 281 323 282 rect.p0.x = 0; 283 rect.p0.y = 0; 284 rect.p1.x = 0; 285 rect.p1.y = 0; 286 ui_menu_bar_select(mbar, &rect, menu1); 324 ui_menu_bar_select(mbar, menu1, true); 287 325 PCUT_ASSERT_EQUALS(menu1, mbar->selected); 288 326 289 327 /* Selecting different menu should select it */ 290 ui_menu_bar_select(mbar, &rect, menu2);328 ui_menu_bar_select(mbar, menu2, true); 291 329 PCUT_ASSERT_EQUALS(menu2, mbar->selected); 292 330 … … 296 334 } 297 335 336 /** ui_menu_bar_activate() activates/deactivates menu bar */ 337 PCUT_TEST(activate_deactivate) 338 { 339 ui_t *ui = NULL; 340 ui_window_t *window = NULL; 341 ui_wnd_params_t params; 342 ui_menu_bar_t *mbar = NULL; 343 ui_menu_t *menu = NULL; 344 errno_t rc; 345 346 rc = ui_create_disp(NULL, &ui); 347 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 348 349 ui_wnd_params_init(¶ms); 350 params.caption = "Hello"; 351 352 rc = ui_window_create(ui, ¶ms, &window); 353 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 354 PCUT_ASSERT_NOT_NULL(window); 355 356 rc = ui_menu_bar_create(ui, window, &mbar); 357 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 358 PCUT_ASSERT_NOT_NULL(mbar); 359 360 rc = ui_menu_create(mbar, "Test", &menu); 361 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 362 PCUT_ASSERT_NOT_NULL(menu); 363 364 ui_menu_bar_activate(mbar); 365 PCUT_ASSERT_EQUALS(menu, mbar->selected); 366 367 ui_menu_bar_deactivate(mbar); 368 PCUT_ASSERT_NULL(mbar->selected); 369 370 ui_menu_bar_destroy(mbar); 371 ui_window_destroy(window); 372 ui_destroy(ui); 373 } 374 298 375 PCUT_EXPORT(menubar); -
uspace/lib/ui/test/menuentry.c
r9754ed2 r59768c7 236 236 } 237 237 238 /** ui_menu_entry_last() / ui_menu_entry_prev() iterate over entries in reverse */ 239 PCUT_TEST(last_prev) 240 { 241 ui_t *ui = NULL; 242 ui_window_t *window = NULL; 243 ui_wnd_params_t params; 244 ui_menu_bar_t *mbar = NULL; 245 ui_menu_t *menu = NULL; 246 ui_menu_entry_t *entry1 = NULL; 247 ui_menu_entry_t *entry2 = NULL; 248 ui_menu_entry_t *e; 249 errno_t rc; 250 251 rc = ui_create_disp(NULL, &ui); 252 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 253 254 ui_wnd_params_init(¶ms); 255 params.caption = "Hello"; 256 257 rc = ui_window_create(ui, ¶ms, &window); 258 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 259 PCUT_ASSERT_NOT_NULL(window); 260 261 rc = ui_menu_bar_create(ui, window, &mbar); 262 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 263 PCUT_ASSERT_NOT_NULL(mbar); 264 265 rc = ui_menu_create(mbar, "Test", &menu); 266 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 267 PCUT_ASSERT_NOT_NULL(menu); 268 269 rc = ui_menu_entry_create(menu, "Foo", "F1", &entry1); 270 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 271 PCUT_ASSERT_NOT_NULL(entry1); 272 273 rc = ui_menu_entry_create(menu, "Bar", "F2", &entry2); 274 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 275 PCUT_ASSERT_NOT_NULL(entry2); 276 277 e = ui_menu_entry_last(menu); 278 PCUT_ASSERT_EQUALS(entry2, e); 279 280 e = ui_menu_entry_prev(e); 281 PCUT_ASSERT_EQUALS(entry1, e); 282 283 e = ui_menu_entry_prev(e); 284 PCUT_ASSERT_NULL(e); 285 286 ui_menu_bar_destroy(mbar); 287 ui_window_destroy(window); 288 ui_destroy(ui); 289 } 290 238 291 /** ui_menu_entry_column_widths() / ui_menu_entry_height() */ 239 292 PCUT_TEST(widths_height) … … 335 388 rc = ui_menu_entry_paint(mentry, &pos); 336 389 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 390 391 ui_menu_bar_destroy(mbar); 392 ui_window_destroy(window); 393 ui_destroy(ui); 394 } 395 396 /** ui_menu_entry_selectable() returns correct value based on entry type */ 397 PCUT_TEST(selectable) 398 { 399 ui_t *ui = NULL; 400 ui_window_t *window = NULL; 401 ui_wnd_params_t params; 402 ui_menu_bar_t *mbar = NULL; 403 ui_menu_t *menu = NULL; 404 ui_menu_entry_t *mentry = NULL; 405 errno_t rc; 406 407 rc = ui_create_disp(NULL, &ui); 408 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 409 410 ui_wnd_params_init(¶ms); 411 params.caption = "Hello"; 412 413 rc = ui_window_create(ui, ¶ms, &window); 414 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 415 PCUT_ASSERT_NOT_NULL(window); 416 417 rc = ui_menu_bar_create(ui, window, &mbar); 418 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 419 PCUT_ASSERT_NOT_NULL(mbar); 420 421 rc = ui_menu_create(mbar, "Test", &menu); 422 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 423 PCUT_ASSERT_NOT_NULL(menu); 424 425 /* Selectable entry */ 426 427 rc = ui_menu_entry_create(menu, "Foo", "F1", &mentry); 428 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 429 PCUT_ASSERT_NOT_NULL(mentry); 430 431 PCUT_ASSERT_TRUE(ui_menu_entry_selectable(mentry)); 432 433 ui_menu_entry_destroy(mentry); 434 435 /* Non-selectable separator entry */ 436 437 rc = ui_menu_entry_sep_create(menu, &mentry); 438 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 439 PCUT_ASSERT_NOT_NULL(mentry); 440 441 PCUT_ASSERT_FALSE(ui_menu_entry_selectable(mentry)); 442 443 ui_menu_entry_destroy(mentry); 337 444 338 445 ui_menu_bar_destroy(mbar); … … 545 652 } 546 653 654 /** ui_menu_entry_activate() activates menu entry */ 655 PCUT_TEST(activate) 656 { 657 ui_t *ui = NULL; 658 ui_window_t *window = NULL; 659 ui_wnd_params_t params; 660 ui_menu_bar_t *mbar = NULL; 661 ui_menu_t *menu = NULL; 662 ui_menu_entry_t *mentry = NULL; 663 gfx_rect_t prect; 664 test_resp_t resp; 665 errno_t rc; 666 667 rc = ui_create_disp(NULL, &ui); 668 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 669 670 ui_wnd_params_init(¶ms); 671 params.caption = "Hello"; 672 673 rc = ui_window_create(ui, ¶ms, &window); 674 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 675 PCUT_ASSERT_NOT_NULL(window); 676 677 rc = ui_menu_bar_create(ui, window, &mbar); 678 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 679 PCUT_ASSERT_NOT_NULL(mbar); 680 681 rc = ui_menu_create(mbar, "Test", &menu); 682 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 683 PCUT_ASSERT_NOT_NULL(menu); 684 685 rc = ui_menu_entry_create(menu, "X", "Y", &mentry); 686 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 687 PCUT_ASSERT_NOT_NULL(mentry); 688 689 ui_menu_entry_set_cb(mentry, test_entry_cb, &resp); 690 resp.activated = false; 691 692 prect.p0.x = 0; 693 prect.p0.y = 0; 694 prect.p1.x = 0; 695 prect.p1.y = 0; 696 697 rc = ui_menu_open(menu, &prect); 698 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 699 700 PCUT_ASSERT_FALSE(resp.activated); 701 ui_menu_entry_activate(mentry); 702 703 ui_menu_entry_release(mentry); 704 PCUT_ASSERT_TRUE(resp.activated); 705 706 ui_menu_bar_destroy(mbar); 707 ui_window_destroy(window); 708 ui_destroy(ui); 709 } 710 547 711 /** Press event inside menu entry */ 548 712 PCUT_TEST(pos_press_inside)
Note:
See TracChangeset
for help on using the changeset viewer.