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
|
/* libcmis
* Version: MPL 1.1 / GPLv2+ / LGPLv2+
*
* The contents of this file are subject to the Mozilla Public License Version
* 1.1 (the "License"); you may not use this file except in compliance with
* the License or as specified alternatively below. You may obtain a copy of
* the License at http://www.mozilla.org/MPL/
*
* Software distributed under the License is distributed on an "AS IS" basis,
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
* for the specific language governing rights and limitations under the
* License.
*
* Major Contributor(s):
* Copyright (C) 2011 SUSE <cbosdonnat@suse.com>
*
*
* All Rights Reserved.
*
* For minor contributions see the git repository.
*
* Alternatively, the contents of this file may be used under the terms of
* either the GNU General Public License Version 2 or later (the "GPLv2+"), or
* the GNU Lesser General Public License Version 2 or later (the "LGPLv2+"),
* in which case the provisions of the GPLv2+ or the LGPLv2+ are applicable
* instead of those above.
*/
#include <map>
#include <string>
#include <vector>
typedef size_t ( *write_callback )( char *ptr, size_t size, size_t nmemb, void *userdata );
typedef size_t ( *read_callback )( char *ptr, size_t size, size_t nmemb, void *userdata );
typedef size_t ( *headers_callback )( char *ptr, size_t size, size_t nmemb, void *userdata );
class CurlHandle
{
public:
CurlHandle( );
CurlHandle( const CurlHandle& copy );
CurlHandle& operator=( const CurlHandle& copy );
~CurlHandle( );
std::string m_url;
write_callback m_writeFn;
void* m_writeData;
read_callback m_readFn;
void* m_readData;
long m_readSize;
headers_callback m_headersFn;
void* m_headersData;
std::string m_username;
std::string m_password;
std::string m_proxy;
std::string m_noProxy;
std::string m_proxyUser;
std::string m_proxyPass;
bool m_verifyHost;
bool m_verifyPeer;
bool m_certInfo;
struct curl_certinfo m_certs;
long m_httpError;
std::string m_method;
std::vector< std::string > m_headers;
void reset( );
};
namespace mockup
{
class Response
{
public:
Response( std::string response, unsigned int status, bool isFilePath,
std::string headers );
std::string m_response;
unsigned int m_status;
bool m_isFilePath;
std::string m_headers;
};
class Request
{
public:
Request( std::string url, std::string method, std::string body,
std::vector< std::string > headers );
std::string m_url;
std::string m_method;
std::string m_body;
std::vector< std::string > m_headers;
};
class RequestMatcher
{
public:
RequestMatcher( std::string baseUrl, std::string matchParam,
std::string method, std::string matchBody );
bool operator< ( const RequestMatcher& compare ) const;
std::string m_baseUrl;
std::string m_matchParam;
std::string m_method;
std::string m_matchBody;
};
class Configuration
{
public:
Configuration( );
bool hasCredentials( );
CURLcode writeResponse( CurlHandle* handle );
std::map< RequestMatcher, Response > m_responses;
std::vector< Request > m_requests;
std::string m_username;
std::string m_password;
std::string m_badSSLCertificate;
};
}
|