diff --git a/docs/changes.md b/docs/changes.md index d96412250..d1efc4204 100644 --- a/docs/changes.md +++ b/docs/changes.md @@ -1,6 +1,7 @@ # 最新动态 2024/08/11 * 增加函数 tk_mergesort + * 完善 UI Test 2024/08/9 * 增加 goto_error_if_fail_ex(感谢兆坤提供补丁) diff --git a/run_ui_test.sh b/run_ui_test.sh index afcee31f5..4584d8d76 100755 --- a/run_ui_test.sh +++ b/run_ui_test.sh @@ -1,27 +1,44 @@ +#!/bin/bash -for f in \ -screen_saver.ini \ -fps.ini \ -main_snapshot.ini \ -main_source.ini \ -max_fps.ini \ -overlay.ini \ -exec_fscript.ini \ -create_widget.ini \ -create_window.ini \ -send_key_events.ini \ -send_pointer_events.ini \ -get_loaded_assets_info.ini \ -get_loaded_image_info.ini \ -language.ini \ -theme.ini \ -basic.ini \ -button.ini \ -edit.ini \ -keyboard.ini \ -toast.ini -do - echo "==============tests/ui_test_data/demouiold/$f==================" - ./bin/ui_test tests/ui_test_data/demouiold/$f +function runTest() { + for f in \ + screen_saver.ini \ + fps.ini \ + main_snapshot.ini \ + main_source.ini \ + max_fps.ini \ + overlay.ini \ + exec_fscript.ini \ + create_widget.ini \ + create_window.ini \ + send_key_events.ini \ + send_pointer_events.ini \ + get_loaded_assets_info.ini \ + get_loaded_image_info.ini \ + language.ini \ + theme.ini \ + basic.ini \ + button.ini \ + edit.ini \ + keyboard.ini \ + toast.ini + do + echo "==============tests/ui_test_data/demouiold/$f==================" + ./bin/ui_test tests/ui_test_data/demouiold/$f + done +} + + +# 检查传入参数的数量 +if [ $# -lt 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +n=$1 + +for ((i = 0; i < n; i++)); do + echo "### Execution $((i + 1))/$n ..." + runTest done diff --git a/src/remote_ui/service/remote_ui_service.c b/src/remote_ui/service/remote_ui_service.c index f29ea4030..6b3309e71 100644 --- a/src/remote_ui/service/remote_ui_service.c +++ b/src/remote_ui/service/remote_ui_service.c @@ -386,34 +386,43 @@ static ret_t remote_ui_service_send_event(remote_ui_service_t* ui, const char* t event->target = widget; if (!widget_is_window_manager(widget) && !widget_is_window(widget)) { - return widget_dispatch_async(widget, event); + widget_dispatch_async(widget, event); + + return RET_OK; } switch (event->type) { case EVT_CLICK: { - return widget_dispatch_async(widget, event); + widget_dispatch_async(widget, event); + break; } case EVT_POINTER_DOWN: { - return widget_on_pointer_down(widget, pointer_event_cast(event)); + widget_on_pointer_down(widget, pointer_event_cast(event)); + break; } case EVT_POINTER_MOVE: { - return widget_on_pointer_move(widget, pointer_event_cast(event)); + widget_on_pointer_move(widget, pointer_event_cast(event)); + break; } case EVT_POINTER_UP: { - return widget_on_pointer_up(widget, pointer_event_cast(event)); + widget_on_pointer_up(widget, pointer_event_cast(event)); + break; } case EVT_KEY_DOWN: { - return widget_on_keydown(widget, key_event_cast(event)); + widget_on_keydown(widget, key_event_cast(event)); + break; } case EVT_KEY_UP: { - return widget_on_keyup(widget, key_event_cast(event)); + widget_on_keyup(widget, key_event_cast(event)); + break; } default: { + return RET_FAIL; break; } } - return RET_FAIL; + return RET_OK; } static ret_t remote_ui_service_open_dialog(remote_ui_service_t* ui, const char* type, diff --git a/tests/ui_test_data/demouiold/create_window.ini b/tests/ui_test_data/demouiold/create_window.ini index 48711c46b..91613123d 100644 --- a/tests/ui_test_data/demouiold/create_window.ini +++ b/tests/ui_test_data/demouiold/create_window.ini @@ -23,6 +23,6 @@ target=r2 name=value value=0 - + ret = RET_FAIL [back] diff --git a/tests/ui_test_data/demouiold/data/loaded_assets_info.txt b/tests/ui_test_data/demouiold/data/loaded_assets_info.txt index 94de0f2b2..4e372f411 100644 --- a/tests/ui_test_data/demouiold/data/loaded_assets_info.txt +++ b/tests/ui_test_data/demouiold/data/loaded_assets_info.txt @@ -1,4 +1,9 @@ en_US: type=strings size=9138 -default: type=style size=61468 -default_full: type=font size=1732392 system_bar: type=style size=884 +default: type=style size=62184 +default_full: type=font size=1732392 +button: type=style size=7368 +edit: type=style size=2504 +trado: type=font size=281560 +keyboard: type=style size=4563 +dialog_toast: type=style size=292 diff --git a/tests/ui_test_data/demouiold/data/loaded_image_info.txt b/tests/ui_test_data/demouiold/data/loaded_image_info.txt index 32321eacc..fa354398d 100644 --- a/tests/ui_test_data/demouiold/data/loaded_image_info.txt +++ b/tests/ui_test_data/demouiold/data/loaded_image_info.txt @@ -1,18 +1,28 @@ -cursor: w=32 h=32 format=1 -earth: w=48 h=48 format=1 -logo: w=300 h=77 format=1 -dialog_title: w=60 h=30 format=1 -rgb: w=30 h=30 format=1 -rgba: w=30 h=30 format=1 close_d: w=48 h=48 format=1 -ani1: w=140 h=140 format=1 -anic: w=140 h=140 format=1 +logo: w=300 h=77 format=1 +unchecked: w=48 h=48 format=1 +indeterminate: w=48 h=48 format=1 checked: w=48 h=48 format=1 radio_unchecked: w=48 h=48 format=1 +radio_checked: w=48 h=48 format=1 left_off: w=48 h=48 format=1 middle_off: w=48 h=48 format=1 right_off: w=48 h=48 format=1 unmuted: w=48 h=48 format=1 +earth: w=48 h=48 format=1 +rgba: w=30 h=30 format=1 +rgb: w=30 h=30 format=1 message: w=64 h=64 format=1 red_btn_n: w=30 h=30 format=1 close_n: w=48 h=48 format=1 +play_n: w=48 h=48 format=1 +info: w=48 h=48 format=1 +arrow_down_n: w=48 h=48 format=1 +arrow_up_n: w=48 h=48 format=1 +arrow_left_n: w=48 h=48 format=1 +arrow_right_n: w=48 h=48 format=1 +invisible: w=32 h=32 format=1 +find: w=48 h=48 format=1 +backspace: w=32 h=32 format=1 +ani1: w=140 h=140 format=1 +anic: w=140 h=140 format=1 diff --git a/tools/ui_test/ui_test.c b/tools/ui_test/ui_test.c index 4ec41deaa..3e46c3d25 100644 --- a/tools/ui_test/ui_test.c +++ b/tools/ui_test/ui_test.c @@ -128,7 +128,7 @@ static void run_script(conf_doc_t* doc, uint32_t times) { while (iter != NULL) { const char* name = conf_node_get_name(iter); - if (tk_str_start_with(name, "create")) { + if (tk_str_start_with(name, "create") && !tk_str_start_with(name, "create_widget")) { const char* url = conf_node_get_child_value_str(iter, "url", "tcp://localhost:2233"); tk_iostream_t* io = tk_stream_factory_create_iostream(url);