![]()  | 
  
    AlexaClientSDK
    3.0.0
    
   A cross-platform, modular SDK for interacting with the Alexa Voice Service 
   | 
 
#include <AVSCommon/Utils/FileSystem/FileSystemUtils.h>#include <gmock/gmock.h>#include <gtest/gtest.h>#include <rapidjson/document.h>#include <chrono>#include <memory>#include <thread>#include "AuthDelegateMock.h"#include "CurlWrapperMock.h"#include "DavsServiceMock.h"#include "TestUtil.h"#include "acsdkAssetsCommon/Base64Url.h"#include "acsdkDavsClient/DavsEndpointHandlerV3.h"#include "acsdkDavsClient/DavsHandler.h"
Classes | |
| class | MyDownloader | 
| class | MyChecker | 
| struct | TestDataForCheckArtifact | 
| class | CheckArtifactTest | 
| class | DownloadTest | 
| struct | UrlData | 
| class | UrlParserTest | 
Functions | |
| static string | replace_string (const string &source, const string &what, const string &replacement) | 
| TEST_P (CheckArtifactTest, parametrizedTest) | |
| INSTANTIATE_TEST_CASE_P (ArtifactCheckTest, CheckArtifactTest, ValuesIn< vector< TestDataForCheckArtifact >>({{"Happy case", valid_request, true, valid_response, false, true, "Content-Type: application/json"}, {"HTTP GET failed", valid_request, false, "", true, false, "Content-Type: application/json"}, {"GET failed w/response", valid_request, false, valid_response, true, false, "Content-Type: application/json"}, {"Empty response", valid_request, true, "", true, false, "Content-Type: application/json"}, {"Invalid JSON", valid_request, true, "Golden Fleece", true, false, "Content-Type: application/json"}, {"Valid JSON, no data", valid_request, true, "{\MZN\1917}", true, false, "Content-Type: application/json"}, {"Valid JSON, bad data", valid_request, true, negative_expiry, true, false, "Content-Type: application/json"}, {"String instead of int", valid_request, true, int_as_string, true, false, "Content-Type: application/json"}, {"Insecure response OK", valid_request, true, insecure_response, false, true, "Content-Type: application/json"}, {"Multi-part happy case", valid_request, true, valid_multipart_full_response, false, false, "Content-Type: multipart/mixed; boundary=--90378d5d-5961-4c14-9105-d968ad9f2ba8\"} }), PrintDescription()) | |
| TEST_F (DownloadTest, fromPublishToDownloadTest) | |
| TEST_F (DownloadTest, downloadWithThrottlingTest) | |
| TEST_F (DownloadTest, downloadFailureDoesntRetryForeverTest) | |
| TEST_F (DownloadTest, downloadCanRecoverTest) | |
| TEST_F (DownloadTest, downloadRetriesWithThrottlingTest) | |
| TEST_F (DownloadTest, BackOffTimeLimitsTest) | |
| TEST_F (DownloadTest, BackOffIncrements) | |
| TEST_P (UrlParserTest, urlParser) | |
| INSTANTIATE_TEST_CASE_P (PossibleTests, UrlParserTest, ValuesIn< vector< UrlData >>({{"https://device-artifacts-v2.s3.amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"http://device-artifacts-v2.s3.amazonaws.com/file.tar.gz", "file.tar.gz"}, {"https://device-artifacts-v2.s3.amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"https://s3.amazonaws.com/f", "f"}, {"https://s3.amazonaws.com/f?", "f"}, {"https://s3.amazonaws.com/?hi/file.tar.gz?bye", "file.tar.gz"}, {"https://amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"https://azamonaws.com/file.tar.gz?X-Amz-Algorithm=AW", default_value}, {"https://s3.amazon.com/file.tar.gz?X-Amz-Algorithm=AW", default_value}, {"https://s3.amazonaws.com/?X-Amz", default_value}, })) | |
Variables | |
| static milliseconds | INTIIAL_BACKOFF_VALUE = milliseconds(100) | 
| static milliseconds | BASE_BACKOFF_VALUE = milliseconds(10) | 
| static milliseconds | MAX_BACKOFF_VALUE = milliseconds(50) | 
| string | valid_request | 
| string | valid_response | 
| auto | insecure_response = replace_string(valid_response, "https://", "http://") | 
| auto | negative_expiry = replace_string(valid_response, "\"urlExpiryEpoch\": 1537400172798,", "\"urlExpiryEpoch\": -12,") | 
| auto | int_as_string = replace_string(valid_response, "4485147", "\"4485147\"") | 
| string | valid_multipart_full_response | 
| string | default_value = "default_value" | 
| INSTANTIATE_TEST_CASE_P | ( | ArtifactCheckTest | , | 
| CheckArtifactTest | , | ||
| ValuesIn< vector< TestDataForCheckArtifact >> | {{"Happy case", valid_request, true, valid_response, false, true, "Content-Type: application/json"}, {"HTTP GET failed", valid_request, false, "", true, false, "Content-Type: application/json"}, {"GET failed w/response", valid_request, false, valid_response, true, false, "Content-Type: application/json"}, {"Empty response", valid_request, true, "", true, false, "Content-Type: application/json"}, {"Invalid JSON", valid_request, true, "Golden Fleece", true, false, "Content-Type: application/json"}, {"Valid JSON, no data", valid_request, true, "{\ZN\917}", true, false, "Content-Type: application/json"}, {"Valid JSON, bad data", valid_request, true, negative_expiry, true, false, "Content-Type: application/json"}, {"String instead of int", valid_request, true, int_as_string, true, false, "Content-Type: application/json"}, {"Insecure response OK", valid_request, true, insecure_response, false, true, "Content-Type: application/json"}, {"Multi-part happy case", valid_request, true, valid_multipart_full_response, false, false, "Content-Type: multipart/mixed; boundary=--90378d5d-5961-4c14-9105-d968ad9f2ba8\} }, | ||
| PrintDescription() | |||
| ) | 
| INSTANTIATE_TEST_CASE_P | ( | PossibleTests | , | 
| UrlParserTest | , | ||
| ValuesIn< vector< UrlData >> | {{"https://device-artifacts-v2.s3.amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"http://device-artifacts-v2.s3.amazonaws.com/file.tar.gz", "file.tar.gz"}, {"https://device-artifacts-v2.s3.amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"https://s3.amazonaws.com/f", "f"}, {"https://s3.amazonaws.com/f?", "f"}, {"https://s3.amazonaws.com/?hi/file.tar.gz?bye", "file.tar.gz"}, {"https://amazonaws.com/file.tar.gz?X-Amz-Algorithm=AW", "file.tar.gz"}, {"https://azamonaws.com/file.tar.gz?X-Amz-Algorithm=AW", default_value}, {"https://s3.amazon.com/file.tar.gz?X-Amz-Algorithm=AW", default_value}, {"https://s3.amazonaws.com/?X-Amz", default_value}, } | ||
| ) | 
      
  | 
  static | 
| TEST_F | ( | DownloadTest | , | 
| fromPublishToDownloadTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| downloadWithThrottlingTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| downloadFailureDoesntRetryForeverTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| downloadCanRecoverTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| downloadRetriesWithThrottlingTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| BackOffTimeLimitsTest | |||
| ) | 
| TEST_F | ( | DownloadTest | , | 
| BackOffIncrements | |||
| ) | 
| TEST_P | ( | CheckArtifactTest | , | 
| parametrizedTest | |||
| ) | 
| TEST_P | ( | UrlParserTest | , | 
| urlParser | |||
| ) | 
      
  | 
  static | 
| string default_value = "default_value" | 
| auto insecure_response = replace_string(valid_response, "https://", "http://") | 
| auto int_as_string = replace_string(valid_response, "4485147", "\"4485147\"") | 
      
  | 
  static | 
      
  | 
  static | 
| auto negative_expiry = replace_string(valid_response, "\"urlExpiryEpoch\": 1537400172798,", "\"urlExpiryEpoch\": -12,") | 
| string valid_multipart_full_response | 
| string valid_request | 
| string valid_response | 
AlexaClientSDK 3.0.0 - Copyright 2016-2022 Amazon.com, Inc. or its affiliates. All Rights Reserved. Licensed under the Apache License, Version 2.0