From 6043b05cd71c6277b264ca3d0ceb8fe34f24033d Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 15:55:07 +0800 Subject: [PATCH 01/17] http cache unittest Signed-off-by: maosiping --- CMakeLists.txt | 3 +- bundle.json | 3 +- test/unittest/http/cache/BUILD.gn | 59 ++ test/unittest/http/cache/CMakeLists.txt | 24 + test/unittest/http/cache/cache_test.cpp | 797 ++++++++++++++++++++++++ 5 files changed, 884 insertions(+), 2 deletions(-) create mode 100644 test/unittest/http/cache/BUILD.gn create mode 100644 test/unittest/http/cache/CMakeLists.txt create mode 100644 test/unittest/http/cache/cache_test.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index 32578ef07..05a16eb14 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -68,4 +68,5 @@ add_subdirectory(test/napi/http) add_subdirectory(test/napi/socket) add_subdirectory(test/napi/fetch) add_subdirectory(test/napi/websocket) -add_subdirectory(test/utils/napi_utils/unittest) \ No newline at end of file +add_subdirectory(test/utils/napi_utils/unittest) +add_subdirectory(test/unittest/http/cache) \ No newline at end of file diff --git a/bundle.json b/bundle.json index 4bcccd6b6..915015253 100644 --- a/bundle.json +++ b/bundle.json @@ -49,7 +49,8 @@ ], "inner_kits": [], "test": [ - "//foundation/communication/netstack/test/napi/socket:fuzztest" + "//foundation/communication/netstack/test/napi/socket:fuzztest", + "//foundation/communication/netstack/test/unittest/http/cache:unittest" ] } } diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn new file mode 100644 index 000000000..d884aaa8a --- /dev/null +++ b/test/unittest/http/cache/BUILD.gn @@ -0,0 +1,59 @@ +# Copyright (c) 2022 Huawei Device Co., Ltd. +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +import("//build/ohos.gni") +import("//build/test.gni") + +SUBSYSTEM_DIR = "//foundation/communication" +NETSTACK_NAPI_ROOT = "$SUBSYSTEM_DIR/netstack/frameworks/js/napi/" + +utils_include = [ + "$SUBSYSTEM_DIR/netstack/utils/common_utils/include", + "$SUBSYSTEM_DIR/netstack/utils/log/include", +] + +common_deps = [ "//utils/native/base:utils" ] + +common_external_deps = [ "hiviewdfx_hilog_native:libhilog" ] + +ohos_unittest("http_cache_unittest") { + module_out_path = "netstack/http_cache_unittest" + + include_dirs = [ + "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/include", + "$NETSTACK_NAPI_ROOT/http/options/include", + "$NETSTACK_NAPI_ROOT/http/constant/include", + ] + include_dirs += utils_include + + sources = [ + "cache_test.cpp", + "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_request.cpp", + "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_response.cpp", + "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_strategy.cpp", + "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_time.cpp", + "$NETSTACK_NAPI_ROOT/http/constant/src/constant.cpp", + "$NETSTACK_NAPI_ROOT/http/options/src/http_request_options.cpp", + "$NETSTACK_NAPI_ROOT/http/options/src/http_response.cpp", + "$SUBSYSTEM_DIR/netstack/test/napi/log/test_hilog.cpp", + "$SUBSYSTEM_DIR/netstack/utils/common_utils/src/netstack_common_utils.cpp", + ] + + part_name = "netstack" + subsystem_name = "communication" +} + +group("unittest") { + testonly = true + deps = [ ":http_cache_unittest" ] +} diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt new file mode 100644 index 000000000..946185b4b --- /dev/null +++ b/test/unittest/http/cache/CMakeLists.txt @@ -0,0 +1,24 @@ +include_directories(../../../../frameworks/js/napi/http/cache/cache_strategy/include) +include_directories(../../../../frameworks/js/napi/http/options/include) +include_directories(../../../../frameworks/js/napi/http/constant/include) +include_directories(../../../../utils/common_utils/include) +include_directories(../../../../utils/log/include) + +add_executable( + cache_test + cache_test.cpp + ../../../../frameworks/js/napi/http/options/src/http_response.cpp + ../../../../frameworks/js/napi/http/options/src/http_request_options.cpp + ../../../../frameworks/js/napi/http/constant/src/constant.cpp + ../../../../utils/common_utils/src/netstack_common_utils.cpp + ../../../napi/log/test_hilog.cpp + ../../../../frameworks/js/napi/http/cache/cache_strategy/src/http_time.cpp + ../../../../frameworks/js/napi/http/cache/cache_strategy/src/http_cache_request.cpp + ../../../../frameworks/js/napi/http/cache/cache_strategy/src/http_cache_response.cpp + ../../../../frameworks/js/napi/http/cache/cache_strategy/src/http_cache_strategy.cpp +) + +target_link_libraries(cache_test gtestd) +target_link_libraries(cache_test gmockd) +target_link_libraries(cache_test gtest_maind) +target_link_libraries(cache_test gmock_maind) \ No newline at end of file diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/cache_test.cpp new file mode 100644 index 000000000..803090b3e --- /dev/null +++ b/test/unittest/http/cache/cache_test.cpp @@ -0,0 +1,797 @@ +/* + * Copyright (c) 2022 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +#include "http_cache_request.h" +#include "http_cache_response.h" +#include "netstack_log.h" + +#include "http_cache_strategy.h" +#include "gtest/gtest.h" + +using namespace OHOS::NetStack; + +class HttpCacheStrategyTest : public testing::Test { +public: + static void SetUpTestCase() {} + + static void TearDownTestCase() {} + + virtual void SetUp() {} + + virtual void TearDown() {} +}; + +HWTEST_F(HttpCacheStrategyTest, cacheRequestNoCache, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "no-cache"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, computeFreshnessLifetimeLastModifiedBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "min-fresh=20"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "public"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:37:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, cacheResponseNoCache, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "min-fresh=20"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "no-cache"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, cacheRequestOnlyIfCached, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "only-if-cached"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheable, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "min-fresh=20"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(303); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheable_OK, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "min-fresh=20"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, requestIfModifiedSinceStr, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("if-modified-since", "Thu, 10 Feb 2022 10:55:14 GMT"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, requestgetIfNoneMatch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("if-none-match", "A6E52F1D544D9DAFB552163A1CF8AD10"); + requestOptions.SetHeader("if-modified-since", "Thu, 10 Feb 2022 10:55:14 GMT"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, requestgetIfNoneMatchAndIfModifiedSinceStr, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("if-none-match", "A6E52F1D544D9DAFB552163A1CF8AD10"); + requestOptions.SetHeader("if-modified-since", "Thu, 10 Feb 2022 10:55:14 GMT"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, strategyMaxAgeBranch, testing::ext::TestSize.Level1) // test +{ + HttpRequestOptions requestOptions; + requestOptions.SetHeader("cache-control", "max-age=10"); + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:19 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["Cache-Control"] = "max-age=70"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + // EXPECT_EQ(status, 0); + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_1, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "33781"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_1_2, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "33781"; + responseHeader["etag"] = "6f6741d197947f9f10943d36c4d8210e"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_2, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "max-age=10"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "10"; + responseHeader["cache-control"] = "private"; + responseHeader["expires"] = "Mon, 16 May 2022 10:31:58 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_3, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Mon, 16 May 2022 09:32:59 GMT"); + requestOptions.SetHeader("cache-control", "no-cache"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Mon, 16 May 2022 09:33:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "0"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_4, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Mon, 16 May 2022 09:32:59 GMT"); + requestOptions.SetHeader("if-modified-since", "Thu, 10 Feb 2022 10:55:14 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Mon, 16 May 2022 09:33:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "33781"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 2); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_5, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Thu, 19 May 2022 08:22:26 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_6, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 20 May 2022 09:36:30 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:37:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_7, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 20 May 2022 09:36:30 GMT"); + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:37:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_8, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + responseHeader["etag"] = "6f6741d197947f9f10943d36c4d8210e"; + responseHeader["date"] = "Fri, 20 May 2022 09:37:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_9, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["age"] = "60"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, computeFreshnessLifetimeLastModifiedNoDateBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "public"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 1); +} + +HWTEST_F(HttpCacheStrategyTest, cache110WarningBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=60, max-stale=2000"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "max-age=60, max-stale=500000000"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:50:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, 0); +} + +CacheStatus switchTest(ResponseCode code) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=60, max-stale=2000"); + + HttpResponse response; + response.SetResponseCode(static_cast(code)); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "max-age=60, max-stale=500000000"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:50:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + return status; +} + +HWTEST_F(HttpCacheStrategyTest, cacheSwitchBranch, testing::ext::TestSize.Level1) +{ + CacheStatus result; + std::vector respCode = {ResponseCode::OK, ResponseCode::NOT_AUTHORITATIVE, + ResponseCode::NO_CONTENT, ResponseCode::MULT_CHOICE, + ResponseCode::MOVED_PERM, ResponseCode::NOT_FOUND, + ResponseCode::BAD_METHOD, ResponseCode::GONE, + ResponseCode::REQ_TOO_LONG, ResponseCode::NOT_IMPLEMENTED}; + + for (const auto &iterRespCode : respCode) { + NETSTACK_LOGI("respCode:%d", iterRespCode); + } + + for (const auto &iterRespCode : respCode) { + result = switchTest(iterRespCode); + EXPECT_EQ(result, FRESH); + } +} + +HWTEST_F(HttpCacheStrategyTest, cache113WarningBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:36:30 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=2, max-stale=9000000000"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "max-stale=5000000000000000"; + responseHeader["last-modified"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + responseHeader["date"] = "Mon, 20 Jun 2022 09:56:21 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, FRESH); +} + +HWTEST_F(HttpCacheStrategyTest, reqHeaderEtagBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Thu, 19 May 2022 08:22:26 GMT"; + responseHeader["etag"] = "6f6741d197947f9f10943d36c4d8210e"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, FRESH); +} + +HWTEST_F(HttpCacheStrategyTest, reqHeaderLastModifiedBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Thu, 19 May 2022 08:22:26 GMT"; + responseHeader["last-modified"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, FRESH); +} + +HWTEST_F(HttpCacheStrategyTest, reqHeaderDateBranch, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["expires"] = "Thu, 19 May 2022 08:22:26 GMT"; + responseHeader["date"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, headerNull, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, requestTimeEmpty, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, computeFreshnessLifetimeEnd, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Thur, 19 May 2022 08:19:59 GMT"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(static_cast(ResponseCode::MOVED_TEMP)); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "private"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, computeFreshnessLifetimeDelta, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["last-modified"] = "Mon, 18 Jul 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheUsefulMaxStaleMillis, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "max-stale=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, FRESH); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition2, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20, no-store"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "private"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, TRANSPARENT); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition3, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "private, no-store"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, TRANSPARENT); +} + +HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition4, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "private, must-revalidate"; + responseHeader["last-modified"] = "Thu, 10 Feb 2022 10:55:14 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} + +HWTEST_F(HttpCacheStrategyTest, CompareNumber_6_2, testing::ext::TestSize.Level1) +{ + HttpRequestOptions requestOptions; + requestOptions.SetRequestTime("Fri, 20 May 2022 09:35:59 GMT"); + requestOptions.SetHeader("cache-control", "min-fresh=20"); + + HttpResponse response; + response.SetResponseCode(200); + response.SetResponseTime("Fri, 20 May 2022 09:36:30 GMT"); + + auto &responseHeader = const_cast &>(response.GetHeader()); + responseHeader["cache-control"] = "no-cache"; + responseHeader["expires"] = "Sat, 04 Jun 2022 09:56:21 GMT"; + responseHeader["date"] = "Fri, 20 May 2022 09:37:29 GMT"; + + HttpCacheStrategy cacheStrategy(requestOptions); + CacheStatus status = cacheStrategy.RunStrategy(response); + NETSTACK_LOGI("status = %{public}d", status); + + EXPECT_EQ(status, STALE); +} \ No newline at end of file -- Gitee From 599f962d45b26c5e368cbe2ebead6990f6c9f3a2 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:04:09 +0800 Subject: [PATCH 02/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 3 ++- test/unittest/http/cache/CMakeLists.txt | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index d884aaa8a..9ee3e4d4e 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -30,9 +30,10 @@ ohos_unittest("http_cache_unittest") { module_out_path = "netstack/http_cache_unittest" include_dirs = [ + "$NETSTACK_NAPI_ROOT/http/cache/cache_constant/include", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/include", - "$NETSTACK_NAPI_ROOT/http/options/include", "$NETSTACK_NAPI_ROOT/http/constant/include", + "$NETSTACK_NAPI_ROOT/http/options/include", ] include_dirs += utils_include diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt index 946185b4b..39a3a91fd 100644 --- a/test/unittest/http/cache/CMakeLists.txt +++ b/test/unittest/http/cache/CMakeLists.txt @@ -1,4 +1,5 @@ include_directories(../../../../frameworks/js/napi/http/cache/cache_strategy/include) +include_directories(../../../../frameworks/js/napi/http/cache/cache_constant/include) include_directories(../../../../frameworks/js/napi/http/options/include) include_directories(../../../../frameworks/js/napi/http/constant/include) include_directories(../../../../utils/common_utils/include) -- Gitee From 1c02c9f91c7a0106153a76a0f50004b9110f1b52 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:06:15 +0800 Subject: [PATCH 03/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 1 + test/unittest/http/cache/CMakeLists.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index 9ee3e4d4e..a5650e122 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -20,6 +20,7 @@ NETSTACK_NAPI_ROOT = "$SUBSYSTEM_DIR/netstack/frameworks/js/napi/" utils_include = [ "$SUBSYSTEM_DIR/netstack/utils/common_utils/include", "$SUBSYSTEM_DIR/netstack/utils/log/include", + "//third_party/curl/include" ] common_deps = [ "//utils/native/base:utils" ] diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt index 39a3a91fd..eec04a0e5 100644 --- a/test/unittest/http/cache/CMakeLists.txt +++ b/test/unittest/http/cache/CMakeLists.txt @@ -4,6 +4,7 @@ include_directories(../../../../frameworks/js/napi/http/options/include) include_directories(../../../../frameworks/js/napi/http/constant/include) include_directories(../../../../utils/common_utils/include) include_directories(../../../../utils/log/include) +include_directories(../../../../../../../third_party/curl) add_executable( cache_test -- Gitee From b6ef117063a9a152ff881a8469d38d258b07b847 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:06:59 +0800 Subject: [PATCH 04/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt index eec04a0e5..2c7b815aa 100644 --- a/test/unittest/http/cache/CMakeLists.txt +++ b/test/unittest/http/cache/CMakeLists.txt @@ -4,7 +4,7 @@ include_directories(../../../../frameworks/js/napi/http/options/include) include_directories(../../../../frameworks/js/napi/http/constant/include) include_directories(../../../../utils/common_utils/include) include_directories(../../../../utils/log/include) -include_directories(../../../../../../../third_party/curl) +include_directories(../../../../../../../third_party/curl/include) add_executable( cache_test -- Gitee From 466b337dca85d7c170f3fec6c29496652ecf8ead Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:10:03 +0800 Subject: [PATCH 05/17] http cache unittest Signed-off-by: maosiping --- frameworks/js/napi/http/options/include/http_response.h | 2 -- test/unittest/http/cache/cache_test.cpp | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/frameworks/js/napi/http/options/include/http_response.h b/frameworks/js/napi/http/options/include/http_response.h index 5a46bab40..bd32efd22 100644 --- a/frameworks/js/napi/http/options/include/http_response.h +++ b/frameworks/js/napi/http/options/include/http_response.h @@ -19,8 +19,6 @@ #include #include -#include "napi/native_api.h" - static constexpr const char *WARNING = "Warning"; namespace OHOS::NetStack { diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/cache_test.cpp index 803090b3e..883ad5dbc 100644 --- a/test/unittest/http/cache/cache_test.cpp +++ b/test/unittest/http/cache/cache_test.cpp @@ -729,7 +729,7 @@ HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition2, testing::ext:: CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); - EXPECT_EQ(status, TRANSPARENT); + EXPECT_EQ(status, DENY); } HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition3, testing::ext::TestSize.Level1) @@ -750,7 +750,7 @@ HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition3, testing::ext:: CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); - EXPECT_EQ(status, TRANSPARENT); + EXPECT_EQ(status, DENY); } HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition4, testing::ext::TestSize.Level1) -- Gitee From a5945ffab804c8a28f9b0b45c65c26d092e2ee0b Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:11:08 +0800 Subject: [PATCH 06/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/CMakeLists.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt index 2c7b815aa..b8621cba5 100644 --- a/test/unittest/http/cache/CMakeLists.txt +++ b/test/unittest/http/cache/CMakeLists.txt @@ -23,4 +23,5 @@ add_executable( target_link_libraries(cache_test gtestd) target_link_libraries(cache_test gmockd) target_link_libraries(cache_test gtest_maind) -target_link_libraries(cache_test gmock_maind) \ No newline at end of file +target_link_libraries(cache_test gmock_maind) +target_link_libraries(cache_test pthread) \ No newline at end of file -- Gitee From 887378d58fdd929888374022cca015f755f4648c Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:13:09 +0800 Subject: [PATCH 07/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/cache_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/cache_test.cpp index 883ad5dbc..21919ba19 100644 --- a/test/unittest/http/cache/cache_test.cpp +++ b/test/unittest/http/cache/cache_test.cpp @@ -708,7 +708,7 @@ HWTEST_F(HttpCacheStrategyTest, isCacheUsefulMaxStaleMillis, testing::ext::TestS CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); - EXPECT_EQ(status, FRESH); + EXPECT_EQ(status, STALE); } HWTEST_F(HttpCacheStrategyTest, isCacheableMovedTempIfCondition2, testing::ext::TestSize.Level1) -- Gitee From c71b74952fd8dcf103bd93628c96dcaa3fd4962d Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 16:42:07 +0800 Subject: [PATCH 08/17] http cache unittest Signed-off-by: maosiping --- .../http/cache/cache_constant/include/casche_constant.h | 2 +- .../http/cache/cache_strategy/src/http_cache_request.cpp | 4 ++-- .../http/cache/cache_strategy/src/http_cache_response.cpp | 4 ++-- .../http/cache/cache_strategy/src/http_cache_strategy.cpp | 6 +++--- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/frameworks/js/napi/http/cache/cache_constant/include/casche_constant.h b/frameworks/js/napi/http/cache/cache_constant/include/casche_constant.h index 19064b232..27f25e545 100644 --- a/frameworks/js/napi/http/cache/cache_constant/include/casche_constant.h +++ b/frameworks/js/napi/http/cache/cache_constant/include/casche_constant.h @@ -20,7 +20,7 @@ static constexpr const int DECIMAL = 10; static constexpr const char *SPLIT = ", "; static constexpr const char EQUAL = '='; -static constexpr const char *DENY = "no-cache"; +static constexpr const char *NO_CACHE = "no-cache"; static constexpr const char *NO_STORE = "no-store"; static constexpr const char *NO_TRANSFORM = "no-transform"; static constexpr const char *ONLY_IF_CACHED = "only-if-cached"; diff --git a/frameworks/js/napi/http/cache/cache_strategy/src/http_cache_request.cpp b/frameworks/js/napi/http/cache/cache_strategy/src/http_cache_request.cpp index f7a069250..6bb960104 100644 --- a/frameworks/js/napi/http/cache/cache_strategy/src/http_cache_request.cpp +++ b/frameworks/js/napi/http/cache/cache_strategy/src/http_cache_request.cpp @@ -26,7 +26,7 @@ void HttpCacheRequest::ParseCacheControl(const std::string &cacheControl) auto vec = CommonUtils::Split(cacheControl, SPLIT); for (const auto &str : vec) { - if (str == DENY) { + if (str == NO_CACHE) { noCache_ = true; } else if (str == NO_STORE) { noStore_ = true; @@ -61,7 +61,7 @@ void HttpCacheRequest::ParseRequestHeader(const std::map Date: Mon, 30 May 2022 16:45:41 +0800 Subject: [PATCH 09/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index a5650e122..bdfdf178d 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -38,6 +38,8 @@ ohos_unittest("http_cache_unittest") { ] include_dirs += utils_include + deps = common_deps + sources = [ "cache_test.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_request.cpp", -- Gitee From 3cf0a9bfcc7d90831e60b3029bea504a94e84b31 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:01:13 +0800 Subject: [PATCH 10/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index bdfdf178d..f6d2158fa 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -23,8 +23,6 @@ utils_include = [ "//third_party/curl/include" ] -common_deps = [ "//utils/native/base:utils" ] - common_external_deps = [ "hiviewdfx_hilog_native:libhilog" ] ohos_unittest("http_cache_unittest") { @@ -38,7 +36,7 @@ ohos_unittest("http_cache_unittest") { ] include_dirs += utils_include - deps = common_deps + external_deps = common_external_deps sources = [ "cache_test.cpp", -- Gitee From 477e836df07b855f033b3f170ae574c98b3f9ddd Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:04:06 +0800 Subject: [PATCH 11/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/cache_test.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/cache_test.cpp index 21919ba19..43cde58bd 100644 --- a/test/unittest/http/cache/cache_test.cpp +++ b/test/unittest/http/cache/cache_test.cpp @@ -227,8 +227,7 @@ HWTEST_F(HttpCacheStrategyTest, strategyMaxAgeBranch, testing::ext::TestSize.Lev CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); - // EXPECT_EQ(status, 0); - EXPECT_EQ(status, 1); + EXPECT_EQ(status, STALE); } HWTEST_F(HttpCacheStrategyTest, CompareNumber_1, testing::ext::TestSize.Level1) -- Gitee From ef044b6113327b920330893efa23af9c6c5c9aaf Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:07:32 +0800 Subject: [PATCH 12/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/cache_test.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/cache_test.cpp index 43cde58bd..5e05ae6c0 100644 --- a/test/unittest/http/cache/cache_test.cpp +++ b/test/unittest/http/cache/cache_test.cpp @@ -16,12 +16,12 @@ #include #include +#include "gtest/gtest.h" + #include "http_cache_request.h" #include "http_cache_response.h" -#include "netstack_log.h" - #include "http_cache_strategy.h" -#include "gtest/gtest.h" +#include "netstack_log.h" using namespace OHOS::NetStack; @@ -36,6 +36,7 @@ public: virtual void TearDown() {} }; +namespace { HWTEST_F(HttpCacheStrategyTest, cacheRequestNoCache, testing::ext::TestSize.Level1) { HttpRequestOptions requestOptions; @@ -793,4 +794,5 @@ HWTEST_F(HttpCacheStrategyTest, CompareNumber_6_2, testing::ext::TestSize.Level1 NETSTACK_LOGI("status = %{public}d", status); EXPECT_EQ(status, STALE); -} \ No newline at end of file +} +} // namespace \ No newline at end of file -- Gitee From 1d396d841be1e217680ca5f7720298128f6e87a4 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:09:47 +0800 Subject: [PATCH 13/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 2 +- test/unittest/http/cache/CMakeLists.txt | 2 +- .../http/cache/{cache_test.cpp => HttpCacheStrategyTest.cpp} | 0 3 files changed, 2 insertions(+), 2 deletions(-) rename test/unittest/http/cache/{cache_test.cpp => HttpCacheStrategyTest.cpp} (100%) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index f6d2158fa..e502a9f8c 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -39,7 +39,7 @@ ohos_unittest("http_cache_unittest") { external_deps = common_external_deps sources = [ - "cache_test.cpp", + "HttpCacheStrategyTest.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_request.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_response.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_strategy.cpp", diff --git a/test/unittest/http/cache/CMakeLists.txt b/test/unittest/http/cache/CMakeLists.txt index b8621cba5..95bb2996f 100644 --- a/test/unittest/http/cache/CMakeLists.txt +++ b/test/unittest/http/cache/CMakeLists.txt @@ -8,7 +8,7 @@ include_directories(../../../../../../../third_party/curl/include) add_executable( cache_test - cache_test.cpp + HttpCacheStrategyTest.cpp ../../../../frameworks/js/napi/http/options/src/http_response.cpp ../../../../frameworks/js/napi/http/options/src/http_request_options.cpp ../../../../frameworks/js/napi/http/constant/src/constant.cpp diff --git a/test/unittest/http/cache/cache_test.cpp b/test/unittest/http/cache/HttpCacheStrategyTest.cpp similarity index 100% rename from test/unittest/http/cache/cache_test.cpp rename to test/unittest/http/cache/HttpCacheStrategyTest.cpp -- Gitee From 5510a2b10a9be6f4c47826399c1a039b33ac3b1f Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:26:27 +0800 Subject: [PATCH 14/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index e502a9f8c..e42073eed 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -23,6 +23,8 @@ utils_include = [ "//third_party/curl/include" ] +common_deps = [ "//utils/native/base:utils" ] + common_external_deps = [ "hiviewdfx_hilog_native:libhilog" ] ohos_unittest("http_cache_unittest") { @@ -36,6 +38,8 @@ ohos_unittest("http_cache_unittest") { ] include_dirs += utils_include + deps = common_deps + external_deps = common_external_deps sources = [ @@ -47,7 +51,6 @@ ohos_unittest("http_cache_unittest") { "$NETSTACK_NAPI_ROOT/http/constant/src/constant.cpp", "$NETSTACK_NAPI_ROOT/http/options/src/http_request_options.cpp", "$NETSTACK_NAPI_ROOT/http/options/src/http_response.cpp", - "$SUBSYSTEM_DIR/netstack/test/napi/log/test_hilog.cpp", "$SUBSYSTEM_DIR/netstack/utils/common_utils/src/netstack_common_utils.cpp", ] -- Gitee From 6213117b639a40114a9667f373057db6019fcd09 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:29:59 +0800 Subject: [PATCH 15/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index e42073eed..9aec30e58 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -43,7 +43,6 @@ ohos_unittest("http_cache_unittest") { external_deps = common_external_deps sources = [ - "HttpCacheStrategyTest.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_request.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_response.cpp", "$NETSTACK_NAPI_ROOT/http/cache/cache_strategy/src/http_cache_strategy.cpp", @@ -52,6 +51,7 @@ ohos_unittest("http_cache_unittest") { "$NETSTACK_NAPI_ROOT/http/options/src/http_request_options.cpp", "$NETSTACK_NAPI_ROOT/http/options/src/http_response.cpp", "$SUBSYSTEM_DIR/netstack/utils/common_utils/src/netstack_common_utils.cpp", + "HttpCacheStrategyTest.cpp", ] part_name = "netstack" -- Gitee From 8b9c892c9c5a5b6839ccd5a257ed2df1d07b7de5 Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:34:28 +0800 Subject: [PATCH 16/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/BUILD.gn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/unittest/http/cache/BUILD.gn b/test/unittest/http/cache/BUILD.gn index 9aec30e58..d147ec4e7 100644 --- a/test/unittest/http/cache/BUILD.gn +++ b/test/unittest/http/cache/BUILD.gn @@ -20,7 +20,7 @@ NETSTACK_NAPI_ROOT = "$SUBSYSTEM_DIR/netstack/frameworks/js/napi/" utils_include = [ "$SUBSYSTEM_DIR/netstack/utils/common_utils/include", "$SUBSYSTEM_DIR/netstack/utils/log/include", - "//third_party/curl/include" + "//third_party/curl/include", ] common_deps = [ "//utils/native/base:utils" ] -- Gitee From cad3eecc92b96f6c585584009e06d6e9e01ccd2a Mon Sep 17 00:00:00 2001 From: maosiping Date: Mon, 30 May 2022 17:54:03 +0800 Subject: [PATCH 17/17] http cache unittest Signed-off-by: maosiping --- test/unittest/http/cache/HttpCacheStrategyTest.cpp | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/unittest/http/cache/HttpCacheStrategyTest.cpp b/test/unittest/http/cache/HttpCacheStrategyTest.cpp index 5e05ae6c0..9b070ee06 100644 --- a/test/unittest/http/cache/HttpCacheStrategyTest.cpp +++ b/test/unittest/http/cache/HttpCacheStrategyTest.cpp @@ -606,8 +606,6 @@ HWTEST_F(HttpCacheStrategyTest, headerNull, testing::ext::TestSize.Level1) response.SetResponseCode(200); response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); - auto &responseHeader = const_cast &>(response.GetHeader()); - HttpCacheStrategy cacheStrategy(requestOptions); CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); @@ -623,8 +621,6 @@ HWTEST_F(HttpCacheStrategyTest, requestTimeEmpty, testing::ext::TestSize.Level1) response.SetResponseCode(200); response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); - auto &responseHeader = const_cast &>(response.GetHeader()); - HttpCacheStrategy cacheStrategy(requestOptions); CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); @@ -641,8 +637,6 @@ HWTEST_F(HttpCacheStrategyTest, computeFreshnessLifetimeEnd, testing::ext::TestS response.SetResponseCode(200); response.SetResponseTime("Thur, 19 May 2022 08:21:59 GMT"); - auto &responseHeader = const_cast &>(response.GetHeader()); - HttpCacheStrategy cacheStrategy(requestOptions); CacheStatus status = cacheStrategy.RunStrategy(response); NETSTACK_LOGI("status = %{public}d", status); -- Gitee