8#include <cgreen/cgreen.h>
9#include <cgreen/mocks.h>
19Ensure (ipc_openvas, ipc_data_from_json_ua_ok)
23 gchar *ua =
"localhost";
31 assert_that (data_s, is_null);
37 is_equal_to_string (
"localhost"));
40 assert_that (data_s, is_null);
43Ensure (ipc_openvas, ipc_data_from_json_hostname_ok)
47 gchar *hn =
"localhost";
48 gchar *hns =
"TLS certificate";
56 assert_that (data_s, is_null);
62 is_equal_to_string (
"localhost"));
64 is_equal_to_string (
"TLS certificate"));
67 assert_that (data_r, is_null);
70Ensure (ipc_openvas, ipc_data_from_json_parse_error)
74 char json_fake[1024] =
75 "{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] (X11, U; Greenbone OS "
76 "22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] (X11, U; "
77 "Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] "
78 "(X11, U; Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 "
79 "[en] (X11, U; Greenbone OS "
80 "22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] (X11, U; "
81 "Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] "
82 "(X11, U; Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 "
83 "[en] (X11, U; Greenbone OS "
84 "22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] (X11, U; "
85 "Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] "
86 "(X11, U; Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 "
87 "[en] (X11, U; Greenbone OS "
88 "22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] (X11, U; "
89 "Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 [en] "
90 "(X11, U; Greenbone OS 22.04.4)\"}{\"type\":2,\"user-agent\":\"Mozilla/5.0 "
91 "[en] (X11, U; Greenbone OS 22.04.4)\"}{\"type\":";
98 assert_that (data_r, is_null);
101Ensure (ipc_openvas, ipc_data_from_json_parse_many_objects)
108 char json_fake[256] =
109 "{\"type\":1,\"source\":\"TLS "
110 "certificate\",\"hostname\":\"localhost\"}{\"type\":2,\"user-agent\":"
111 "\"Mozilla/5.0 [en] (X11, U; Greenbone OS 22.04.4)\"}";
113 for (
int i = 0; json_fake[i] !=
'\0'; i++)
115 if (json_fake[i] ==
'}')
117 gchar *message = NULL;
120 message = g_malloc0 (
sizeof (gchar) * (
len + 1));
121 memcpy (message, &json_fake[pos],
len);
122 printf (
"\n\nel mensaje %s\n\n", message);
130 is_equal_to_string (
"localhost"));
132 is_equal_to_string (
"TLS certificate"));
141 "Mozilla/5.0 [en] (X11, U; Greenbone OS 22.04.4)"));
147 assert_that (data_r, is_null);
156 suite = create_test_suite ();
158 add_test_with_context (suite, ipc_openvas, ipc_data_from_json_ua_ok);
159 add_test_with_context (suite, ipc_openvas, ipc_data_from_json_hostname_ok);
160 add_test_with_context (suite, ipc_openvas, ipc_data_from_json_parse_error);
161 add_test_with_context (suite, ipc_openvas,
162 ipc_data_from_json_parse_many_objects);
165 ret = run_single_test (suite, argv[1], create_text_reporter ());
167 ret = run_test_suite (suite, create_text_reporter ());
169 destroy_test_suite (suite);
ipc_data_t * ipc_data_from_json(const char *json, size_t len)
transforms json string to a ipc_data struct
gchar * ipc_get_hostname_from_data(ipc_data_t *data)
Get the hostname from IPC data.
enum ipc_data_type ipc_get_data_type_from_data(ipc_data_t *data)
Get the data type in data.
void ipc_data_destroy(ipc_data_t **data)
destroys ipc_data.
const char * ipc_data_to_json(ipc_data_t *data)
transforms ipc_data to a json string
gchar * ipc_get_user_agent_from_data(ipc_data_t *data)
Get the User-Agent from IPC data.
ipc_data_t * ipc_data_type_from_user_agent(const char *user_agent, size_t user_agent_len)
initializes ipc_data for the User-Agent.
gchar * ipc_get_hostname_source_from_data(ipc_data_t *data)
Get the vhost hostname source from IPC data.
ipc_data_t * ipc_data_type_from_hostname(const char *source, size_t source_len, const char *hostname, size_t hostname_len)
initializes ipc_data for a hostname data.
struct ipc_data ipc_data_t
int main(int argc, char **argv)
Ensure(ipc_openvas, ipc_data_from_json_ua_ok)