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
|
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/winhttp/network_fetcher.h"
#include "base/files/file.h"
#include "base/functional/bind.h"
#include "base/memory/scoped_refptr.h"
#include "base/run_loop.h"
#include "base/test/bind.h"
#include "base/test/task_environment.h"
#include "components/winhttp/scoped_hinternet.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "url/gurl.h"
namespace winhttp {
TEST(WinHttpNetworkFetcher, InvalidUrlPost) {
base::test::TaskEnvironment environment;
base::RunLoop run_loop;
winhttp::ScopedHInternet session_handle = CreateSessionHandle(
L"WinHttpNetworkFetcher.InvalidUrlPost", WINHTTP_ACCESS_TYPE_NO_PROXY);
auto network_fetcher = base::MakeRefCounted<NetworkFetcher>(
session_handle.get(), base::MakeRefCounted<ProxyConfiguration>());
network_fetcher->PostRequest(
/*url*/ GURL("file://afile"),
/*content_type*/ "text/plain",
/*post_data*/ "a request body",
/*post_additional_headers*/ {},
/*fetch_started_callback*/
base::BindOnce([](int response_code, int64_t content_length) {}),
/*fetch_progress_callback*/ base::BindRepeating([](int64_t current) {}),
/*fetch_complete_callback*/
base::BindLambdaForTesting(
[&run_loop](int response_code) { run_loop.Quit(); }));
run_loop.Run();
EXPECT_EQ(network_fetcher->GetNetError(), E_INVALIDARG);
}
TEST(WinHttpNetworkFetcher, InvalidUrlDownload) {
base::test::TaskEnvironment environment;
base::RunLoop run_loop;
winhttp::ScopedHInternet session_handle = CreateSessionHandle(
L"WinHttpNetworkFetcher.InvalidUrlPost", WINHTTP_ACCESS_TYPE_NO_PROXY);
auto network_fetcher = base::MakeRefCounted<NetworkFetcher>(
session_handle.get(), base::MakeRefCounted<ProxyConfiguration>());
network_fetcher->DownloadToFile(
/*url*/ GURL("file://afile"),
/*file_path*/ {},
/*fetch_started_callback*/
base::BindOnce([](int response_code, int64_t content_length) {}),
/*fetch_progress_callback*/ base::BindRepeating([](int64_t current) {}),
/*fetch_complete_callback*/
base::BindLambdaForTesting(
[&run_loop](int response_code) { run_loop.Quit(); }));
run_loop.Run();
EXPECT_EQ(network_fetcher->GetNetError(), E_INVALIDARG);
}
} // namespace winhttp
|