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

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

Issue 2874353002: PlzNavigate support in data use ascriber (Closed)
Patch Set: more fixes Created 3 years, 7 months 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
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber.h" 5 #include "chrome/browser/data_use_measurement/chrome_data_use_ascriber.h"
6 6
7 #include <list> 7 #include <list>
8 #include <memory> 8 #include <memory>
9 9
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
70 } 70 }
71 71
72 private: 72 private:
73 content::TestBrowserThreadBundle thread_bundle_; 73 content::TestBrowserThreadBundle thread_bundle_;
74 ChromeDataUseAscriber ascriber_; 74 ChromeDataUseAscriber ascriber_;
75 net::TestURLRequestContext context_; 75 net::TestURLRequestContext context_;
76 std::unique_ptr<content::MockResourceContext> resource_context_; 76 std::unique_ptr<content::MockResourceContext> resource_context_;
77 }; 77 };
78 78
79 TEST_F(ChromeDataUseAscriberTest, NoRecorderWithoutFrame) { 79 TEST_F(ChromeDataUseAscriberTest, NoRecorderWithoutFrame) {
80 if (content::IsBrowserSideNavigationEnabled())
81 return;
82
83 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 80 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
84 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 81 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
85 82
86 // Main frame request should not cause a recorder to be created, since the 83 // Main frame request causes a recorder to be created.
87 // frame does not exist.
88 ascriber()->OnBeforeUrlRequest(request.get()); 84 ascriber()->OnBeforeUrlRequest(request.get());
89 EXPECT_EQ(0u, recorders().size()); 85 EXPECT_EQ(1u, recorders().size());
90 86
91 // Frame is created. 87 // Frame is created.
92 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 88 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
93 EXPECT_EQ(1u, recorders().size()); 89 EXPECT_EQ(2u, recorders().size());
94 90
95 // Request should cause a recorder to be created. 91 // Same mainframe request should not cause another recorder to be created.
96 ascriber()->OnBeforeUrlRequest(request.get()); 92 ascriber()->OnBeforeUrlRequest(request.get());
97 EXPECT_EQ(2u, recorders().size()); 93 EXPECT_EQ(2u, recorders().size());
98 94
99 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 95 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
96 ascriber()->OnUrlRequestDestroyed(request.get());
97
98 EXPECT_EQ(1u, recorders().size());
100 } 99 }
101 100
102 TEST_F(ChromeDataUseAscriberTest, RenderFrameShownAndHidden) { 101 TEST_F(ChromeDataUseAscriberTest, RenderFrameShownAndHidden) {
103 if (content::IsBrowserSideNavigationEnabled())
104 return;
105
106 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 102 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
107 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 103 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
108 104
109 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 105 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
110 ascriber()->OnBeforeUrlRequest(request.get()); 106 ascriber()->OnBeforeUrlRequest(request.get());
111 ascriber()->ReadyToCommitMainFrameNavigation( 107 ascriber()->ReadyToCommitMainFrameNavigation(
112 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0), 108 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
113 kRenderProcessId, kRenderFrameId, true, (void*)request.get()); 109 kRenderProcessId, kRenderFrameId, true, (void*)request.get());
114 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 110 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
115 111
116 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 112 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
117 113
118 // Hide the frame, and the visibility should be updated. 114 // Hide the frame, and the visibility should be updated.
119 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false); 115 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
120 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 116 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible());
121 117
122 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 118 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
123 } 119 }
124 120
125 TEST_F(ChromeDataUseAscriberTest, RenderFrameHiddenAndShown) { 121 TEST_F(ChromeDataUseAscriberTest, RenderFrameHiddenAndShown) {
126 if (content::IsBrowserSideNavigationEnabled())
127 return;
128
129 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 122 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
130 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 123 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
131 124
132 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 125 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
133 ascriber()->OnBeforeUrlRequest(request.get()); 126 ascriber()->OnBeforeUrlRequest(request.get());
134 ascriber()->ReadyToCommitMainFrameNavigation( 127 ascriber()->ReadyToCommitMainFrameNavigation(
135 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0), 128 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
136 kRenderProcessId, kRenderFrameId, true, (void*)request.get()); 129 kRenderProcessId, kRenderFrameId, true, (void*)request.get());
137 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false); 130 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
138 131
139 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 132 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible());
140 133
141 // Show the frame, and the visibility should be updated. 134 // Show the frame, and the visibility should be updated.
142 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 135 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
143 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 136 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
144 137
145 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 138 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
146 } 139 }
147 140
148 TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) { 141 TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) {
149 if (content::IsBrowserSideNavigationEnabled())
150 return;
151
152 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 142 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
153 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 143 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
154 144
155 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 145 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
156 ascriber()->OnBeforeUrlRequest(request.get()); 146 ascriber()->OnBeforeUrlRequest(request.get());
157 ascriber()->ReadyToCommitMainFrameNavigation( 147 ascriber()->ReadyToCommitMainFrameNavigation(
158 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0), 148 GURL("http://test.com"), content::GlobalRequestID(kRenderProcessId, 0),
159 kRenderProcessId, kRenderFrameId, true, (void*)request.get()); 149 kRenderProcessId, kRenderFrameId, true, (void*)request.get());
160 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 150 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
161 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 151 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
162 152
163 // Create a new render frame and swap it. 153 // Create a new render frame and swap it.
164 ascriber()->RenderFrameCreated(kRenderProcessId + 1, kRenderFrameId + 1, -1, 154 ascriber()->RenderFrameCreated(kRenderProcessId + 1, kRenderFrameId + 1, -1,
165 -1); 155 -1);
166 ascriber()->RenderFrameHostChanged(kRenderProcessId, kRenderFrameId, 156 ascriber()->RenderFrameHostChanged(kRenderProcessId, kRenderFrameId,
167 kRenderProcessId + 1, kRenderFrameId + 1); 157 kRenderProcessId + 1, kRenderFrameId + 1);
168 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 158 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
169 159
170 ascriber()->WasShownOrHidden(kRenderProcessId + 1, kRenderFrameId + 1, true); 160 ascriber()->WasShownOrHidden(kRenderProcessId + 1, kRenderFrameId + 1, true);
171 ascriber()->RenderFrameDeleted(kRenderProcessId + 1, kRenderFrameId + 1, -1, 161 ascriber()->RenderFrameDeleted(kRenderProcessId + 1, kRenderFrameId + 1, -1,
172 -1); 162 -1);
173 } 163 }
174 164
175 TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) { 165 TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) {
176 if (content::IsBrowserSideNavigationEnabled())
177 return;
178
179 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 166 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
180 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 167 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
181 168
182 // Mainframe is created. 169 // Mainframe is created.
183 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 170 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
184 EXPECT_EQ(1u, recorders().size()); 171 EXPECT_EQ(1u, recorders().size());
185 172
186 // Request should cause a recorder to be created. 173 // Request should cause a recorder to be created.
187 ascriber()->OnBeforeUrlRequest(request.get()); 174 ascriber()->OnBeforeUrlRequest(request.get());
188 EXPECT_EQ(2u, recorders().size()); 175 EXPECT_EQ(2u, recorders().size());
(...skipping 19 matching lines...) Expand all
208 EXPECT_EQ(DataUse::TrafficType::USER_TRAFFIC, 195 EXPECT_EQ(DataUse::TrafficType::USER_TRAFFIC,
209 recorder_entry.data_use().traffic_type()); 196 recorder_entry.data_use().traffic_type());
210 197
211 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 198 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
212 ascriber()->OnUrlRequestDestroyed(request.get()); 199 ascriber()->OnUrlRequestDestroyed(request.get());
213 200
214 EXPECT_EQ(0u, recorders().size()); 201 EXPECT_EQ(0u, recorders().size());
215 } 202 }
216 203
217 TEST_F(ChromeDataUseAscriberTest, FailedMainFrameNavigation) { 204 TEST_F(ChromeDataUseAscriberTest, FailedMainFrameNavigation) {
218 if (content::IsBrowserSideNavigationEnabled())
219 return;
220
221 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 205 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
222 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 206 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
223 207
224 // Mainframe is created. 208 // Mainframe is created.
225 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 209 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
226 EXPECT_EQ(1u, recorders().size()); 210 EXPECT_EQ(1u, recorders().size());
227 211
228 // Request should cause a recorder to be created. 212 // Request should cause a recorder to be created.
229 ascriber()->OnBeforeUrlRequest(request.get()); 213 ascriber()->OnBeforeUrlRequest(request.get());
230 EXPECT_EQ(2u, recorders().size()); 214 EXPECT_EQ(2u, recorders().size());
231 215
232 // Failed request will remove the pending entry. 216 // Failed request will remove the pending entry.
233 request->Cancel(); 217 request->Cancel();
234 ascriber()->OnUrlRequestCompleted(*request, false); 218 ascriber()->OnUrlRequestCompleted(*request, false);
235 219
236 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 220 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
237 ascriber()->OnUrlRequestDestroyed(request.get()); 221 ascriber()->OnUrlRequestDestroyed(request.get());
238 222
239 EXPECT_EQ(0u, recorders().size()); 223 EXPECT_EQ(0u, recorders().size());
240 } 224 }
241 225
242 } // namespace data_use_measurement 226 } // namespace data_use_measurement
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698