traffic_stats_unittest.cc 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. // Copyright 2015 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 "net/android/traffic_stats.h"
  5. #include "base/run_loop.h"
  6. #include "base/test/task_environment.h"
  7. #include "net/test/embedded_test_server/embedded_test_server.h"
  8. #include "net/url_request/url_request_context.h"
  9. #include "net/url_request/url_request_context_builder.h"
  10. #include "net/url_request/url_request_test_util.h"
  11. #include "testing/gtest/include/gtest/gtest.h"
  12. #include "url/gurl.h"
  13. namespace net {
  14. namespace {
  15. TEST(TrafficStatsAndroidTest, BasicsTest) {
  16. base::test::TaskEnvironment task_environment(
  17. base::test::TaskEnvironment::MainThreadType::IO);
  18. EmbeddedTestServer embedded_test_server;
  19. embedded_test_server.ServeFilesFromDirectory(
  20. base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest")));
  21. ASSERT_TRUE(embedded_test_server.Start());
  22. int64_t tx_bytes_before_request = -1;
  23. int64_t rx_bytes_before_request = -1;
  24. EXPECT_TRUE(
  25. android::traffic_stats::GetTotalTxBytes(&tx_bytes_before_request));
  26. EXPECT_GE(tx_bytes_before_request, 0);
  27. EXPECT_TRUE(
  28. android::traffic_stats::GetTotalRxBytes(&rx_bytes_before_request));
  29. EXPECT_GE(rx_bytes_before_request, 0);
  30. TestDelegate test_delegate;
  31. auto context = CreateTestURLRequestContextBuilder()->Build();
  32. std::unique_ptr<URLRequest> request(
  33. context->CreateRequest(embedded_test_server.GetURL("/echo.html"),
  34. DEFAULT_PRIORITY, &test_delegate));
  35. request->Start();
  36. base::RunLoop().Run();
  37. // Bytes should increase because of the network traffic.
  38. int64_t tx_bytes_after_request = -1;
  39. int64_t rx_bytes_after_request = -1;
  40. EXPECT_TRUE(android::traffic_stats::GetTotalTxBytes(&tx_bytes_after_request));
  41. EXPECT_GT(tx_bytes_after_request, tx_bytes_before_request);
  42. EXPECT_TRUE(android::traffic_stats::GetTotalRxBytes(&rx_bytes_after_request));
  43. EXPECT_GT(rx_bytes_after_request, rx_bytes_before_request);
  44. }
  45. TEST(TrafficStatsAndroidTest, UIDBasicsTest) {
  46. base::test::TaskEnvironment task_environment(
  47. base::test::TaskEnvironment::MainThreadType::IO);
  48. EmbeddedTestServer embedded_test_server;
  49. embedded_test_server.ServeFilesFromDirectory(
  50. base::FilePath(FILE_PATH_LITERAL("net/data/url_request_unittest")));
  51. ASSERT_TRUE(embedded_test_server.Start());
  52. int64_t tx_bytes_before_request = -1;
  53. int64_t rx_bytes_before_request = -1;
  54. EXPECT_TRUE(
  55. android::traffic_stats::GetCurrentUidTxBytes(&tx_bytes_before_request));
  56. EXPECT_GE(tx_bytes_before_request, 0);
  57. EXPECT_TRUE(
  58. android::traffic_stats::GetCurrentUidRxBytes(&rx_bytes_before_request));
  59. EXPECT_GE(rx_bytes_before_request, 0);
  60. TestDelegate test_delegate;
  61. auto context = CreateTestURLRequestContextBuilder()->Build();
  62. std::unique_ptr<URLRequest> request(
  63. context->CreateRequest(embedded_test_server.GetURL("/echo.html"),
  64. DEFAULT_PRIORITY, &test_delegate));
  65. request->Start();
  66. base::RunLoop().Run();
  67. // Bytes should increase because of the network traffic.
  68. int64_t tx_bytes_after_request = -1;
  69. int64_t rx_bytes_after_request = -1;
  70. EXPECT_TRUE(
  71. android::traffic_stats::GetCurrentUidTxBytes(&tx_bytes_after_request));
  72. EXPECT_GT(tx_bytes_after_request, tx_bytes_before_request);
  73. EXPECT_TRUE(
  74. android::traffic_stats::GetCurrentUidRxBytes(&rx_bytes_after_request));
  75. EXPECT_GT(rx_bytes_after_request, rx_bytes_before_request);
  76. }
  77. } // namespace
  78. } // namespace net