Chromium Code Reviews| 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()->HasDataUseTrackingStarted(foo_tab_id)) |
| 140 << i; | 137 << i; |
| 141 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | 138 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) |
| 142 << i; | 139 << i; |
| 143 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | 140 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) |
| 144 << i; | 141 << i; |
| 145 | 142 |
| 146 std::string got_label; | 143 std::string got_label; |
| 147 data_use_tab_model()->GetLabelForTabAtTime( | 144 data_use_tab_model()->GetLabelForTabAtTime( |
| 148 foo_tab_id, base::TimeTicks::Now(), &got_label); | 145 foo_tab_id, base::TimeTicks::Now(), &got_label); |
| 149 EXPECT_EQ(tests[i].expected_label, got_label) << i; | 146 EXPECT_EQ(tests[i].expected_label, got_label) << i; |
| 150 | 147 |
| 151 // Report closure of tab. | 148 // Report closure of tab. |
| 152 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id); | 149 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id); |
| 153 base::RunLoop().RunUntilIdle(); | |
| 154 | 150 |
| 155 // DataUse object should not be labeled. | 151 // DataUse object should not be labeled. |
| 156 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); | 152 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); |
| 157 data_use_tab_model()->GetLabelForTabAtTime( | 153 data_use_tab_model()->GetLabelForTabAtTime( |
| 158 foo_tab_id, base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10), | 154 foo_tab_id, base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10), |
| 159 &got_label); | 155 &got_label); |
| 160 EXPECT_EQ(std::string(), got_label) << i; | 156 EXPECT_EQ(std::string(), got_label) << i; |
| 161 } | 157 } |
| 162 | 158 |
| 163 const SessionID::id_type bar_tab_id = foo_tab_id + 1; | 159 const SessionID::id_type bar_tab_id = foo_tab_id + 1; |
| 164 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 160 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); |
| 165 data_use_ui_tab_model()->ReportCustomTabInitialNavigation( | 161 data_use_ui_tab_model()->ReportCustomTabInitialNavigation( |
| 166 bar_tab_id, std::string(), kFooPackage); | 162 bar_tab_id, kFooPackage, std::string()); |
| 167 base::RunLoop().RunUntilIdle(); | |
| 168 | 163 |
| 169 // |data_use_ui_tab_model| should receive callback about starting of | 164 // |data_use_ui_tab_model| should receive callback about starting of |
| 170 // tracking of data usage for |bar_tab_id|. | 165 // tracking of data usage for |bar_tab_id|. |
| 171 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 166 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); |
| 172 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); | 167 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); |
| 173 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); | 168 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); |
| 174 | 169 |
| 175 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id); | 170 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id); |
| 176 base::RunLoop().RunUntilIdle(); | |
| 177 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); | 171 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); |
| 178 } | 172 } |
| 179 | 173 |
| 180 // Tests if the Entrance/Exit UI state is tracked correctly. | 174 // Tests if the Entrance/Exit UI state is tracked correctly. |
| 181 TEST_F(DataUseUITabModelTest, EntranceExitState) { | 175 TEST_F(DataUseUITabModelTest, EntranceExitState) { |
| 182 const SessionID::id_type kFooTabId = 1; | 176 const SessionID::id_type kFooTabId = 1; |
| 183 const SessionID::id_type kBarTabId = 2; | 177 const SessionID::id_type kBarTabId = 2; |
| 184 const SessionID::id_type kBazTabId = 3; | 178 const SessionID::id_type kBazTabId = 3; |
| 185 | 179 |
| 186 // HasDataUseTrackingStarted should return true only once. | 180 // HasDataUseTrackingStarted should return true only once. |
| 187 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 181 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
| 188 base::RunLoop().RunUntilIdle(); | |
| 189 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 182 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 190 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 183 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 191 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 184 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); |
| 192 | 185 |
| 193 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 186 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); |
| 194 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 187 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); |
| 195 | 188 |
| 196 // HasDataUseTrackingEnded should return true only once. | 189 // HasDataUseTrackingEnded should return true only once. |
| 197 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); | 190 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); |
| 198 base::RunLoop().RunUntilIdle(); | |
| 199 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 191 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 200 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 192 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); |
| 201 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); | 193 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kFooTabId)); |
| 202 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 194 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 203 | 195 |
| 204 // The tab enters the tracking state again. | 196 // The tab enters the tracking state again. |
| 205 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 197 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
| 206 base::RunLoop().RunUntilIdle(); | |
| 207 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 198 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 208 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 199 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 209 | 200 |
| 210 // The tab exits the tracking state. | 201 // The tab exits the tracking state. |
| 211 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); | 202 data_use_tab_model()->NotifyObserversOfTrackingEnding(kFooTabId); |
| 212 base::RunLoop().RunUntilIdle(); | |
| 213 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 203 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 214 | 204 |
| 215 // The tab enters the tracking state again. | 205 // The tab enters the tracking state again. |
| 216 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 206 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
| 217 base::RunLoop().RunUntilIdle(); | |
| 218 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); | 207 data_use_tab_model()->NotifyObserversOfTrackingStarting(kFooTabId); |
| 219 base::RunLoop().RunUntilIdle(); | |
| 220 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 208 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 221 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); | 209 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kFooTabId)); |
| 222 | 210 |
| 223 // ShowExit should return true only once. | 211 // ShowExit should return true only once. |
| 224 data_use_tab_model()->NotifyObserversOfTrackingEnding(kBarTabId); | 212 data_use_tab_model()->NotifyObserversOfTrackingEnding(kBarTabId); |
| 225 base::RunLoop().RunUntilIdle(); | |
| 226 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 213 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); |
| 227 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 214 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); |
| 228 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); | 215 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBarTabId)); |
| 229 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); | 216 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBarTabId)); |
| 230 | 217 |
| 231 data_use_ui_tab_model()->ReportTabClosure(kFooTabId); | 218 data_use_ui_tab_model()->ReportTabClosure(kFooTabId); |
| 232 data_use_ui_tab_model()->ReportTabClosure(kBarTabId); | 219 data_use_ui_tab_model()->ReportTabClosure(kBarTabId); |
| 233 | 220 |
| 234 // HasDataUseTrackingStarted/Ended should return false for closed tabs. | 221 // HasDataUseTrackingStarted/Ended should return false for closed tabs. |
| 235 data_use_tab_model()->NotifyObserversOfTrackingStarting(kBazTabId); | 222 data_use_tab_model()->NotifyObserversOfTrackingStarting(kBazTabId); |
| 236 base::RunLoop().RunUntilIdle(); | |
| 237 data_use_ui_tab_model()->ReportTabClosure(kBazTabId); | 223 data_use_ui_tab_model()->ReportTabClosure(kBazTabId); |
| 238 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBazTabId)); | 224 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(kBazTabId)); |
| 239 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBazTabId)); | 225 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(kBazTabId)); |
| 240 } | 226 } |
| 241 | 227 |
| 228 // Tests if the Entrance/Exit UI state is tracked correctly. | |
| 229 TEST_F(DataUseUITabModelTest, EntranceExitStateWithDialogBox) { | |
|
megjablon
2015/12/29 00:38:24
Maybe name EntraceExitStateForDialog?
tbansal1
2015/12/29 01:18:41
Done.
| |
| 230 const SessionID::id_type kFooTabId = 1; | |
| 231 | |
| 232 std::vector<std::string> url_regexes; | |
| 233 url_regexes.push_back( | |
| 234 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); | |
| 235 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), | |
| 236 url_regexes, | |
| 237 std::vector<std::string>(url_regexes.size(), kFooLabel)); | |
| 238 | |
| 239 SessionID::id_type foo_tab_id = kFooTabId; | |
| 240 | |
| 241 const struct { | |
| 242 // True if a dialog box was shown to the user. It may not be shown if the | |
| 243 // user has previously selected the option to opt out. | |
| 244 bool continue_dialog_box_shown; | |
| 245 bool user_proceeded_with_navigation; | |
| 246 } tests[] = { | |
| 247 {false, false}, {true, true}, {true, false}, | |
| 248 }; | |
| 249 | |
| 250 for (size_t i = 0; i < arraysize(tests); ++i) { | |
| 251 // Start a new tab. | |
| 252 ++foo_tab_id; | |
| 253 data_use_ui_tab_model()->ReportBrowserNavigation( | |
| 254 GURL("https://www.foo.com/#q=abc"), ui::PAGE_TRANSITION_GENERATED, | |
| 255 foo_tab_id); | |
| 256 | |
| 257 // |data_use_ui_tab_model| should receive callback about starting of | |
| 258 // tracking of data usage for |foo_tab_id|. | |
| 259 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | |
| 260 << i; | |
| 261 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | |
| 262 << i; | |
| 263 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | |
| 264 << i; | |
| 265 | |
| 266 std::string got_label; | |
| 267 data_use_tab_model()->GetLabelForTabAtTime( | |
| 268 foo_tab_id, base::TimeTicks::Now(), &got_label); | |
| 269 EXPECT_EQ(kFooLabel, got_label) << i; | |
| 270 | |
| 271 // Tab enters non-tracking state. | |
| 272 data_use_ui_tab_model()->ReportBrowserNavigation( | |
| 273 GURL("https://www.bar.com/#q=abc"), | |
| 274 ui::PageTransition::PAGE_TRANSITION_TYPED, foo_tab_id); | |
| 275 | |
| 276 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | |
| 277 << i; | |
| 278 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | |
| 279 << i; | |
| 280 | |
| 281 // Tab enters tracking state. | |
| 282 data_use_ui_tab_model()->ReportBrowserNavigation( | |
| 283 GURL("https://www.foo.com/#q=abc"), ui::PAGE_TRANSITION_GENERATED, | |
| 284 foo_tab_id); | |
| 285 | |
| 286 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)) | |
| 287 << i; | |
| 288 | |
| 289 // Tab may enter non-tracking state. | |
| 290 EXPECT_TRUE(data_use_ui_tab_model()->WouldDataUseTrackingEnd( | |
| 291 "https://www.bar.com/#q=abc", ui::PageTransition::PAGE_TRANSITION_TYPED, | |
| 292 foo_tab_id)); | |
| 293 if (tests[i].continue_dialog_box_shown && | |
| 294 tests[i].user_proceeded_with_navigation) { | |
| 295 data_use_ui_tab_model()->UserClickedContinueOnDialogBox(foo_tab_id); | |
| 296 } | |
| 297 | |
| 298 if (tests[i].user_proceeded_with_navigation) { | |
| 299 data_use_ui_tab_model()->ReportBrowserNavigation( | |
| 300 GURL("https://www.bar.com/#q=abc"), | |
| 301 ui::PageTransition::PAGE_TRANSITION_TYPED, foo_tab_id); | |
| 302 } | |
| 303 | |
| 304 const std::string expected_label = | |
| 305 tests[i].user_proceeded_with_navigation ? "" : kFooLabel; | |
| 306 data_use_tab_model()->GetLabelForTabAtTime( | |
| 307 foo_tab_id, base::TimeTicks::Now(), &got_label); | |
| 308 EXPECT_EQ(expected_label, got_label) << i; | |
| 309 | |
| 310 if (tests[i].user_proceeded_with_navigation) { | |
| 311 // No UI element should be shown afterwards if the dialog box was shown | |
| 312 // before. | |
| 313 EXPECT_NE(tests[i].continue_dialog_box_shown, | |
| 314 data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | |
| 315 << i; | |
| 316 } else { | |
| 317 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)) | |
| 318 << i; | |
| 319 } | |
| 320 } | |
| 321 } | |
| 322 | |
| 242 // Checks if page transition type is converted correctly. | 323 // Checks if page transition type is converted correctly. |
| 243 TEST_F(DataUseUITabModelTest, ConvertTransitionType) { | 324 TEST_F(DataUseUITabModelTest, ConvertTransitionType) { |
| 244 DataUseTabModel::TransitionType transition_type; | 325 DataUseTabModel::TransitionType transition_type; |
| 245 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( | 326 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( |
| 246 ui::PageTransition(ui::PAGE_TRANSITION_TYPED), &transition_type)); | 327 ui::PageTransition(ui::PAGE_TRANSITION_TYPED), &transition_type)); |
| 247 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); | 328 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); |
| 248 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( | 329 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType( |
| 249 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFF00), | 330 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFF00), |
| 250 &transition_type)); | 331 &transition_type)); |
| 251 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); | 332 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type); |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 398 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
| 318 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), | 399 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), |
| 319 &transition_type)); | 400 &transition_type)); |
| 320 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 401 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
| 321 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); | 402 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); |
| 322 } | 403 } |
| 323 | 404 |
| 324 } // namespace android | 405 } // namespace android |
| 325 | 406 |
| 326 } // namespace chrome | 407 } // namespace chrome |
| OLD | NEW |