Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
TestWebServer.cpp File Reference
#include "PasswordManager.h"
#include "ServiceBroker.h"
#include "URL.h"
#include "filesystem/CurlFile.h"
#include "filesystem/File.h"
#include "interfaces/json-rpc/JSONRPC.h"
#include "network/DNSNameCache.h"
#include "network/WebServer.h"
#include "network/httprequesthandler/HTTPJsonRpcHandler.h"
#include "network/httprequesthandler/HTTPVfsHandler.h"
#include "settings/MediaSourceSettings.h"
#include "test/TestUtils.h"
#include "utils/JSONVariantParser.h"
#include "utils/StringUtils.h"
#include "utils/URIUtils.h"
#include "utils/Variant.h"
#include <errno.h>
#include <random>
#include <stdlib.h>
#include <gtest/gtest.h>

Classes

class  TestWebServer
 
class  TestWebServerAuth
 Web server requiring authentication, with the credentials held by the password manager rather than being part of the requested url. More...
 
struct  AuthHelperCase
 
class  TestWebServerAuthHelper
 

Macros

#define WEBSERVER_HOST   "localhost"
 
#define TEST_URL_JSONRPC   "jsonrpc"
 
#define TEST_FILES_DATA   "test"
 
#define TEST_FILES_DATA_RANGES   "range1;range2;range3"
 
#define TEST_FILES_HTML   TEST_FILES_DATA ".html"
 
#define TEST_FILES_RANGES   TEST_FILES_DATA "-ranges.txt"
 

Functions

 TEST_F (TestWebServer, IsStarted)
 
 TEST_F (TestWebServer, CanGetJsonRpcApiDescriptionWithHttpGet)
 
 TEST_F (TestWebServer, CanReadDataOverJsonRpcWithHttpGet)
 
 TEST_F (TestWebServer, CannotModifyOverJsonRpcWithHttpGet)
 
 TEST_F (TestWebServer, CanReadDataOverJsonRpcWithHttpPost)
 
 TEST_F (TestWebServer, CanModifyOverJsonRpcWithHttpPost)
 
 TEST_F (TestWebServer, CanNotHeadNonExistingFile)
 
 TEST_F (TestWebServer, CanHeadFile)
 
 TEST_F (TestWebServer, CanNotGetNonExistingFile)
 
 TEST_F (TestWebServer, CanGetFile)
 
 TEST_F (TestWebServer, CanGetFileForcingNoCache)
 
 TEST_F (TestWebServer, CanGetCachedFileWithOlderIfModifiedSince)
 
 TEST_F (TestWebServer, CanGetCachedFileWithExactIfModifiedSince)
 
 TEST_F (TestWebServer, CanGetCachedFileWithNewerIfModifiedSince)
 
 TEST_F (TestWebServer, CanGetCachedFileWithNewerIfModifiedSinceForcingNoCache)
 
 TEST_F (TestWebServer, CanGetCachedFileWithOlderIfUnmodifiedSince)
 
 TEST_F (TestWebServer, CanGetCachedFileWithExactIfUnmodifiedSince)
 
 TEST_F (TestWebServer, CanGetCachedFileWithNewerIfUnmodifiedSince)
 
 TEST_F (TestWebServer, CanGetRangedFileRange0_)
 
 TEST_F (TestWebServer, CanGetRangedFileRange0_End)
 
 TEST_F (TestWebServer, CanGetRangedFileRange0_2xEnd)
 
 TEST_F (TestWebServer, CanGetRangedFileRange0_First)
 
 TEST_F (TestWebServer, CanGetRangedFileRangeFirst_Second)
 
 TEST_F (TestWebServer, CanGetRangedFileRange_Last)
 
 TEST_F (TestWebServer, CanGetRangedFileRangeFirstSecond)
 
 TEST_F (TestWebServer, CanGetRangedFileRangeFirstSecondLast)
 
 TEST_F (TestWebServer, CanGetCachedRangedFileWithOlderIfRange)
 
 TEST_F (TestWebServer, CanGetCachedRangedFileWithExactIfRange)
 
 TEST_F (TestWebServer, CanGetCachedRangedFileWithNewerIfRange)
 
bool InvokeGetMimeType (const CURL &url)
 
bool InvokeGetContentType (const CURL &url)
 
bool InvokeGetHttpHeader (const CURL &url)
 
 TEST_P (TestWebServerAuthHelper, AppliesStoredCredentials)
 
 INSTANTIATE_TEST_SUITE_P (Helpers, TestWebServerAuthHelper, testing::Values(AuthHelperCase{"GetMimeType_WithCredentials", InvokeGetMimeType, true}, AuthHelperCase{"GetMimeType_NoCredentials", InvokeGetMimeType, false}, AuthHelperCase{"GetContentType_WithCredentials", InvokeGetContentType, true}, AuthHelperCase{"GetContentType_NoCredentials", InvokeGetContentType, false}, AuthHelperCase{"GetHttpHeader_WithCredentials", InvokeGetHttpHeader, true}, AuthHelperCase{"GetHttpHeader_NoCredentials", InvokeGetHttpHeader, false}), [](const testing::TestParamInfo< AuthHelperCase > &info) { return info.param.name;})
 
 TEST_F (TestWebServerAuth, GetMimeTypeReturnsTheCorrectType)
 
 TEST_F (TestWebServerAuth, GetContentTypeReturnsTheCorrectType)
 
 TEST_F (TestWebServerAuth, CanStatWithStoredCredentials)
 

