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