proxy_info_unittest.cc 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Copyright 2019 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "components/winhttp/proxy_info.h"
  5. #include "testing/gtest/include/gtest/gtest.h"
  6. namespace winhttp {
  7. TEST(WinHttpProxyInfoTest, DefaultIsDirectConnection) {
  8. ProxyInfo proxy_info;
  9. EXPECT_FALSE(proxy_info.auto_detect);
  10. EXPECT_TRUE(proxy_info.auto_config_url.empty());
  11. EXPECT_TRUE(proxy_info.proxy.empty());
  12. EXPECT_TRUE(proxy_info.proxy_bypass.empty());
  13. }
  14. TEST(WinHttpProxyInfoTest, CanCopy) {
  15. ProxyInfo proxy_info(true, L"Foo", L"Bar", L"Baz");
  16. ProxyInfo proxy_info2(proxy_info);
  17. EXPECT_TRUE(proxy_info.auto_detect);
  18. EXPECT_EQ(proxy_info.auto_detect, proxy_info2.auto_detect);
  19. EXPECT_STREQ(L"Foo", proxy_info.auto_config_url.c_str());
  20. EXPECT_STREQ(L"Foo", proxy_info2.auto_config_url.c_str());
  21. EXPECT_STREQ(L"Bar", proxy_info.proxy.c_str());
  22. EXPECT_STREQ(L"Bar", proxy_info2.proxy.c_str());
  23. EXPECT_STREQ(L"Baz", proxy_info.proxy_bypass.c_str());
  24. EXPECT_STREQ(L"Baz", proxy_info2.proxy_bypass.c_str());
  25. }
  26. TEST(WinHttpProxyInfoTest, CanMove) {
  27. ProxyInfo proxy_info{true, L"Foo", L"Bar", L"Baz"};
  28. ProxyInfo proxy_info2 = std::move(proxy_info);
  29. EXPECT_TRUE(proxy_info2.auto_detect);
  30. EXPECT_STREQ(L"Foo", proxy_info2.auto_config_url.c_str());
  31. EXPECT_STREQ(L"Bar", proxy_info2.proxy.c_str());
  32. EXPECT_STREQ(L"Baz", proxy_info2.proxy_bypass.c_str());
  33. EXPECT_TRUE(proxy_info.auto_config_url.empty());
  34. EXPECT_TRUE(proxy_info.proxy.empty());
  35. EXPECT_TRUE(proxy_info.proxy_bypass.empty());
  36. }
  37. } // namespace winhttp