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

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: minor fix 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 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 } 85 }
86 86
87 private: 87 private:
88 content::TestBrowserThreadBundle thread_bundle_; 88 content::TestBrowserThreadBundle thread_bundle_;
89 ChromeDataUseAscriber ascriber_; 89 ChromeDataUseAscriber ascriber_;
90 net::TestURLRequestContext context_; 90 net::TestURLRequestContext context_;
91 std::unique_ptr<content::MockResourceContext> resource_context_; 91 std::unique_ptr<content::MockResourceContext> resource_context_;
92 }; 92 };
93 93
94 TEST_F(ChromeDataUseAscriberTest, NoRecorderWithoutFrame) { 94 TEST_F(ChromeDataUseAscriberTest, NoRecorderWithoutFrame) {
95 if (content::IsBrowserSideNavigationEnabled())
96 return;
97
98 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 95 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
99 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 96 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
100 97
101 // Main frame request should not cause a recorder to be created, since the 98 // Main frame request causes a recorder to be created.
102 // frame does not exist.
103 ascriber()->OnBeforeUrlRequest(request.get()); 99 ascriber()->OnBeforeUrlRequest(request.get());
104 EXPECT_EQ(0u, recorders().size()); 100 EXPECT_EQ(1u, recorders().size());
105 101
106 // Frame is created. 102 // Frame is created.
107 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 103 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
108 EXPECT_EQ(1u, recorders().size()); 104 EXPECT_EQ(2u, recorders().size());
109 105
110 // Request should cause a recorder to be created. 106 // Same mainframe request should not cause another recorder to be created.
111 ascriber()->OnBeforeUrlRequest(request.get()); 107 ascriber()->OnBeforeUrlRequest(request.get());
112 EXPECT_EQ(2u, recorders().size()); 108 EXPECT_EQ(2u, recorders().size());
113 109
114 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 110 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
111 ascriber()->OnUrlRequestDestroyed(request.get());
112
113 EXPECT_EQ(1u, recorders().size());
115 } 114 }
116 115
117 TEST_F(ChromeDataUseAscriberTest, RenderFrameShownAndHidden) { 116 TEST_F(ChromeDataUseAscriberTest, RenderFrameShownAndHidden) {
118 if (content::IsBrowserSideNavigationEnabled())
119 return;
120
121 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 117 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
122 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 118 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
123 119
124 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 120 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
125 ascriber()->OnBeforeUrlRequest(request.get()); 121 ascriber()->OnBeforeUrlRequest(request.get());
126 ascriber()->ReadyToCommitMainFrameNavigation( 122 ascriber()->ReadyToCommitMainFrameNavigation(
127 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId, 123 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId,
128 kRenderFrameId); 124 kRenderFrameId);
129 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId, 125 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId,
130 GURL("http://test.com"), true, 126 GURL("http://test.com"), true,
131 kPageTransition); 127 kPageTransition);
132 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 128 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
133 129
134 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 130 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
135 131
136 // Hide the frame, and the visibility should be updated. 132 // Hide the frame, and the visibility should be updated.
137 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false); 133 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
138 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 134 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible());
139 135
140 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 136 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
141 } 137 }
142 138
143 TEST_F(ChromeDataUseAscriberTest, RenderFrameHiddenAndShown) { 139 TEST_F(ChromeDataUseAscriberTest, RenderFrameHiddenAndShown) {
144 if (content::IsBrowserSideNavigationEnabled())
145 return;
146
147 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 140 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
148 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 141 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
149 142
150 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 143 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
151 ascriber()->OnBeforeUrlRequest(request.get()); 144 ascriber()->OnBeforeUrlRequest(request.get());
152 ascriber()->ReadyToCommitMainFrameNavigation( 145 ascriber()->ReadyToCommitMainFrameNavigation(
153 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId, 146 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId,
154 kRenderFrameId); 147 kRenderFrameId);
155 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId, 148 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId,
156 GURL("http://test.com"), true, 149 GURL("http://test.com"), true,
157 kPageTransition); 150 kPageTransition);
158 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false); 151 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, false);
159 152
160 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 153 EXPECT_FALSE(ascriber()->GetDataUseRecorder(*request)->is_visible());
161 154
162 // Show the frame, and the visibility should be updated. 155 // Show the frame, and the visibility should be updated.
163 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 156 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
164 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 157 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
165 158
166 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 159 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
167 } 160 }
168 161
169 TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) { 162 TEST_F(ChromeDataUseAscriberTest, RenderFrameHostChanged) {
170 if (content::IsBrowserSideNavigationEnabled())
171 return;
172
173 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 163 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
174 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 164 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
175 165
176 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 166 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
177 ascriber()->OnBeforeUrlRequest(request.get()); 167 ascriber()->OnBeforeUrlRequest(request.get());
178 ascriber()->ReadyToCommitMainFrameNavigation( 168 ascriber()->ReadyToCommitMainFrameNavigation(
179 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId, 169 content::GlobalRequestID(kRenderProcessId, 0), kRenderProcessId,
180 kRenderFrameId); 170 kRenderFrameId);
181 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId, 171 ascriber()->DidFinishNavigation(kRenderProcessId, kRenderFrameId,
182 GURL("http://test.com"), true, 172 GURL("http://test.com"), true,
183 kPageTransition); 173 kPageTransition);
184 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true); 174 ascriber()->WasShownOrHidden(kRenderProcessId, kRenderFrameId, true);
185 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible()); 175 EXPECT_TRUE(ascriber()->GetDataUseRecorder(*request)->is_visible());
186 176
187 // Create a new render frame and swap it. 177 // Create a new render frame and swap it.
188 ascriber()->RenderFrameCreated(kRenderProcessId + 1, kRenderFrameId + 1, -1, 178 ascriber()->RenderFrameCreated(kRenderProcessId + 1, kRenderFrameId + 1, -1,
189 -1); 179 -1);
190 ascriber()->RenderFrameHostChanged(kRenderProcessId, kRenderFrameId, 180 ascriber()->RenderFrameHostChanged(kRenderProcessId, kRenderFrameId,
191 kRenderProcessId + 1, kRenderFrameId + 1); 181 kRenderProcessId + 1, kRenderFrameId + 1);
192 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 182 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
193 183
194 ascriber()->WasShownOrHidden(kRenderProcessId + 1, kRenderFrameId + 1, true); 184 ascriber()->WasShownOrHidden(kRenderProcessId + 1, kRenderFrameId + 1, true);
195 ascriber()->RenderFrameDeleted(kRenderProcessId + 1, kRenderFrameId + 1, -1, 185 ascriber()->RenderFrameDeleted(kRenderProcessId + 1, kRenderFrameId + 1, -1,
196 -1); 186 -1);
197 } 187 }
198 188
199 TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) { 189 TEST_F(ChromeDataUseAscriberTest, MainFrameNavigation) {
200 if (content::IsBrowserSideNavigationEnabled())
201 return;
202
203 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 190 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
204 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 191 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
205 192
206 // Mainframe is created. 193 // Mainframe is created.
207 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 194 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
208 EXPECT_EQ(1u, recorders().size()); 195 EXPECT_EQ(1u, recorders().size());
209 196
210 // Request should cause a recorder to be created. 197 // Request should cause a recorder to be created.
211 ascriber()->OnBeforeUrlRequest(request.get()); 198 ascriber()->OnBeforeUrlRequest(request.get());
212 EXPECT_EQ(2u, recorders().size()); 199 EXPECT_EQ(2u, recorders().size());
(...skipping 21 matching lines...) Expand all
234 EXPECT_EQ(DataUse::TrafficType::USER_TRAFFIC, 221 EXPECT_EQ(DataUse::TrafficType::USER_TRAFFIC,
235 recorder_entry.data_use().traffic_type()); 222 recorder_entry.data_use().traffic_type());
236 223
237 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 224 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
238 ascriber()->OnUrlRequestDestroyed(request.get()); 225 ascriber()->OnUrlRequestDestroyed(request.get());
239 226
240 EXPECT_EQ(0u, recorders().size()); 227 EXPECT_EQ(0u, recorders().size());
241 } 228 }
242 229
243 TEST_F(ChromeDataUseAscriberTest, FailedMainFrameNavigation) { 230 TEST_F(ChromeDataUseAscriberTest, FailedMainFrameNavigation) {
244 if (content::IsBrowserSideNavigationEnabled())
245 return;
246
247 std::unique_ptr<net::URLRequest> request = CreateNewRequest( 231 std::unique_ptr<net::URLRequest> request = CreateNewRequest(
248 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId); 232 "http://test.com", true, kRequestId, kRenderProcessId, kRenderFrameId);
249 233
250 // Mainframe is created. 234 // Mainframe is created.
251 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1); 235 ascriber()->RenderFrameCreated(kRenderProcessId, kRenderFrameId, -1, -1);
252 EXPECT_EQ(1u, recorders().size()); 236 EXPECT_EQ(1u, recorders().size());
253 237
254 // Request should cause a recorder to be created. 238 // Request should cause a recorder to be created.
255 ascriber()->OnBeforeUrlRequest(request.get()); 239 ascriber()->OnBeforeUrlRequest(request.get());
256 EXPECT_EQ(2u, recorders().size()); 240 EXPECT_EQ(2u, recorders().size());
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 EXPECT_CALL(mock_observer, OnPageLoadComplete(&recorder_entry.data_use())) 299 EXPECT_CALL(mock_observer, OnPageLoadComplete(&recorder_entry.data_use()))
316 .Times(1); 300 .Times(1);
317 301
318 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1); 302 ascriber()->RenderFrameDeleted(kRenderProcessId, kRenderFrameId, -1, -1);
319 ascriber()->OnUrlRequestDestroyed(request.get()); 303 ascriber()->OnUrlRequestDestroyed(request.get());
320 304
321 EXPECT_EQ(0u, recorders().size()); 305 EXPECT_EQ(0u, recorders().size());
322 } 306 }
323 307
324 } // namespace data_use_measurement 308 } // namespace data_use_measurement
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698