Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Side by Side Diff: chrome/browser/data_use_measurement/chrome_data_use_ascriber_unittest.cc

Issue 2507813003: Periodically remove old pending navigation entries.
Patch Set: Sync Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2016 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
5 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber.h"
6
7 #include <list>
8 #include <memory>
9 #include <string>
10
11 #include "base/message_loop/message_loop.h"
12 #include "base/run_loop.h"
13 #include "components/data_use_measurement/core/data_use_recorder.h"
14 #include "content/public/browser/resource_request_info.h"
15 #include "content/public/common/browser_side_navigation_policy.h"
16 #include "content/public/common/process_type.h"
17 #include "content/public/test/mock_resource_context.h"
18 #include "content/public/test/test_browser_thread_bundle.h"
19 #include "ipc/ipc_message.h"
20 #include "net/url_request/url_request_test_util.h"
21 #include "testing/gtest/include/gtest/gtest.h"
22
23 namespace {
24 int kRenderProcessId = 1;
25 int kRenderFrameId = 2;
26 int kRequestId = 3;
27 }
28
29 namespace data_use_measurement {
30
31 class ChromeDataUseAscriberTest : public testing::Test {
32 protected:
33 ChromeDataUseAscriberTest()
34 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP),
35 resource_context_(new content::MockResourceContext(&context_)) {}
36
37 void DeleteOldPendingNavigationEntries(base::Time now) {
38 ascriber_.DeleteOldPendingNavigationEntries(now);
39 }
40
41 std::list<std::unique_ptr<DataUseRecorder>>& recorders() {
42 return ascriber_.data_use_recorders_;
43 }
44
45 net::TestURLRequestContext* context() { return &context_; }
46
47 content::MockResourceContext* resource_context() {
48 return resource_context_.get();
49 }
50
51 ChromeDataUseAscriber* ascriber() { return &ascriber_; }
52
53 std::unique_ptr<net::URLRequest> CreateNewRequest(std::string url,
54 bool is_main_frame,
55 int request_id,
56 int render_process_id,
57 int render_frame_id) {
58 std::unique_ptr<net::URLRequest> request =
59 context()->CreateRequest(GURL(url), net::IDLE, nullptr);
60
61 content::ResourceRequestInfo::AllocateForTesting(
62 request.get(),
63 is_main_frame ? content::RESOURCE_TYPE_MAIN_FRAME :
64 content::RESOURCE_TYPE_SUB_RESOURCE,
65 resource_context(),
66 kRenderProcessId,
67 MSG_ROUTING_NONE,
68 kRenderFrameId,
69 is_main_frame,
70 false, // parent_is_main_frame
71 false, // allow_download
72 true, // is_async
73 false); // is_using_lofi
74
75 return request;
76 }
77
78 private:
79 content::TestBrowserThreadBundle thread_bundle_;
80 ChromeDataUseAscriber ascriber_;
81 net::TestURLRequestContext context_;
82 std::unique_ptr<content::MockResourceContext> resource_context_;
83 };
84
85 TEST_F(ChromeDataUseAscriberTest, DeleteOldPendingNavigationEntries) {
86 if (content::IsBrowserSideNavigationEnabled())
87 return;
88
89 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
90 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
91
92 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
93 ascriber()->OnBeforeUrlRequest(request.get());
94 EXPECT_EQ(2u, recorders().size());
95
96 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
97 DeleteOldPendingNavigationEntries(base::Time::Now() +
98 base::TimeDelta::FromSeconds(4));
99 EXPECT_EQ(1u, recorders().size());
100
101 DeleteOldPendingNavigationEntries(base::Time::Now() +
102 base::TimeDelta::FromSeconds(5));
103 EXPECT_EQ(0u, recorders().size());
104 }
105
106 } // namespace data_use_measurement
OLDNEW
« no previous file with comments | « chrome/browser/data_use_measurement/chrome_data_use_ascriber.cc ('k') | chrome/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698