| Index: components/data_usage/core/data_use_aggregator_unittest.cc
|
| diff --git a/components/data_usage/core/data_use_aggregator_unittest.cc b/components/data_usage/core/data_use_aggregator_unittest.cc
|
| index f0d5f44d67e5288ed7ac72a2242d239983da0c50..65909c874aea819741558647745de9891ca75b29 100644
|
| --- a/components/data_usage/core/data_use_aggregator_unittest.cc
|
| +++ b/components/data_usage/core/data_use_aggregator_unittest.cc
|
| @@ -15,6 +15,7 @@
|
| #include "base/message_loop/message_loop.h"
|
| #include "base/time/time.h"
|
| #include "components/data_usage/core/data_use.h"
|
| +#include "components/data_usage/core/data_use_amortizer.h"
|
| #include "components/data_usage/core/data_use_annotator.h"
|
| #include "net/base/load_timing_info.h"
|
| #include "net/base/network_change_notifier.h"
|
| @@ -38,8 +39,9 @@ base::TimeTicks GetRequestStart(const net::URLRequest& request) {
|
| // Test class that can set the network operator's MCCMNC.
|
| class TestDataUseAggregator : public DataUseAggregator {
|
| public:
|
| - TestDataUseAggregator(scoped_ptr<DataUseAnnotator> annotator)
|
| - : DataUseAggregator(annotator.Pass()) {}
|
| + TestDataUseAggregator(scoped_ptr<DataUseAnnotator> annotator,
|
| + scoped_ptr<DataUseAmortizer> amortizer)
|
| + : DataUseAggregator(annotator.Pass(), amortizer.Pass()) {}
|
|
|
| ~TestDataUseAggregator() override {}
|
|
|
| @@ -214,7 +216,9 @@ class DataUseAggregatorTest : public testing::Test {
|
| DataUseAggregatorTest()
|
| : fake_data_use_annotator_(new FakeDataUseAnnotator()),
|
| data_use_aggregator_(
|
| - scoped_ptr<DataUseAnnotator>(fake_data_use_annotator_)),
|
| + scoped_ptr<DataUseAnnotator>(fake_data_use_annotator_),
|
| + // TODO(sclittle): Add a test for a non-NULL DataUseAmortizer.
|
| + scoped_ptr<DataUseAmortizer>()),
|
| test_network_change_notifier_(&data_use_aggregator_),
|
| reporting_network_delegate_(&data_use_aggregator_,
|
| fake_data_use_annotator_,
|
| @@ -342,95 +346,6 @@ TEST_F(DataUseAggregatorTest, ReportDataUse) {
|
| EXPECT_EQ(bar_request->GetTotalReceivedBytes(), observed_bar_rx_bytes);
|
| }
|
|
|
| -TEST_F(DataUseAggregatorTest, ReportCombinedDataUse) {
|
| - // Set up the |foo_request|.
|
| - net::MockRead foo_reads[] = {
|
| - net::MockRead(net::SYNCHRONOUS, "HTTP/1.1 200 OK\r\n\r\n"),
|
| - net::MockRead(net::SYNCHRONOUS, "hello world"),
|
| - net::MockRead(net::SYNCHRONOUS, net::OK),
|
| - };
|
| - net::StaticSocketDataProvider foo_socket(foo_reads, arraysize(foo_reads),
|
| - nullptr, 0);
|
| - mock_socket_factory()->AddSocketDataProvider(&foo_socket);
|
| -
|
| - net::TestDelegate foo_delegate;
|
| - scoped_ptr<net::URLRequest> foo_request = context()->CreateRequest(
|
| - GURL("http://foo.com"), net::IDLE, &foo_delegate);
|
| - foo_request->set_first_party_for_cookies(GURL("http://foofirstparty.com"));
|
| -
|
| - // Set up the |bar_request|.
|
| - net::MockRead bar_reads[] = {
|
| - net::MockRead(net::SYNCHRONOUS, "HTTP/1.1 200 OK\r\n\r\n"),
|
| - net::MockRead(net::SYNCHRONOUS, "hello world"),
|
| - net::MockRead(net::SYNCHRONOUS, net::OK),
|
| - };
|
| - net::StaticSocketDataProvider bar_socket(bar_reads, arraysize(bar_reads),
|
| - nullptr, 0);
|
| - mock_socket_factory()->AddSocketDataProvider(&bar_socket);
|
| -
|
| - net::TestDelegate bar_delegate;
|
| - scoped_ptr<net::URLRequest> bar_request = context()->CreateRequest(
|
| - GURL("http://bar.com"), net::IDLE, &bar_delegate);
|
| - bar_request->set_first_party_for_cookies(GURL("http://barfirstparty.com"));
|
| -
|
| - // Set up the network delegate to assign tab IDs and connection types for each
|
| - // request.
|
| - const int32_t kFooTabId = 10;
|
| - const net::NetworkChangeNotifier::ConnectionType kFooConnectionType =
|
| - net::NetworkChangeNotifier::CONNECTION_2G;
|
| - const std::string kFooMccMnc = "foo_mcc_mnc";
|
| - const int32_t kBarTabId = 20;
|
| - const net::NetworkChangeNotifier::ConnectionType kBarConnectionType =
|
| - net::NetworkChangeNotifier::CONNECTION_WIFI;
|
| - const std::string kBarMccMnc = "bar_mcc_mnc";
|
| -
|
| - ReportingNetworkDelegate::DataUseContextMap data_use_context_map;
|
| - data_use_context_map[foo_request.get()] =
|
| - ReportingNetworkDelegate::DataUseContext(kFooTabId, kFooConnectionType,
|
| - kFooMccMnc);
|
| - data_use_context_map[bar_request.get()] =
|
| - ReportingNetworkDelegate::DataUseContext(kBarTabId, kBarConnectionType,
|
| - kBarMccMnc);
|
| - reporting_network_delegate()->set_data_use_context_map(data_use_context_map);
|
| -
|
| - // Run the requests.
|
| - foo_request->Start();
|
| - bar_request->Start();
|
| - base::MessageLoop::current()->RunUntilIdle();
|
| -
|
| - // The observer should have been notified once with a DataUse element for each
|
| - // request.
|
| - EXPECT_EQ(1, test_observer()->on_data_use_called_count());
|
| - EXPECT_EQ(static_cast<size_t>(2),
|
| - test_observer()->observed_data_use().size());
|
| -
|
| - // All of the |foo_request| DataUse should have been combined into a single
|
| - // DataUse element.
|
| - const DataUse& foo_data_use = test_observer()->observed_data_use().front();
|
| - EXPECT_EQ(GURL("http://foo.com"), foo_data_use.url);
|
| - EXPECT_EQ(GetRequestStart(*foo_request), foo_data_use.request_start);
|
| - EXPECT_EQ(GURL("http://foofirstparty.com"),
|
| - foo_data_use.first_party_for_cookies);
|
| - EXPECT_EQ(kFooTabId, foo_data_use.tab_id);
|
| - EXPECT_EQ(kFooConnectionType, foo_data_use.connection_type);
|
| - EXPECT_EQ(kFooMccMnc, foo_data_use.mcc_mnc);
|
| - EXPECT_EQ(foo_request->GetTotalSentBytes(), foo_data_use.tx_bytes);
|
| - EXPECT_EQ(foo_request->GetTotalReceivedBytes(), foo_data_use.rx_bytes);
|
| -
|
| - // All of the |bar_request| DataUse should have been combined into a single
|
| - // DataUse element.
|
| - const DataUse& bar_data_use = test_observer()->observed_data_use().back();
|
| - EXPECT_EQ(GURL("http://bar.com"), bar_data_use.url);
|
| - EXPECT_EQ(GetRequestStart(*bar_request), bar_data_use.request_start);
|
| - EXPECT_EQ(GURL("http://barfirstparty.com"),
|
| - bar_data_use.first_party_for_cookies);
|
| - EXPECT_EQ(kBarTabId, bar_data_use.tab_id);
|
| - EXPECT_EQ(kBarConnectionType, bar_data_use.connection_type);
|
| - EXPECT_EQ(kBarMccMnc, bar_data_use.mcc_mnc);
|
| - EXPECT_EQ(bar_request->GetTotalSentBytes(), bar_data_use.tx_bytes);
|
| - EXPECT_EQ(bar_request->GetTotalReceivedBytes(), bar_data_use.rx_bytes);
|
| -}
|
| -
|
| TEST_F(DataUseAggregatorTest, ReportOffTheRecordDataUse) {
|
| // Off the record data use should not be reported to observers.
|
| data_use_aggregator()->ReportOffTheRecordDataUse(1000, 1000);
|
|
|