1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#include "prof_cmocka.h"
#include <stdlib.h>
#include "plugins/disco.h"
void
returns_empty_list_when_none(void** state)
{
disco_close();
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 0);
g_list_free(features);
disco_close();
}
void
returns_added_feature(void** state)
{
disco_close();
disco_add_feature("my_plugin", "some:feature:example");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
char* feature = features->data;
assert_string_equal(feature, "some:feature:example");
g_list_free(features);
disco_close();
}
void
resets_features_on_close(void** state)
{
disco_close();
disco_add_feature("my_plugin", "some:feature:example");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
features = disco_get_features();
assert_int_equal(g_list_length(features), 0);
g_list_free(features);
disco_close();
}
void
returns_all_added_features(void** state)
{
disco_close();
disco_add_feature("first_plugin", "first:feature");
disco_add_feature("first_plugin", "second:feature");
disco_add_feature("second_plugin", "third:feature");
disco_add_feature("third_plugin", "fourth:feature");
disco_add_feature("third_plugin", "fifth:feature");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 5);
assert_true(g_list_find_custom(features, "first:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "second:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "third:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "fourth:feature", (GCompareFunc)g_strcmp0));
assert_true(g_list_find_custom(features, "fifth:feature", (GCompareFunc)g_strcmp0));
g_list_free(features);
disco_close();
}
void
does_not_add_duplicate_feature(void** state)
{
disco_close();
disco_add_feature("my_plugin", "my:feature");
disco_add_feature("some_other_plugin", "my:feature");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
void
removes_plugin_features(void** state)
{
disco_close();
disco_add_feature("plugin1", "plugin1:feature1");
disco_add_feature("plugin1", "plugin1:feature2");
disco_add_feature("plugin2", "plugin2:feature1");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 3);
g_list_free(features);
disco_remove_features("plugin1");
features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
void
does_not_remove_feature_when_more_than_one_reference(void** state)
{
disco_close();
disco_add_feature("plugin1", "feature1");
disco_add_feature("plugin1", "feature2");
disco_add_feature("plugin2", "feature1");
GList* features = disco_get_features();
assert_int_equal(g_list_length(features), 2);
g_list_free(features);
disco_remove_features("plugin1");
features = disco_get_features();
assert_int_equal(g_list_length(features), 1);
g_list_free(features);
disco_close();
}
|