awtk/tests/image_test.cc

63 lines
1.7 KiB
C++
Raw Normal View History

2018-06-27 13:46:42 +08:00
#include "base/image.h"
2018-03-26 07:36:18 +08:00
#include "gtest/gtest.h"
#include "base/canvas.h"
#include "base/font_manager.h"
#include "font_dummy.h"
#include "lcd_log.h"
TEST(Image, basic) {
value_t v;
2018-07-11 17:37:08 +08:00
value_t v1;
2018-03-26 07:36:18 +08:00
widget_t* img = image_create(NULL, 0, 0, 100, 100);
value_set_str(&v, "repeat");
2018-07-17 07:47:53 +08:00
2018-07-11 17:37:08 +08:00
ASSERT_EQ(widget_set_prop(img, WIDGET_PROP_DRAW_TYPE, &v), RET_OK);
2018-03-26 07:36:18 +08:00
ASSERT_EQ(IMAGE(img)->draw_type, IMAGE_DRAW_REPEAT);
ASSERT_EQ(image_set_draw_type(img, IMAGE_DRAW_REPEAT_X), RET_OK);
ASSERT_EQ(IMAGE(img)->draw_type, IMAGE_DRAW_REPEAT_X);
2018-07-11 17:37:08 +08:00
value_set_str(&v, "repeat_y");
ASSERT_EQ(widget_set_prop(img, WIDGET_PROP_DRAW_TYPE, &v), RET_OK);
ASSERT_EQ(IMAGE(img)->draw_type, IMAGE_DRAW_REPEAT_Y);
2018-03-26 07:36:18 +08:00
value_set_str(&v, "earth");
2018-07-11 17:37:08 +08:00
ASSERT_EQ(widget_set_prop(img, WIDGET_PROP_IMAGE, &v), RET_OK);
ASSERT_EQ(widget_get_prop(img, WIDGET_PROP_IMAGE, &v1), RET_OK);
ASSERT_EQ(strcmp(value_str(&v), value_str(&v1)), 0);
widget_destroy(img);
2018-03-26 07:36:18 +08:00
}
2018-07-18 10:36:54 +08:00
TEST(Widget, rotation) {
image_t* w = IMAGE(image_create(NULL, 0, 0, 400, 300));
ASSERT_EQ(w->rotation, 0);
ASSERT_EQ(image_set_rotation(WIDGET(w), 0.4), RET_OK);
ASSERT_EQ(w->rotation, 0.4f);
widget_destroy(WIDGET(w));
}
TEST(Widget, scale) {
image_t* w = IMAGE(image_create(NULL, 0, 0, 400, 300));
ASSERT_EQ(w->scale_x, 1.0f);
ASSERT_EQ(w->scale_y, 1.0f);
ASSERT_EQ(image_set_scale(WIDGET(w), 0.4, 4.0), RET_OK);
ASSERT_EQ(w->scale_x, 0.4f);
ASSERT_EQ(w->scale_y, 4.0f);
widget_destroy(WIDGET(w));
}
TEST(Widget, anchor) {
image_t* w = IMAGE(image_create(NULL, 0, 0, 400, 300));
ASSERT_EQ(w->anchor_x, 0.5f);
ASSERT_EQ(w->anchor_y, 0.5f);
ASSERT_EQ(image_set_anchor(WIDGET(w), 0.1f, 1.0f), RET_OK);
ASSERT_EQ(w->anchor_x, 0.1f);
ASSERT_EQ(w->anchor_y, 1.0f);
widget_destroy(WIDGET(w));
}