OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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/android/data_usage/data_use_ui_tab_model.h" | 5 #include "chrome/browser/android/data_usage/data_use_ui_tab_model.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include "base/macros.h" | 10 #include "base/macros.h" |
(...skipping 12 matching lines...) Expand all Loading... |
23 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
24 #include "ui/base/page_transition_types.h" | 24 #include "ui/base/page_transition_types.h" |
25 #include "url/gurl.h" | 25 #include "url/gurl.h" |
26 | 26 |
27 namespace chrome { | 27 namespace chrome { |
28 | 28 |
29 namespace android { | 29 namespace android { |
30 | 30 |
31 namespace { | 31 namespace { |
32 | 32 |
| 33 const char kFooLabel[] = "foo_label"; |
| 34 const char kFooPackage[] = "com.foo"; |
| 35 |
33 class TestDataUseTabModel : public DataUseTabModel { | 36 class TestDataUseTabModel : public DataUseTabModel { |
34 public: | 37 public: |
35 TestDataUseTabModel() {} | 38 TestDataUseTabModel() {} |
36 ~TestDataUseTabModel() override {} | 39 ~TestDataUseTabModel() override {} |
37 | 40 |
38 using DataUseTabModel::NotifyObserversOfTrackingStarting; | 41 using DataUseTabModel::NotifyObserversOfTrackingStarting; |
39 using DataUseTabModel::NotifyObserversOfTrackingEnding; | 42 using DataUseTabModel::NotifyObserversOfTrackingEnding; |
40 }; | 43 }; |
41 | 44 |
42 class DataUseUITabModelTest : public testing::Test { | 45 class DataUseUITabModelTest : public testing::Test { |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
89 scoped_ptr<data_usage::DataUseAggregator> data_use_aggregator_; | 92 scoped_ptr<data_usage::DataUseAggregator> data_use_aggregator_; |
90 scoped_ptr<ExternalDataUseObserver> external_data_use_observer_; | 93 scoped_ptr<ExternalDataUseObserver> external_data_use_observer_; |
91 scoped_ptr<TestDataUseTabModel> data_use_tab_model_; | 94 scoped_ptr<TestDataUseTabModel> data_use_tab_model_; |
92 }; | 95 }; |
93 | 96 |
94 } // namespace | 97 } // namespace |
95 | 98 |
96 // Tests that DataUseTabModel is notified of tab closure and navigation events, | 99 // Tests that DataUseTabModel is notified of tab closure and navigation events, |
97 // and DataUseTabModel notifies DataUseUITabModel. | 100 // and DataUseTabModel notifies DataUseUITabModel. |
98 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) { | 101 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) { |
99 const char kFooLabel[] = "foo_label"; | |
100 const char kFooPackage[] = "com.foo"; | |
101 | |
102 std::vector<std::string> url_regexes; | 102 std::vector<std::string> url_regexes; |
103 url_regexes.push_back( | 103 url_regexes.push_back( |
104 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); | 104 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); |
105 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), | 105 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), |
106 url_regexes, | 106 url_regexes, |
107 std::vector<std::string>(url_regexes.size(), kFooLabel)); | 107 std::vector<std::string>(url_regexes.size(), kFooLabel)); |
108 | 108 |
109 const struct { | 109 const struct { |
110 ui::PageTransition transition_type; | 110 ui::PageTransition transition_type; |
111 std::string expected_label; | 111 std::string expected_label; |
(...skipping 10 matching lines...) Expand all Loading... |
122 }; | 122 }; |
123 | 123 |
124 SessionID::id_type foo_tab_id = 100; | 124 SessionID::id_type foo_tab_id = 100; |
125 | 125 |
126 for (size_t i = 0; i < arraysize(tests); ++i) { | 126 for (size_t i = 0; i < arraysize(tests); ++i) { |
127 // Start a new tab. | 127 // Start a new tab. |
128 ++foo_tab_id; | 128 ++foo_tab_id; |
129 data_use_ui_tab_model()->ReportBrowserNavigation( | 129 data_use_ui_tab_model()->ReportBrowserNavigation( |
130 GURL("https://www.foo.com/#q=abc"), tests[i].transition_type, | 130 GURL("https://www.foo.com/#q=abc"), tests[i].transition_type, |
131 foo_tab_id); | 131 foo_tab_id); |
132 // Wait for DataUseUITabModel to notify DataUseTabModel, which should notify | |
133 // DataUseUITabModel back. | |
134 base::RunLoop().RunUntilIdle(); | |
135 | 132 |
136 // |data_use_ui_tab_model| should receive callback about starting of | 133 // |data_use_ui_tab_model| should receive callback about starting of |
137 // tracking of data usage for |foo_tab_id|. | 134 // tracking of data usage for |foo_tab_id|. |
138 EXPECT_EQ(!tests[i].expected_label.empty(), | 135 EXPECT_EQ(!tests[i].expected_label.empty(), |
139 data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | 136 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted( |
| 137 foo_tab_id)) |
140 << i; | 138 << i; |
141 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | 139 EXPECT_FALSE(data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted( |
| 140 foo_tab_id)) |
142 << i; | 141 << i; |
143 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | 142 EXPECT_FALSE( |
| 143 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(foo_tab_id)) |
144 << i; | 144 << i; |
145 | 145 |
146 std::string got_label; | 146 std::string got_label; |
147 data_use_tab_model()->GetLabelForTabAtTime( | 147 data_use_tab_model()->GetLabelForTabAtTime( |
148 foo_tab_id, base::TimeTicks::Now(), &got_label); | 148 foo_tab_id, base::TimeTicks::Now(), &got_label); |
149 EXPECT_EQ(tests[i].expected_label, got_label) << i; | 149 EXPECT_EQ(tests[i].expected_label, got_label) << i; |
150 | 150 |
151 // Report closure of tab. | 151 // Report closure of tab. |
152 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id); | 152 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id); |
153 base::RunLoop().RunUntilIdle(); | |
154 | 153 |
155 // DataUse object should not be labeled. | 154 // DataUse object should not be labeled. |
156 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); | 155 EXPECT_FALSE( |
| 156 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(foo_tab_id)); |
157 data_use_tab_model()->GetLabelForTabAtTime( | 157 data_use_tab_model()->GetLabelForTabAtTime( |
158 foo_tab_id, base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10), | 158 foo_tab_id, base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10), |
159 &got_label); | 159 &got_label); |
160 EXPECT_EQ(std::string(), got_label) << i; | 160 EXPECT_EQ(std::string(), got_label) << i; |
161 } | 161 } |
162 | 162 |
163 const SessionID::id_type bar_tab_id = foo_tab_id + 1; | 163 const SessionID::id_type bar_tab_id = foo_tab_id + 1; |
164 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 164 EXPECT_FALSE( |
| 165 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(bar_tab_id)); |
165 data_use_ui_tab_model()->ReportCustomTabInitialNavigation( | 166 data_use_ui_tab_model()->ReportCustomTabInitialNavigation( |
166 bar_tab_id, std::string(), kFooPackage); | 167 bar_tab_id, kFooPackage, std::string()); |
167 base::RunLoop().RunUntilIdle(); | |
168 | 168 |
169 // |data_use_ui_tab_model| should receive callback about starting of | 169 // |data_use_ui_tab_model| should receive callback about starting of |
170 // tracking of data usage for |bar_tab_id|. | 170 // tracking of data usage for |bar_tab_id|. |
171 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 171 EXPECT_TRUE( |
172 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 172 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(bar_tab_id)); |
173 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); | 173 EXPECT_FALSE( |
| 174 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(bar_tab_id)); |
| 175 EXPECT_FALSE( |
| 176 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(bar_tab_id)); |
174 | 177 |
175 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id); | 178 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id); |
176 base::RunLoop().RunUntilIdle(); | 179 EXPECT_FALSE( |
177 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); | 180 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(bar_tab_id)); |
178 } | 181 } |
179 | 182 |
180 // Tests if the Entrance/Exit UI state is tracked correctly. | 183 // Tests if the Entrance/Exit UI state is tracked correctly. |
181 TEST_F(DataUseUITabModelTest, EntranceExitState) { | 184 TEST_F(DataUseUITabModelTest, EntranceExitState) { |
182 const SessionID::id_type kFooTabId = 1; | 185 const SessionID::id_type kFooTabId = 1; |
183 const SessionID::id_type kBarTabId = 2; | 186 const SessionID::id_type kBarTabId = 2; |
184 const SessionID::id_type kBazTabId = 3; | 187 const SessionID::id_type kBazTabId = 3; |
185 | 188 |
186 // HasDataUseTrackingStarted should return true only once. | 189 // CheckAndResetDataUseTrackingStarted should return true only once. |
187 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 190 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
188 base::RunLoop().RunUntilIdle(); | 191 EXPECT_TRUE( |
189 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 192 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
190 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 193 EXPECT_FALSE( |
191 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 194 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
| 195 EXPECT_FALSE( |
| 196 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kFooTabId)); |
192 | 197 |
193 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 198 EXPECT_FALSE( |
194 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 199 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kBarTabId)); |
| 200 EXPECT_FALSE( |
| 201 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kBarTabId)); |
195 | 202 |
196 // HasDataUseTrackingEnded should return true only once. | 203 // CheckAndResetDataUseTrackingEnded should return true only once. |
197 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); | 204 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); |
198 base::RunLoop().RunUntilIdle(); | 205 EXPECT_FALSE( |
199 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 206 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
200 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 207 EXPECT_TRUE( |
201 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 208 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kFooTabId)); |
202 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 209 EXPECT_FALSE( |
| 210 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kFooTabId)); |
| 211 EXPECT_FALSE( |
| 212 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
203 | 213 |
204 // The tab enters the tracking state again. | 214 // The tab enters the tracking state again. |
205 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 215 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
206 base::RunLoop().RunUntilIdle(); | 216 EXPECT_TRUE( |
207 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 217 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
208 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 218 EXPECT_FALSE( |
| 219 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
209 | 220 |
210 // The tab exits the tracking state. | 221 // The tab exits the tracking state. |
211 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); | 222 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); |
212 base::RunLoop().RunUntilIdle(); | 223 EXPECT_FALSE( |
213 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 224 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
214 | 225 |
215 // The tab enters the tracking state again. | 226 // The tab enters the tracking state again. |
216 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 227 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
217 base::RunLoop().RunUntilIdle(); | |
218 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 228 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
219 base::RunLoop().RunUntilIdle(); | 229 EXPECT_TRUE( |
220 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 230 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
221 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 231 EXPECT_FALSE( |
| 232 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kFooTabId)); |
222 | 233 |
223 // ShowExit should return true only once. | 234 // ShowExit should return true only once. |
224 data_use_tab_model()->NotifyObserversOfTrackingEnding(kBarTabId); | 235 data_use_tab_model()->NotifyObserversOfTrackingEnding(kBarTabId); |
225 base::RunLoop().RunUntilIdle(); | 236 EXPECT_FALSE( |
226 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 237 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kBarTabId)); |
227 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 238 EXPECT_TRUE( |
228 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 239 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kBarTabId)); |
229 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 240 EXPECT_FALSE( |
| 241 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kBarTabId)); |
| 242 EXPECT_FALSE( |
| 243 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kBarTabId)); |
230 | 244 |
231 data_use_ui_tab_model()->ReportTabClosure(kFooTabId); | 245 data_use_ui_tab_model()->ReportTabClosure(kFooTabId); |
232 data_use_ui_tab_model()->ReportTabClosure(kBarTabId); | 246 data_use_ui_tab_model()->ReportTabClosure(kBarTabId); |
233 | 247 |
234 // HasDataUseTrackingStarted/Ended should return false for closed tabs. | 248 // CheckAndResetDataUseTrackingStarted/Ended should return false for closed |
| 249 // tabs. |
235 data_use_tab_model()->NotifyObserversOfTrackingStarting(kBazTabId); | 250 data_use_tab_model()->NotifyObserversOfTrackingStarting(kBazTabId); |
236 base::RunLoop().RunUntilIdle(); | |
237 data_use_ui_tab_model()->ReportTabClosure(kBazTabId); | 251 data_use_ui_tab_model()->ReportTabClosure(kBazTabId); |
238 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBazTabId)); | 252 EXPECT_FALSE( |
239 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBazTabId)); | 253 data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted(kBazTabId)); |
| 254 EXPECT_FALSE( |
| 255 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(kBazTabId)); |
| 256 } |
| 257 |
| 258 // Tests if the Entrance/Exit UI state is tracked correctly. |
| 259 TEST_F(DataUseUITabModelTest, EntraceExitStateForDialog) { |
| 260 const SessionID::id_type kFooTabId = 1; |
| 261 |
| 262 std::vector<std::string> url_regexes; |
| 263 url_regexes.push_back( |
| 264 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); |
| 265 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), |
| 266 url_regexes, |
| 267 std::vector<std::string>(url_regexes.size(), kFooLabel)); |
| 268 |
| 269 SessionID::id_type foo_tab_id = kFooTabId; |
| 270 |
| 271 const struct { |
| 272 // True if a dialog box was shown to the user. It may not be shown if the |
| 273 // user has previously selected the option to opt out. |
| 274 bool continue_dialog_box_shown; |
| 275 bool user_proceeded_with_navigation; |
| 276 } tests[] = { |
| 277 {false, false}, {true, true}, {true, false}, |
| 278 }; |
| 279 |
| 280 for (size_t i = 0; i < arraysize(tests); ++i) { |
| 281 // Start a new tab. |
| 282 ++foo_tab_id; |
| 283 data_use_ui_tab_model()->ReportBrowserNavigation( |
| 284 GURL("https://www.foo.com/#q=abc"), ui::PAGE_TRANSITION_GENERATED, |
| 285 foo_tab_id); |
| 286 |
| 287 // |data_use_ui_tab_model| should receive callback about starting of |
| 288 // tracking of data usage for |foo_tab_id|. |
| 289 EXPECT_TRUE(data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted( |
| 290 foo_tab_id)) |
| 291 << i; |
| 292 EXPECT_FALSE(data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted( |
| 293 foo_tab_id)) |
| 294 << i; |
| 295 EXPECT_FALSE( |
| 296 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(foo_tab_id)) |
| 297 << i; |
| 298 |
| 299 std::string got_label; |
| 300 data_use_tab_model()->GetLabelForTabAtTime( |
| 301 foo_tab_id, base::TimeTicks::Now(), &got_label); |
| 302 EXPECT_EQ(kFooLabel, got_label) << i; |
| 303 |
| 304 // Tab enters non-tracking state. |
| 305 data_use_ui_tab_model()->ReportBrowserNavigation( |
| 306 GURL("https://www.bar.com/#q=abc"), |
| 307 ui::PageTransition::PAGE_TRANSITION_TYPED, foo_tab_id); |
| 308 |
| 309 EXPECT_TRUE( |
| 310 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(foo_tab_id)) |
| 311 << i; |
| 312 EXPECT_FALSE( |
| 313 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded(foo_tab_id)) |
| 314 << i; |
| 315 |
| 316 // Tab enters tracking state. |
| 317 data_use_ui_tab_model()->ReportBrowserNavigation( |
| 318 GURL("https://www.foo.com/#q=abc"), ui::PAGE_TRANSITION_GENERATED, |
| 319 foo_tab_id); |
| 320 |
| 321 EXPECT_TRUE(data_use_ui_tab_model()->CheckAndResetDataUseTrackingStarted( |
| 322 foo_tab_id)) |
| 323 << i; |
| 324 |
| 325 // Tab may enter non-tracking state. |
| 326 EXPECT_TRUE(data_use_ui_tab_model()->WouldDataUseTrackingEnd( |
| 327 "https://www.bar.com/#q=abc", ui::PageTransition::PAGE_TRANSITION_TYPED, |
| 328 foo_tab_id)); |
| 329 if (tests[i].continue_dialog_box_shown && |
| 330 tests[i].user_proceeded_with_navigation) { |
| 331 data_use_ui_tab_model()->UserClickedContinueOnDialogBox(foo_tab_id); |
| 332 } |
| 333 |
| 334 if (tests[i].user_proceeded_with_navigation) { |
| 335 data_use_ui_tab_model()->ReportBrowserNavigation( |
| 336 GURL("https://www.bar.com/#q=abc"), |
| 337 ui::PageTransition::PAGE_TRANSITION_TYPED, foo_tab_id); |
| 338 } |
| 339 |
| 340 const std::string expected_label = |
| 341 tests[i].user_proceeded_with_navigation ? "" : kFooLabel; |
| 342 data_use_tab_model()->GetLabelForTabAtTime( |
| 343 foo_tab_id, base::TimeTicks::Now(), &got_label); |
| 344 EXPECT_EQ(expected_label, got_label) << i; |
| 345 |
| 346 if (tests[i].user_proceeded_with_navigation) { |
| 347 // No UI element should be shown afterwards if the dialog box was shown |
| 348 // before. |
| 349 EXPECT_NE(tests[i].continue_dialog_box_shown, |
| 350 data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded( |
| 351 foo_tab_id)) |
| 352 << i; |
| 353 } else { |
| 354 EXPECT_FALSE(data_use_ui_tab_model()->CheckAndResetDataUseTrackingEnded( |
| 355 foo_tab_id)) |
| 356 << i; |
| 357 } |
| 358 } |
240 } | 359 } |
241 | 360 |
242 // Checks if page transition type is converted correctly. | 361 // Checks if page transition type is converted correctly. |
243 TEST_F(DataUseUITabModelTest, ConvertTransitionType) { | 362 TEST_F(DataUseUITabModelTest, ConvertTransitionType) { |
244 DataUseTabModel::TransitionType transition_type; | 363 DataUseTabModel::TransitionType transition_type; |
245 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( | 364 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( |
246 ui::PageTransition(ui::PAGE_TRANSITION_TYPED), &transition_type)); | 365 ui::PageTransition(ui::PAGE_TRANSITION_TYPED), &transition_type)); |
247 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); | 366 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); |
248 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( | 367 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( |
249 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFF00), | 368 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFF00), |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
317 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 436 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
318 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), | 437 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), |
319 &transition_type)); | 438 &transition_type)); |
320 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 439 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
321 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); | 440 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); |
322 } | 441 } |
323 | 442 |
324 } // namespace android | 443 } // namespace android |
325 | 444 |
326 } // namespace chrome | 445 } // namespace chrome |
OLD | NEW |