8 #undef curl_easy_setopt
9 #undef curl_easy_getinfo
17 MockCurlPerformCallback mockPerformCallback;
18 void *mockPerformUserData;
29 void MockCurlSetPerformCallback(MockCurlPerformCallback mockPerformCallback,
void* userData)
31 f_mockInstance.mockPerformCallback = mockPerformCallback;
32 f_mockInstance.mockPerformUserData = userData;
35 void MockCurlReset(
void)
37 memset(&f_mockInstance, 0,
sizeof(f_mockInstance));
42 return &f_mockInstance.opts;
46 CURL *curl_easy_init(
void)
51 CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...)
56 va_start(arg, option);
57 paramp = va_arg(arg,
void *);
61 case CURLOPT_WRITEFUNCTION:
62 f_mockInstance.opts.writeFunction = (MockCurlWriteCallback)paramp;
65 case CURLOPT_WRITEDATA:
66 f_mockInstance.opts.writeData = paramp;
70 strcpy(f_mockInstance.opts.url, paramp);
74 f_mockInstance.opts.httpGet = (long)paramp;
77 case CURLOPT_POSTFIELDSIZE:
78 f_mockInstance.opts.postFieldSize = (long)paramp;
81 case CURLOPT_POSTFIELDS:
82 strncpy(f_mockInstance.opts.postFields, paramp, f_mockInstance.opts.postFieldSize);
83 f_mockInstance.opts.postFields[f_mockInstance.opts.postFieldSize] =
'\0';
92 CURLcode curl_easy_perform(CURL *curl)
94 if (f_mockInstance.mockPerformCallback)
96 f_mockInstance.mockPerformCallback(curl, f_mockInstance.opts.writeFunction, f_mockInstance.opts.writeData, f_mockInstance.mockPerformUserData);
101 CURLcode curl_easy_getinfo(CURL *curl, CURLINFO info, ...)
107 paramp = va_arg(arg,
void *);
111 case CURLINFO_RESPONSE_CODE:
112 *((
long*)paramp) = 200;
120 CURL_EXTERN
char *curl_easy_unescape(CURL *handle,
const char *
string,
int length,
int *outlength)
125 p = (
char *)malloc(length + 1);
135 const char *curl_easy_strerror(CURLcode code)
140 void curl_easy_cleanup(CURL *curl)
144 void curl_free(
void *p)
149 struct curl_slist *curl_slist_append(
struct curl_slist * list,
const char * val)
151 if (f_mockInstance.opts.headerCount < MOCK_CURL_MAX_HEADERS)
153 size_t dataSize = strlen(val);
154 char *header = (
char*)&f_mockInstance.opts.headers[f_mockInstance.opts.headerCount++];
155 memcpy(header, val, dataSize);
160 void curl_slist_free_all(
struct curl_slist * list)
162 f_mockInstance.opts.headerCount = 0u;
165 CURLSH *curl_share_init(
void)
167 return (CURLSH *)&f_mockShare;
170 CURLSHcode curl_share_setopt(CURLSH *c, CURLSHoption option, ...)
175 CURLSHcode curl_share_cleanup(CURLSH *c)