add test for wm_find_client_direction
This commit is contained in:
parent
8d32587144
commit
cca3845a4d
100
src/tests.c
100
src/tests.c
@ -339,6 +339,105 @@ static void test_wm_treenode_remove_client2(void **state)
|
||||
wm_treenode_free(client_node3);
|
||||
}
|
||||
|
||||
static void test_wm_find_client_direction_split(void **state)
|
||||
{
|
||||
TreeNode *root = wm_treenode_new(NODE_VERTICAL, NULL);
|
||||
TreeNode *horizontal = wm_treenode_new(NODE_HORIZONTAL, NULL);
|
||||
|
||||
TreeNode *client1 = wm_treenode_new(NODE_CLIENT, NULL);
|
||||
TreeNode *client2 = wm_treenode_new(NODE_CLIENT, NULL);
|
||||
TreeNode *client3 = wm_treenode_new(NODE_CLIENT, NULL);
|
||||
|
||||
wm_treenode_add_child(root, client1);
|
||||
wm_treenode_add_child(root, horizontal);
|
||||
wm_treenode_add_child(horizontal, client2);
|
||||
wm_treenode_add_child(horizontal, client3);
|
||||
|
||||
root->pos = (Rect) {.w = 1600, .h = 900, .x = 0, .y = 0};
|
||||
wm_treenode_split_space(root, &client1->pos, &horizontal->pos);
|
||||
wm_treenode_split_space(horizontal, &client2->pos, &client3->pos);
|
||||
|
||||
Workspace *w = calloc(1, sizeof(Workspace));
|
||||
w->tree = root;
|
||||
|
||||
client1->client = calloc(1, sizeof(Client));
|
||||
client2->client = calloc(1, sizeof(Client));
|
||||
client3->client = calloc(1, sizeof(Client));
|
||||
|
||||
client1->client->name = "";
|
||||
client2->client->name = "";
|
||||
client3->client->name = "";
|
||||
|
||||
client1->client->ws = w;
|
||||
client2->client->ws = w;
|
||||
client3->client->ws = w;
|
||||
|
||||
client1->client->w = client1->pos.w; client1->client->h = client1->pos.h;
|
||||
client1->client->x = client1->pos.x; client1->client->y = client1->pos.y;
|
||||
client2->client->w = client2->pos.w; client2->client->h = client2->pos.h;
|
||||
client2->client->x = client2->pos.x; client2->client->y = client2->pos.y;
|
||||
client3->client->w = client3->pos.w; client3->client->h = client3->pos.h;
|
||||
client3->client->x = client3->pos.x; client3->client->y = client3->pos.y;
|
||||
|
||||
Monitor *m = calloc(1, sizeof(Workspace));
|
||||
XineramaScreenInfo info;
|
||||
info.width = 1600;
|
||||
info.height = 900;
|
||||
m->info = info;
|
||||
|
||||
client1->client->m = m;
|
||||
client2->client->m = m;
|
||||
client3->client->m = m;
|
||||
|
||||
Client *ret = wm_find_client_direction(client1->client, UP);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client1->client, DOWN);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client1->client, LEFT);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client1->client, RIGHT);
|
||||
assert_ptr_equal(ret, client2->client);
|
||||
|
||||
ret = wm_find_client_direction(client2->client, UP);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client2->client, DOWN);
|
||||
assert_ptr_equal(ret, client3->client);
|
||||
|
||||
ret = wm_find_client_direction(client2->client, LEFT);
|
||||
assert_ptr_equal(ret, client1->client);
|
||||
|
||||
ret = wm_find_client_direction(client2->client, RIGHT);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client3->client, UP);
|
||||
assert_ptr_equal(ret, client2->client);
|
||||
|
||||
ret = wm_find_client_direction(client3->client, DOWN);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
ret = wm_find_client_direction(client3->client, LEFT);
|
||||
assert_ptr_equal(ret, client1->client);
|
||||
|
||||
ret = wm_find_client_direction(client3->client, RIGHT);
|
||||
assert_ptr_equal(ret, NULL);
|
||||
|
||||
free(client1->client);
|
||||
free(client2->client);
|
||||
free(client3->client);
|
||||
free(m);
|
||||
free(w);
|
||||
wm_treenode_free(root);
|
||||
wm_treenode_free(horizontal);
|
||||
wm_treenode_free(client1);
|
||||
wm_treenode_free(client2);
|
||||
wm_treenode_free(client3);
|
||||
}
|
||||
|
||||
|
||||
static void test_wm_ptrarray_2d_index(void **state)
|
||||
{
|
||||
size_t x = 5;
|
||||
@ -1183,6 +1282,7 @@ int main(void)
|
||||
cmocka_unit_test(test_wm_find_client_nodes),
|
||||
cmocka_unit_test(test_wm_treenode_remove_client1),
|
||||
cmocka_unit_test(test_wm_treenode_remove_client2),
|
||||
cmocka_unit_test(test_wm_find_client_direction_split),
|
||||
cmocka_unit_test(test_wm_ptrarray_2d_index),
|
||||
cmocka_unit_test(test_wm_treenode_to_str),
|
||||
cmocka_unit_test(test_wm_json_obj_to_treenode),
|
||||
|
Loading…
x
Reference in New Issue
Block a user