From: jinbong.lee Date: Wed, 25 Sep 2024 09:19:08 +0000 (+0900) Subject: Add testcase of e_view_layout X-Git-Tag: accepted/tizen/unified/20241114.153903~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=6ba44f8be41b77462e78d9ef8598b32055ecefb0;p=platform%2Fupstream%2Fenlightenment.git Add testcase of e_view_layout Change-Id: I9e0499e5a4c59d17e78bfa18b1ced3438a272f38 --- diff --git a/src/include/e_view_layout.h b/src/include/e_view_layout.h index c29ab76261..e2330649db 100644 --- a/src/include/e_view_layout.h +++ b/src/include/e_view_layout.h @@ -27,4 +27,4 @@ E_API void e_view_layout_child_raise (E_View *child); } #endif -#endif \ No newline at end of file +#endif diff --git a/tests/Makefile.am b/tests/Makefile.am index 461bd23bf1..ad54e1c07e 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -7,7 +7,9 @@ enlightenment_source = \ $(top_builddir)/src/bin/core/e_view_image.c \ $(top_builddir)/src/bin/core/e_canvas.c \ $(top_builddir)/src/bin/utils/e_map.c \ - $(top_builddir)/src/bin/core/e_view_event.c + $(top_builddir)/src/bin/core/e_view_event.c \ + $(top_builddir)/src/bin/windowmgr/e_layout.c \ + $(top_builddir)/src/bin/core/e_view_layout.c enlightenment_tests_SOURCES = \ ${enlightenment_source} \ @@ -17,7 +19,8 @@ enlightenment_tests_SOURCES = \ tc-e_canvas.cpp \ tc-e_view_rect.cpp \ tc-e_view_image.cpp \ - tc-e_view_event.cpp + tc-e_view_event.cpp \ + tc-e_view_layout.cpp enlightenment_tests_CFLAGS = \ @E_CFLAGS@ \ @@ -32,6 +35,7 @@ enlightenment_tests_CFLAGS = \ -I$(top_builddir)/src/bin/core \ -I$(top_builddir)/src/bin/utils \ -I$(top_builddir)/src/bin/log \ + -I$(top_builddir)/src/bin/windowmgr \ -I$(top_builddir)/src/bin/debug enlightenment_tests_CXXFLAGS = \ diff --git a/tests/evas_wrapper.cpp b/tests/evas_wrapper.cpp index 6c65ce9391..f17f12448e 100644 --- a/tests/evas_wrapper.cpp +++ b/tests/evas_wrapper.cpp @@ -523,4 +523,4 @@ void evas_object_smart_member_add(Evas_Object *obj, Evas_Object *smart_obj) void evas_object_smart_member_del(Evas_Object *obj) { evasMock->evas_object_smart_member_del(obj); -} \ No newline at end of file +} diff --git a/tests/tc-e_view_layout.cpp b/tests/tc-e_view_layout.cpp new file mode 100644 index 0000000000..2ee125d19f --- /dev/null +++ b/tests/tc-e_view_layout.cpp @@ -0,0 +1,313 @@ +#include "tc-main.h" +#include "evas_wrapper.h" + +#include "src/bin/core/e_view_intern.h" +#include "e_view_layout.h" +#include "e_view_rect.h" +#include "e_canvas.h" + +using ::testing::Return; +using ::testing::_; +using ::testing::SetArgPointee; +using ::testing::DoAll; +using ::testing::AnyNumber; + + +class EViewLayoutTest : public ::testing::Test +{ +public: + Evas *evas; + E_Canvas *canvas; + E_View_Tree *tree; + + void SetUp(void) override { + evasMock = new EvasMock(); + this->evas = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + this->canvas = e_canvas_create(this->evas); + this->tree = e_canvas_layer_view_tree_get(this->canvas, E_CANVAS_LAYER_BOTTOM); + } + + void TearDown(void) override { + e_canvas_destroy(this->canvas); + free(this->evas); + delete evasMock; + } +}; + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Create) +{ + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + EXPECT_NE(layout, nullptr); + E_View *view = e_view_layout_view_get(layout); + EXPECT_NE(view, nullptr); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); +} + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Pack_UnPack) +{ + const int color[4] = {0, 0, 0, 0}; + + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + E_View *view = e_view_layout_view_get(layout); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_stack_above(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _)); + EXPECT_CALL(*evasMock, evas_object_resize(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_rectangle_add(_)) + .Times(1) + .WillOnce(Return(obj2)); + E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color); + E_View *childView = e_view_rect_view_get(view_rect); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_visible_get(_)) + .Times(AnyNumber()); + e_view_layout_pack(layout, childView); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_layout_unpack(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + e_view_destroy(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); + free(obj2); +} + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Virtual_Size_Set) +{ + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + E_View *view = e_view_layout_view_get(layout); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + e_view_layout_virtual_size_set(layout, 100, 200); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); +} + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Move) +{ + const int color[4] = {0, 0, 0, 0}; + + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + E_View *view = e_view_layout_view_get(layout); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_stack_above(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _)); + EXPECT_CALL(*evasMock, evas_object_resize(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_rectangle_add(_)) + .Times(1) + .WillOnce(Return(obj2)); + E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color); + E_View *childView = e_view_rect_view_get(view_rect); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_visible_get(_)) + .Times(AnyNumber()); + e_view_layout_pack(layout, childView); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + e_view_layout_child_move(childView, 10, 20); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_layout_unpack(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + e_view_destroy(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); + free(obj2); +} + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Resize) +{ + const int color[4] = {0, 0, 0, 0}; + + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + E_View *view = e_view_layout_view_get(layout); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_stack_above(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _)); + EXPECT_CALL(*evasMock, evas_object_resize(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_rectangle_add(_)) + .Times(1) + .WillOnce(Return(obj2)); + E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color); + E_View *childView = e_view_rect_view_get(view_rect); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_visible_get(_)) + .Times(AnyNumber()); + e_view_layout_pack(layout, childView); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + e_view_layout_child_resize(childView, 100, 200); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_layout_unpack(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + e_view_destroy(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); + free(obj2); +} + +TEST_F(EViewLayoutTest, Test_E_View_Layout_Children_Raise) +{ + const int color[4] = {0, 0, 0, 0}; + + Evas_Object *obj = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + Evas_Object *obj2 = (Evas_Object *)malloc(EVAS_OBJECT_SIZE); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_smart_class_new(_)); + EXPECT_CALL(*evasMock, evas_object_smart_add(_, _)) + .Times(1) + .WillOnce(Return(obj)); + E_View_Layout *layout = e_view_layout_create(this->tree); + E_View *view = e_view_layout_view_get(layout); + + EXPECT_CALL(*evasMock, evas_object_data_set(_, _, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_layer_set(_, _)); + EXPECT_CALL(*evasMock, evas_object_stack_above(_, _)); + EXPECT_CALL(*evasMock, evas_object_move(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_color_set(_, _, _, _, _)); + EXPECT_CALL(*evasMock, evas_object_resize(_, _, _)); + EXPECT_CALL(*evasMock, evas_object_rectangle_add(_)) + .Times(1) + .WillOnce(Return(obj2)); + E_View_Rect* view_rect = e_view_rect_create(this->tree, 1, 1, color); + E_View *childView = e_view_rect_view_get(view_rect); + + EXPECT_CALL(*evasMock, evas_object_smart_data_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_smart_smart_get(_)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_visible_get(_)) + .Times(AnyNumber()); + e_view_layout_pack(layout, childView); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + e_view_layout_child_raise(childView); + + EXPECT_CALL(*evasMock, evas_object_data_get(_, _)) + .Times(AnyNumber()); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_layout_unpack(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + e_view_destroy(childView); + + EXPECT_CALL(*evasMock, evas_object_del(_)); + EXPECT_CALL(*evasMock, evas_object_data_del(_, _)); + e_view_destroy(view); + free(obj); + free(obj2); +}