Changes in uspace/lib/ui/test/control.c [c6f00b40:1eaead4] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/ui/test/control.c
rc6f00b40 r1eaead4 1 1 /* 2 * Copyright (c) 202 0Jiri Svoboda2 * Copyright (c) 2023 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 29 29 #include <errno.h> 30 30 #include <mem.h> 31 #include <io/kbd_event.h> 31 32 #include <io/pos_event.h> 32 33 #include <pcut/pcut.h> 33 34 #include <ui/control.h> 35 #include <ui/testctl.h> 34 36 #include <stdbool.h> 35 37 #include <types/ui/event.h> 38 #include "../private/testctl.h" 36 39 37 40 PCUT_INIT; 38 41 39 42 PCUT_TEST_SUITE(control); 40 41 static void test_ctl_destroy(void *);42 static errno_t test_ctl_paint(void *);43 static ui_evclaim_t test_ctl_pos_event(void *, pos_event_t *);44 45 static ui_control_ops_t test_ctl_ops = {46 .destroy = test_ctl_destroy,47 .paint = test_ctl_paint,48 .pos_event = test_ctl_pos_event49 };50 51 /** Test response */52 typedef struct {53 /** Claim to return */54 ui_evclaim_t claim;55 /** Result code to return */56 errno_t rc;57 58 /** @c true iff destroy was called */59 bool destroy;60 61 /** @c true iff paint was called */62 bool paint;63 64 /** @c true iff pos_event was called */65 bool pos;66 /** Position event that was sent */67 pos_event_t pevent;68 } test_resp_t;69 43 70 44 /** Allocate and deallocate control */ … … 74 48 errno_t rc; 75 49 76 rc = ui_control_new(& test_ctl_ops, NULL, &control);50 rc = ui_control_new(&ui_test_ctl_ops, NULL, &control); 77 51 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 78 52 PCUT_ASSERT_NOT_NULL(control); … … 90 64 PCUT_TEST(destroy) 91 65 { 92 ui_ control_t *control = NULL;93 test_resp_t resp;66 ui_test_ctl_t *testctl = NULL; 67 ui_tc_resp_t resp; 94 68 errno_t rc; 95 69 96 rc = ui_ control_new(&test_ctl_ops, &resp, &control);70 rc = ui_test_ctl_create(&resp, &testctl); 97 71 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 98 PCUT_ASSERT_NOT_NULL( control);72 PCUT_ASSERT_NOT_NULL(testctl); 99 73 100 74 resp.rc = EOK; 101 75 resp.destroy = false; 102 76 103 ui_control_destroy( control);77 ui_control_destroy(ui_test_ctl_ctl(testctl)); 104 78 PCUT_ASSERT_TRUE(resp.destroy); 105 79 } … … 108 82 PCUT_TEST(paint) 109 83 { 110 ui_ control_t *control = NULL;111 test_resp_t resp;84 ui_test_ctl_t *testctl = NULL; 85 ui_tc_resp_t resp; 112 86 errno_t rc; 113 87 114 rc = ui_ control_new(&test_ctl_ops, &resp, &control);88 rc = ui_test_ctl_create(&resp, &testctl); 115 89 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 116 PCUT_ASSERT_NOT_NULL( control);90 PCUT_ASSERT_NOT_NULL(testctl); 117 91 118 92 resp.rc = EOK; 119 93 resp.paint = false; 120 94 121 rc = ui_control_paint( control);95 rc = ui_control_paint(ui_test_ctl_ctl(testctl)); 122 96 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 123 97 PCUT_ASSERT_TRUE(resp.paint); … … 126 100 resp.paint = false; 127 101 128 rc = ui_control_paint( control);102 rc = ui_control_paint(ui_test_ctl_ctl(testctl)); 129 103 PCUT_ASSERT_ERRNO_VAL(resp.rc, rc); 130 104 PCUT_ASSERT_TRUE(resp.paint); 131 105 132 ui_control_delete(control); 106 ui_test_ctl_destroy(testctl); 107 } 108 109 /** Test sending keyboard event to control */ 110 PCUT_TEST(kbd_event) 111 { 112 ui_test_ctl_t *testctl = NULL; 113 ui_tc_resp_t resp; 114 kbd_event_t event; 115 ui_evclaim_t claim; 116 errno_t rc; 117 118 rc = ui_test_ctl_create(&resp, &testctl); 119 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 120 PCUT_ASSERT_NOT_NULL(testctl); 121 122 resp.claim = ui_claimed; 123 resp.kbd = false; 124 event.type = KEY_PRESS; 125 event.key = KC_2; 126 event.mods = KM_LSHIFT; 127 event.c = '@'; 128 129 claim = ui_control_kbd_event(ui_test_ctl_ctl(testctl), &event); 130 PCUT_ASSERT_EQUALS(resp.claim, claim); 131 PCUT_ASSERT_TRUE(resp.kbd); 132 PCUT_ASSERT_EQUALS(resp.kevent.type, event.type); 133 PCUT_ASSERT_INT_EQUALS(resp.kevent.key, event.key); 134 PCUT_ASSERT_INT_EQUALS(resp.kevent.mods, event.mods); 135 PCUT_ASSERT_INT_EQUALS(resp.kevent.c, event.c); 136 137 ui_test_ctl_destroy(testctl); 133 138 } 134 139 … … 136 141 PCUT_TEST(pos_event) 137 142 { 138 ui_ control_t *control = NULL;139 test_resp_t resp;143 ui_test_ctl_t *testctl = NULL; 144 ui_tc_resp_t resp; 140 145 pos_event_t event; 141 146 ui_evclaim_t claim; 142 147 errno_t rc; 143 148 144 rc = ui_ control_new(&test_ctl_ops, &resp, &control);149 rc = ui_test_ctl_create(&resp, &testctl); 145 150 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 146 PCUT_ASSERT_NOT_NULL( control);151 PCUT_ASSERT_NOT_NULL(testctl); 147 152 148 153 resp.claim = ui_claimed; … … 154 159 event.vpos = 4; 155 160 156 claim = ui_control_pos_event( control, &event);161 claim = ui_control_pos_event(ui_test_ctl_ctl(testctl), &event); 157 162 PCUT_ASSERT_EQUALS(resp.claim, claim); 158 163 PCUT_ASSERT_TRUE(resp.pos); … … 163 168 PCUT_ASSERT_INT_EQUALS(resp.pevent.vpos, event.vpos); 164 169 165 ui_ control_delete(control);170 ui_test_ctl_destroy(testctl); 166 171 } 167 172 168 static void test_ctl_destroy(void *arg) 173 /** Test sending unfocus to control */ 174 PCUT_TEST(unfocus) 169 175 { 170 test_resp_t *resp = (test_resp_t *) arg; 176 ui_test_ctl_t *testctl = NULL; 177 ui_tc_resp_t resp; 178 errno_t rc; 171 179 172 resp->destroy = true; 173 } 180 rc = ui_test_ctl_create(&resp, &testctl); 181 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 182 PCUT_ASSERT_NOT_NULL(testctl); 174 183 175 static errno_t test_ctl_paint(void *arg) 176 { 177 test_resp_t *resp = (test_resp_t *) arg; 184 resp.unfocus = false; 178 185 179 resp->paint = true;180 return resp->rc;181 } 186 ui_control_unfocus(ui_test_ctl_ctl(testctl), 42); 187 PCUT_ASSERT_TRUE(resp.unfocus); 188 PCUT_ASSERT_INT_EQUALS(42, resp.unfocus_nfocus); 182 189 183 static ui_evclaim_t test_ctl_pos_event(void *arg, pos_event_t *event) 184 { 185 test_resp_t *resp = (test_resp_t *) arg; 186 187 resp->pos = true; 188 resp->pevent = *event; 189 190 return resp->claim; 190 ui_test_ctl_destroy(testctl); 191 191 } 192 192
Note:
See TracChangeset
for help on using the changeset viewer.