Add initial notification test suite
The beginnings of the notification test suite, currently only includes tests for `notification_is_duplicate`.
This commit is contained in:
parent
a788770a0f
commit
0deff4412e
1
test/data/dunstrc.default
Symbolic link
1
test/data/dunstrc.default
Symbolic link
@ -0,0 +1 @@
|
|||||||
|
../../dunstrc
|
94
test/notification.c
Normal file
94
test/notification.c
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
#include "greatest.h"
|
||||||
|
#include "src/notification.h"
|
||||||
|
#include "src/option_parser.h"
|
||||||
|
#include "src/settings.h"
|
||||||
|
|
||||||
|
#include <glib.h>
|
||||||
|
|
||||||
|
TEST test_notification_is_duplicate_field(char **field, notification *a,
|
||||||
|
notification *b)
|
||||||
|
{
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
char *tmp = *field;
|
||||||
|
(*field) = "Something different";
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
(*field) = tmp;
|
||||||
|
|
||||||
|
PASS();
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST test_notification_is_duplicate(void *notifications)
|
||||||
|
{
|
||||||
|
notification **n = (notification**)notifications;
|
||||||
|
notification *a = n[0];
|
||||||
|
notification *b = n[1];
|
||||||
|
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
|
||||||
|
CHECK_CALL(test_notification_is_duplicate_field(&(b->appname), a, b));
|
||||||
|
CHECK_CALL(test_notification_is_duplicate_field(&(b->summary), a, b));
|
||||||
|
CHECK_CALL(test_notification_is_duplicate_field(&(b->body), a, b));
|
||||||
|
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
|
||||||
|
char *tmp = b->icon;
|
||||||
|
enum icon_position_t icon_tmp = settings.icon_position;
|
||||||
|
|
||||||
|
b->icon = "Test1";
|
||||||
|
|
||||||
|
settings.icon_position = icons_off;
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
//Setting pointer to a random value since we are checking for null
|
||||||
|
b->raw_icon = (RawImage*)0xff;
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
b->raw_icon = NULL;
|
||||||
|
|
||||||
|
settings.icon_position = icons_left;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
b->raw_icon = (RawImage*)0xff;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
b->raw_icon = NULL;
|
||||||
|
|
||||||
|
settings.icon_position = icons_right;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
b->raw_icon = (RawImage*)0xff;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
b->raw_icon = NULL;
|
||||||
|
|
||||||
|
b->icon = tmp;
|
||||||
|
settings.icon_position = icon_tmp;
|
||||||
|
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
|
||||||
|
b->urgency = LOW;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
b->urgency = NORM;
|
||||||
|
ASSERT(notification_is_duplicate(a, b));
|
||||||
|
b->urgency = CRIT;
|
||||||
|
ASSERT_FALSE(notification_is_duplicate(a, b));
|
||||||
|
|
||||||
|
PASS();
|
||||||
|
}
|
||||||
|
|
||||||
|
SUITE(suite_notification)
|
||||||
|
{
|
||||||
|
cmdline_load(0, NULL);
|
||||||
|
load_settings("data/dunstrc");
|
||||||
|
|
||||||
|
notification *a = notification_create();
|
||||||
|
a->appname = "Test";
|
||||||
|
a->summary = "Summary";
|
||||||
|
a->body = "Body";
|
||||||
|
a->icon = "Icon";
|
||||||
|
a->urgency = NORM;
|
||||||
|
|
||||||
|
notification *b = notification_create();
|
||||||
|
memcpy(b, a, sizeof(*b));
|
||||||
|
|
||||||
|
//2 equal notifications to be passed for duplicate checking,
|
||||||
|
notification *n[2] = {a, b};
|
||||||
|
|
||||||
|
RUN_TEST1(test_notification_is_duplicate, (void*) n);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* vim: set tabstop=8 shiftwidth=8 expandtab textwidth=0: */
|
@ -2,6 +2,7 @@
|
|||||||
|
|
||||||
SUITE_EXTERN(suite_utils);
|
SUITE_EXTERN(suite_utils);
|
||||||
SUITE_EXTERN(suite_option_parser);
|
SUITE_EXTERN(suite_option_parser);
|
||||||
|
SUITE_EXTERN(suite_notification);
|
||||||
|
|
||||||
GREATEST_MAIN_DEFS();
|
GREATEST_MAIN_DEFS();
|
||||||
|
|
||||||
@ -9,6 +10,7 @@ int main(int argc, char *argv[]) {
|
|||||||
GREATEST_MAIN_BEGIN();
|
GREATEST_MAIN_BEGIN();
|
||||||
RUN_SUITE(suite_utils);
|
RUN_SUITE(suite_utils);
|
||||||
RUN_SUITE(suite_option_parser);
|
RUN_SUITE(suite_option_parser);
|
||||||
|
RUN_SUITE(suite_notification);
|
||||||
GREATEST_MAIN_END();
|
GREATEST_MAIN_END();
|
||||||
}
|
}
|
||||||
/* vim: set tabstop=8 shiftwidth=8 expandtab textwidth=0: */
|
/* vim: set tabstop=8 shiftwidth=8 expandtab textwidth=0: */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user