Macro Definition Documentation

◆ TEST_FILES_DATA

#define TEST_FILES_DATA   "test"

◆ TEST_FILES_DATA_RANGES

#define TEST_FILES_DATA_RANGES   "range1;range2;range3"

◆ TEST_FILES_HTML

#define TEST_FILES_HTML   TEST_FILES_DATA ".html"

◆ TEST_FILES_RANGES

#define TEST_FILES_RANGES   TEST_FILES_DATA "-ranges.txt"

◆ TEST_URL_JSONRPC

#define TEST_URL_JSONRPC   "jsonrpc"

◆ WEBSERVER_HOST

#define WEBSERVER_HOST   "localhost"

Function Documentation

◆ INSTANTIATE_TEST_SUITE_P()

INSTANTIATE_TEST_SUITE_P ( Helpers ,
TestWebServerAuthHelper ,
testing::Values(AuthHelperCase{"GetMimeType_WithCredentials", InvokeGetMimeType, true}, AuthHelperCase{"GetMimeType_NoCredentials", InvokeGetMimeType, false}, AuthHelperCase{"GetContentType_WithCredentials", InvokeGetContentType, true}, AuthHelperCase{"GetContentType_NoCredentials", InvokeGetContentType, false}, AuthHelperCase{"GetHttpHeader_WithCredentials", InvokeGetHttpHeader, true}, AuthHelperCase{"GetHttpHeader_NoCredentials", InvokeGetHttpHeader, false}) ,
[] (const testing::TestParamInfo< AuthHelperCase > &info) { return info.param.name;}  )

◆ InvokeGetContentType()

bool InvokeGetContentType ( const CURL & url)

◆ InvokeGetHttpHeader()

bool InvokeGetHttpHeader ( const CURL & url)

◆ InvokeGetMimeType()

bool InvokeGetMimeType ( const CURL & url)

◆ TEST_F() [1/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithExactIfModifiedSince  )

◆ TEST_F() [2/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithExactIfUnmodifiedSince  )

◆ TEST_F() [3/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithNewerIfModifiedSince  )

◆ TEST_F() [4/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithNewerIfModifiedSinceForcingNoCache  )

◆ TEST_F() [5/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithNewerIfUnmodifiedSince  )

◆ TEST_F() [6/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithOlderIfModifiedSince  )

◆ TEST_F() [7/32]

TEST_F ( TestWebServer ,
CanGetCachedFileWithOlderIfUnmodifiedSince  )

◆ TEST_F() [8/32]

TEST_F ( TestWebServer ,
CanGetCachedRangedFileWithExactIfRange  )

◆ TEST_F() [9/32]

TEST_F ( TestWebServer ,
CanGetCachedRangedFileWithNewerIfRange  )

◆ TEST_F() [10/32]

TEST_F ( TestWebServer ,
CanGetCachedRangedFileWithOlderIfRange  )

◆ TEST_F() [11/32]

TEST_F ( TestWebServer ,
CanGetFile  )

◆ TEST_F() [12/32]

TEST_F ( TestWebServer ,
CanGetFileForcingNoCache  )

◆ TEST_F() [13/32]

TEST_F ( TestWebServer ,
CanGetJsonRpcApiDescriptionWithHttpGet  )

◆ TEST_F() [14/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRange0_  )

◆ TEST_F() [15/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRange0_2xEnd  )

◆ TEST_F() [16/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRange0_End  )

◆ TEST_F() [17/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRange0_First  )

◆ TEST_F() [18/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRange_Last  )

◆ TEST_F() [19/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRangeFirst_Second  )

◆ TEST_F() [20/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRangeFirstSecond  )

◆ TEST_F() [21/32]

TEST_F ( TestWebServer ,
CanGetRangedFileRangeFirstSecondLast  )

◆ TEST_F() [22/32]

TEST_F ( TestWebServer ,
CanHeadFile  )

◆ TEST_F() [23/32]

TEST_F ( TestWebServer ,
CanModifyOverJsonRpcWithHttpPost  )

◆ TEST_F() [24/32]

TEST_F ( TestWebServer ,
CanNotGetNonExistingFile  )

◆ TEST_F() [25/32]

TEST_F ( TestWebServer ,
CanNotHeadNonExistingFile  )

◆ TEST_F() [26/32]

TEST_F ( TestWebServer ,
CannotModifyOverJsonRpcWithHttpGet  )

◆ TEST_F() [27/32]

TEST_F ( TestWebServer ,
CanReadDataOverJsonRpcWithHttpGet  )

◆ TEST_F() [28/32]

TEST_F ( TestWebServer ,
CanReadDataOverJsonRpcWithHttpPost  )

◆ TEST_F() [29/32]

TEST_F ( TestWebServer ,
IsStarted  )

◆ TEST_F() [30/32]

TEST_F ( TestWebServerAuth ,
CanStatWithStoredCredentials  )

◆ TEST_F() [31/32]

TEST_F ( TestWebServerAuth ,
GetContentTypeReturnsTheCorrectType  )

◆ TEST_F() [32/32]

TEST_F ( TestWebServerAuth ,
GetMimeTypeReturnsTheCorrectType  )

◆ TEST_P()

TEST_P ( TestWebServerAuthHelper ,
AppliesStoredCredentials  )