1*6236dae4SAndroid Build Coastguard Worker<testcase> 2*6236dae4SAndroid Build Coastguard Worker# Based on test800 3*6236dae4SAndroid Build Coastguard Worker<info> 4*6236dae4SAndroid Build Coastguard Worker<keywords> 5*6236dae4SAndroid Build Coastguard WorkerIMAP 6*6236dae4SAndroid Build Coastguard WorkerClear Text 7*6236dae4SAndroid Build Coastguard WorkerFETCH 8*6236dae4SAndroid Build Coastguard Worker--libcurl 9*6236dae4SAndroid Build Coastguard Worker</keywords> 10*6236dae4SAndroid Build Coastguard Worker</info> 11*6236dae4SAndroid Build Coastguard Worker 12*6236dae4SAndroid Build Coastguard Worker# 13*6236dae4SAndroid Build Coastguard Worker# Server-side 14*6236dae4SAndroid Build Coastguard Worker<reply> 15*6236dae4SAndroid Build Coastguard Worker<data> 16*6236dae4SAndroid Build Coastguard WorkerFrom: me@somewhere 17*6236dae4SAndroid Build Coastguard WorkerTo: fake@nowhere 18*6236dae4SAndroid Build Coastguard Worker 19*6236dae4SAndroid Build Coastguard Workerbody 20*6236dae4SAndroid Build Coastguard Worker 21*6236dae4SAndroid Build Coastguard Worker-- 22*6236dae4SAndroid Build Coastguard Worker yours sincerely 23*6236dae4SAndroid Build Coastguard Worker</data> 24*6236dae4SAndroid Build Coastguard Worker</reply> 25*6236dae4SAndroid Build Coastguard Worker 26*6236dae4SAndroid Build Coastguard Worker# 27*6236dae4SAndroid Build Coastguard Worker# Client-side 28*6236dae4SAndroid Build Coastguard Worker<client> 29*6236dae4SAndroid Build Coastguard Worker<server> 30*6236dae4SAndroid Build Coastguard Workerimap 31*6236dae4SAndroid Build Coastguard Worker</server> 32*6236dae4SAndroid Build Coastguard Worker<name> 33*6236dae4SAndroid Build Coastguard Worker--libcurl for IMAP FETCH message 34*6236dae4SAndroid Build Coastguard Worker</name> 35*6236dae4SAndroid Build Coastguard Worker<setenv> 36*6236dae4SAndroid Build Coastguard WorkerSSL_CERT_FILE= 37*6236dae4SAndroid Build Coastguard Worker</setenv> 38*6236dae4SAndroid Build Coastguard Worker<command> 39*6236dae4SAndroid Build Coastguard Worker'imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=1' -u user:secret --libcurl %LOGDIR/test%TESTNUMBER.c 40*6236dae4SAndroid Build Coastguard Worker</command> 41*6236dae4SAndroid Build Coastguard Worker# Need ftp so the FTP options are written in the --libcurl template 42*6236dae4SAndroid Build Coastguard Worker<features> 43*6236dae4SAndroid Build Coastguard Workerftp 44*6236dae4SAndroid Build Coastguard Worker</features> 45*6236dae4SAndroid Build Coastguard Worker</client> 46*6236dae4SAndroid Build Coastguard Worker 47*6236dae4SAndroid Build Coastguard Worker# 48*6236dae4SAndroid Build Coastguard Worker# Verify data after the test has been "shot" 49*6236dae4SAndroid Build Coastguard Worker<verify> 50*6236dae4SAndroid Build Coastguard Worker<protocol> 51*6236dae4SAndroid Build Coastguard WorkerA001 CAPABILITY 52*6236dae4SAndroid Build Coastguard WorkerA002 LOGIN user secret 53*6236dae4SAndroid Build Coastguard WorkerA003 SELECT %TESTNUMBER 54*6236dae4SAndroid Build Coastguard WorkerA004 FETCH 1 BODY[] 55*6236dae4SAndroid Build Coastguard WorkerA005 LOGOUT 56*6236dae4SAndroid Build Coastguard Worker</protocol> 57*6236dae4SAndroid Build Coastguard Worker<file name="%LOGDIR/test%TESTNUMBER.c" mode="text"> 58*6236dae4SAndroid Build Coastguard Worker/********* Sample code generated by the curl command line tool ********** 59*6236dae4SAndroid Build Coastguard Worker * All curl_easy_setopt() options are documented at: 60*6236dae4SAndroid Build Coastguard Worker * https://curl.se/libcurl/c/curl_easy_setopt.html 61*6236dae4SAndroid Build Coastguard Worker ************************************************************************/ 62*6236dae4SAndroid Build Coastguard Worker#include <curl/curl.h> 63*6236dae4SAndroid Build Coastguard Worker 64*6236dae4SAndroid Build Coastguard Workerint main(int argc, char *argv[]) 65*6236dae4SAndroid Build Coastguard Worker{ 66*6236dae4SAndroid Build Coastguard Worker CURLcode ret; 67*6236dae4SAndroid Build Coastguard Worker CURL *hnd; 68*6236dae4SAndroid Build Coastguard Worker 69*6236dae4SAndroid Build Coastguard Worker hnd = curl_easy_init(); 70*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_BUFFERSIZE, 102400L); 71*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_URL, "imap://%HOSTIP:%IMAPPORT/%TESTNUMBER/;MAILINDEX=1"); 72*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_USERPWD, "user:secret"); 73*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_VERBOSE, 1L); 74*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_FTP_SKIP_PASV_IP, 1L); 75*6236dae4SAndroid Build Coastguard Worker curl_easy_setopt(hnd, CURLOPT_TCP_KEEPALIVE, 1L); 76*6236dae4SAndroid Build Coastguard Worker 77*6236dae4SAndroid Build Coastguard Worker /* Here is a list of options the curl code used that cannot get generated 78*6236dae4SAndroid Build Coastguard Worker as source easily. You may choose to either not use them or implement 79*6236dae4SAndroid Build Coastguard Worker them yourself. 80*6236dae4SAndroid Build Coastguard Worker 81*6236dae4SAndroid Build Coastguard Worker CURLOPT_WRITEDATA was set to an object pointer 82*6236dae4SAndroid Build Coastguard Worker CURLOPT_WRITEFUNCTION was set to a function pointer 83*6236dae4SAndroid Build Coastguard Worker CURLOPT_READDATA was set to an object pointer 84*6236dae4SAndroid Build Coastguard Worker CURLOPT_READFUNCTION was set to a function pointer 85*6236dae4SAndroid Build Coastguard Worker CURLOPT_SEEKDATA was set to an object pointer 86*6236dae4SAndroid Build Coastguard Worker CURLOPT_SEEKFUNCTION was set to a function pointer 87*6236dae4SAndroid Build Coastguard Worker CURLOPT_ERRORBUFFER was set to an object pointer 88*6236dae4SAndroid Build Coastguard Worker CURLOPT_STDERR was set to an object pointer 89*6236dae4SAndroid Build Coastguard Worker CURLOPT_DEBUGFUNCTION was set to a function pointer 90*6236dae4SAndroid Build Coastguard Worker CURLOPT_DEBUGDATA was set to an object pointer 91*6236dae4SAndroid Build Coastguard Worker CURLOPT_HEADERFUNCTION was set to a function pointer 92*6236dae4SAndroid Build Coastguard Worker CURLOPT_HEADERDATA was set to an object pointer 93*6236dae4SAndroid Build Coastguard Worker 94*6236dae4SAndroid Build Coastguard Worker */ 95*6236dae4SAndroid Build Coastguard Worker 96*6236dae4SAndroid Build Coastguard Worker ret = curl_easy_perform(hnd); 97*6236dae4SAndroid Build Coastguard Worker 98*6236dae4SAndroid Build Coastguard Worker curl_easy_cleanup(hnd); 99*6236dae4SAndroid Build Coastguard Worker hnd = NULL; 100*6236dae4SAndroid Build Coastguard Worker 101*6236dae4SAndroid Build Coastguard Worker return (int)ret; 102*6236dae4SAndroid Build Coastguard Worker} 103*6236dae4SAndroid Build Coastguard Worker/**** End of sample code ****/ 104*6236dae4SAndroid Build Coastguard Worker</file> 105*6236dae4SAndroid Build Coastguard Worker<stripfile> 106*6236dae4SAndroid Build Coastguard Worker# These options vary with configurations - just ignore them 107*6236dae4SAndroid Build Coastguard Worker# CURLOPT_INTERLEAVEDATA requires RTSP (HTTP) protocol 108*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_USERAGENT/ 109*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_MAXREDIRS/ 110*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_SSL_VERIFYPEER/ 111*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_SSH_KNOWNHOSTS/ 112*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_HTTP_VERSION/ 113*6236dae4SAndroid Build Coastguard Worker$_ = '' if /CURLOPT_INTERLEAVEDATA/ 114*6236dae4SAndroid Build Coastguard Worker</stripfile> 115*6236dae4SAndroid Build Coastguard Worker</verify> 116*6236dae4SAndroid Build Coastguard Worker</testcase> 117