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

Side by Side Diff: chrome/browser/android/data_usage/data_use_ui_tab_model_unittest.cc

Issue 1443683002: Notify DataUseTabModel of navigations and tab closures (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed bengr comments Created 5 years 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 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/message_loop/message_loop.h"
10 #include "base/run_loop.h"
11 #include "base/single_thread_task_runner.h"
12 #include "chrome/browser/android/data_usage/data_use_tab_model.h"
9 #include "chrome/browser/android/data_usage/data_use_ui_tab_model_factory.h" 13 #include "chrome/browser/android/data_usage/data_use_ui_tab_model_factory.h"
14 #include "chrome/browser/android/data_usage/external_data_use_observer.h"
10 #include "chrome/browser/profiles/profile.h" 15 #include "chrome/browser/profiles/profile.h"
11 #include "chrome/browser/sessions/session_tab_helper.h" 16 #include "chrome/browser/sessions/session_tab_helper.h"
12 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 17 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
18 #include "components/data_usage/core/data_use.h"
19 #include "components/data_usage/core/data_use_aggregator.h"
20 #include "components/data_usage/core/data_use_amortizer.h"
21 #include "components/data_usage/core/data_use_annotator.h"
22 #include "content/public/browser/browser_thread.h"
13 #include "content/public/browser/web_contents.h" 23 #include "content/public/browser/web_contents.h"
14 #include "content/public/test/test_renderer_host.h" 24 #include "content/public/test/test_renderer_host.h"
15 #include "content/public/test/web_contents_tester.h" 25 #include "content/public/test/web_contents_tester.h"
16 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
17 #include "ui/base/page_transition_types.h" 27 #include "ui/base/page_transition_types.h"
18 #include "url/gurl.h" 28 #include "url/gurl.h"
19 29
20 namespace chrome { 30 namespace chrome {
21 31
22 namespace android { 32 namespace android {
23 33
34 namespace {
35
36 class TestDataUseTabModel : public DataUseTabModel {
37 public:
38 TestDataUseTabModel(
39 ExternalDataUseObserver* external_data_use_observer,
40 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner)
41 : DataUseTabModel(external_data_use_observer, ui_task_runner),
42 weak_factory_(this) {}
43
44 ~TestDataUseTabModel() override {}
45
46 base::WeakPtr<TestDataUseTabModel> GetWeakPtr() {
47 return weak_factory_.GetWeakPtr();
48 }
49
50 using DataUseTabModel::NotifyObserversOfTrackingStarting;
51 using DataUseTabModel::NotifyObserversOfTrackingEnding;
52
53 private:
54 base::WeakPtrFactory<TestDataUseTabModel> weak_factory_;
sclittle 2015/11/23 23:06:16 I don't think you need this weak factory, since yo
tbansal1 2015/11/24 00:42:02 Done.
55 };
56
24 class DataUseUITabModelTest : public ChromeRenderViewHostTestHarness { 57 class DataUseUITabModelTest : public ChromeRenderViewHostTestHarness {
25 public: 58 public:
26 using ChromeRenderViewHostTestHarness::web_contents; 59 using ChromeRenderViewHostTestHarness::web_contents;
27 60
28 DataUseUITabModel* data_use_ui_tab_model() { 61 DataUseUITabModel* data_use_ui_tab_model() {
62 DataUseUITabModel* data_use_ui_tab_model = data_use_ui_tab_model_private();
63 base::RunLoop().RunUntilIdle();
64 return data_use_ui_tab_model;
65 }
66
67 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner() const {
68 return io_task_runner_;
69 }
70
71 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner() const {
72 return ui_task_runner_;
73 }
74
75 ExternalDataUseObserver* external_data_use_observer() const {
76 return external_data_use_observer_.get();
77 }
78
79 TestDataUseTabModel* data_use_tab_model() const {
80 return data_use_tab_model_.get();
81 }
82
83 protected:
84 void SetUp() override {
85 ChromeRenderViewHostTestHarness::SetUp();
86
87 io_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread(
88 content::BrowserThread::IO);
89 ui_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread(
90 content::BrowserThread::UI);
91
92 data_use_aggregator_.reset(
93 new data_usage::DataUseAggregator(nullptr, nullptr));
94
95 external_data_use_observer_.reset(new ExternalDataUseObserver(
96 data_use_aggregator_.get(), io_task_runner(), ui_task_runner()));
97 base::RunLoop().RunUntilIdle();
98
99 data_use_tab_model_.reset(new TestDataUseTabModel(
100 external_data_use_observer(),
101 content::BrowserThread::GetMessageLoopProxyForThread(
102 content::BrowserThread::UI)));
103 }
104
105 private:
106 DataUseUITabModel* data_use_ui_tab_model_private() {
29 return chrome::android::DataUseUITabModelFactory::GetForBrowserContext( 107 return chrome::android::DataUseUITabModelFactory::GetForBrowserContext(
30 Profile::FromBrowserContext(web_contents()->GetBrowserContext())); 108 Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
31 } 109 }
110
111 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
112 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_;
113 scoped_ptr<data_usage::DataUseAggregator> data_use_aggregator_;
114 scoped_ptr<ExternalDataUseObserver> external_data_use_observer_;
115 scoped_ptr<TestDataUseTabModel> data_use_tab_model_;
32 }; 116 };
33 117
34 // Tests that DataUseTabModel is notified of tab closure and navigation events. 118 } // namespace
119
120 // Tests that DataUseTabModel is notified of tab closure and navigation events,
121 // and DataUseTabModel notifies DataUseUITabModel.
35 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) { 122 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) {
36 data_use_ui_tab_model()->ReportBrowserNavigation( 123 std::string foo_label("foo_label");
37 GURL("https://www.example.com"), 124 std::string foo_package("com.foo");
38 ui::PageTransition::PAGE_TRANSITION_TYPED, 125
39 SessionTabHelper::IdForTab(web_contents())); 126 data_use_ui_tab_model()->SetDataUseTabModel(
40 data_use_ui_tab_model()->ReportTabClosure( 127 data_use_tab_model()->GetWeakPtr());
41 SessionTabHelper::IdForTab(web_contents())); 128 base::RunLoop().RunUntilIdle();
42 // TODO(tbansal): Test that DataUseTabModel is notified. 129
130 std::vector<std::string> url_regexes;
131 url_regexes.push_back(
132 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*");
133 external_data_use_observer()->RegisterURLRegexes(
134 std::vector<std::string>(url_regexes.size(), foo_package), url_regexes,
135 std::vector<std::string>(url_regexes.size(), foo_label));
136
137 const struct {
138 ui::PageTransition transition_type;
139 std::string expected_label;
140 } tests[] = {
141 {ui::PageTransitionFromInt(ui::PageTransition::PAGE_TRANSITION_LINK |
142 ui::PAGE_TRANSITION_FROM_API),
143 std::string()},
144 {ui::PageTransition::PAGE_TRANSITION_LINK, std::string()},
145 {ui::PageTransition::PAGE_TRANSITION_TYPED, foo_label},
146 {ui::PageTransition::PAGE_TRANSITION_AUTO_BOOKMARK, std::string()},
147 {ui::PageTransition::PAGE_TRANSITION_AUTO_TOPLEVEL, std::string()},
148 {ui::PageTransition::PAGE_TRANSITION_GENERATED, foo_label},
149 {ui::PageTransition::PAGE_TRANSITION_RELOAD, std::string()},
150 };
151
152 int32_t foo_tab_id = 0;
153
154 for (size_t i = 0; i < arraysize(tests); ++i) {
155 // Start a new tab.
156 ++foo_tab_id;
157 data_use_ui_tab_model()->ReportBrowserNavigation(
158 GURL("https://www.foo.com/#q=abc"), tests[i].transition_type,
159 foo_tab_id);
160 base::RunLoop().RunUntilIdle();
161
162 // |data_use_ui_tab_model| should receive callback about starting of
163 // tracking of data usage for |foo_tab_id|.
164 EXPECT_EQ(!tests[i].expected_label.empty(),
165 data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id))
166 << i;
167 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id))
168 << i;
169 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id))
170 << i;
171
172 // DataUse object should be labeled correctly.
173 data_usage::DataUse data_use(GURL("http://foo.com/#q=abc"),
174 base::TimeTicks::Now(),
175 GURL("http://foobar.com"), foo_tab_id,
176 net::NetworkChangeNotifier::CONNECTION_UNKNOWN,
177 std::string(), 1000, 1000);
178 std::string got_label;
179 data_use_tab_model()->GetLabelForDataUse(data_use, &got_label);
180 EXPECT_EQ(tests[i].expected_label, got_label) << i;
181
182 // Report closure of tab.
183 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id);
184 base::RunLoop().RunUntilIdle();
185
186 // DataUse object should not be labeled.
187 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
188 data_use.request_start =
189 base::TimeTicks::Now() + base::TimeDelta::FromMinutes(10);
190 data_use_tab_model()->GetLabelForDataUse(data_use, &got_label);
191 EXPECT_EQ(std::string(), got_label) << i;
192 }
193
194 ++foo_tab_id;
195 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
196 data_use_ui_tab_model()->ReportCustomTabInitialNavigation(
197 foo_tab_id, std::string(), foo_package);
198 base::RunLoop().RunUntilIdle();
199
200 // |data_use_ui_tab_model| should receive callback about starting of
201 // tracking of data usage for |foo_tab_id|.
202 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
203 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
204 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
205
206 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id);
207 base::RunLoop().RunUntilIdle();
208 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
43 } 209 }
44 210
45 // Tests if the Entrance/Exit UI state is tracked correctly. 211 // Tests if the Entrance/Exit UI state is tracked correctly.
46 TEST_F(DataUseUITabModelTest, EntranceExitState) { 212 TEST_F(DataUseUITabModelTest, EntranceExitState) {
213 data_use_ui_tab_model()->SetDataUseTabModel(
214 data_use_tab_model()->GetWeakPtr());
215 base::RunLoop().RunUntilIdle();
216
47 int32_t foo_tab_id = 1; 217 int32_t foo_tab_id = 1;
48 int32_t bar_tab_id = 2; 218 int32_t bar_tab_id = 2;
49 int32_t baz_tab_id = 3; 219 int32_t baz_tab_id = 3;
50 220
51 // ShowEntrance should return true only once. 221 // HasDataUseTrackingStarted should return true only once.
52 data_use_ui_tab_model()->OnTrackingStarted(foo_tab_id); 222 data_use_tab_model()->NotifyObserversOfTrackingStarting(foo_tab_id);
223 base::RunLoop().RunUntilIdle();
53 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 224 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
54 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 225 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
55 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); 226 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
56 227
57 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); 228 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id));
58 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); 229 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id));
59 230
60 // ShowExit should return true only once. 231 // HasDataUseTrackingEnded should return true only once.
61 data_use_ui_tab_model()->OnTrackingEnded(foo_tab_id); 232 data_use_tab_model()->NotifyObserversOfTrackingEnding(foo_tab_id);
233 base::RunLoop().RunUntilIdle();
62 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 234 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
63 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); 235 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
64 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id)); 236 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(foo_tab_id));
65 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 237 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
66 238
67 // The tab enters the tracking state again. 239 // The tab enters the tracking state again.
68 data_use_ui_tab_model()->OnTrackingStarted(foo_tab_id); 240 data_use_tab_model()->NotifyObserversOfTrackingStarting(foo_tab_id);
241 base::RunLoop().RunUntilIdle();
69 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 242 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
70 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 243 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
71 244
72 // The tab exits the tracking state. 245 // The tab exits the tracking state.
73 data_use_ui_tab_model()->OnTrackingEnded(foo_tab_id); 246 data_use_tab_model()->NotifyObserversOfTrackingEnding(foo_tab_id);
247 base::RunLoop().RunUntilIdle();
74 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 248 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
75 249
76 // The tab enters the tracking state again. 250 // The tab enters the tracking state again.
77 data_use_ui_tab_model()->OnTrackingStarted(foo_tab_id); 251 data_use_tab_model()->NotifyObserversOfTrackingStarting(foo_tab_id);
78 data_use_ui_tab_model()->OnTrackingStarted(foo_tab_id); 252 base::RunLoop().RunUntilIdle();
253 data_use_tab_model()->NotifyObserversOfTrackingStarting(foo_tab_id);
254 base::RunLoop().RunUntilIdle();
79 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 255 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
80 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id)); 256 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(foo_tab_id));
81 257
82 // ShowExit should return true only once. 258 // ShowExit should return true only once.
83 data_use_ui_tab_model()->OnTrackingEnded(bar_tab_id); 259 data_use_tab_model()->NotifyObserversOfTrackingEnding(bar_tab_id);
260 base::RunLoop().RunUntilIdle();
84 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); 261 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id));
85 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); 262 EXPECT_TRUE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id));
86 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id)); 263 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(bar_tab_id));
87 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id)); 264 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(bar_tab_id));
88 265
89 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id); 266 data_use_ui_tab_model()->ReportTabClosure(foo_tab_id);
90 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id); 267 data_use_ui_tab_model()->ReportTabClosure(bar_tab_id);
91 268
92 // HasDataUseTrackingStarted/Ended should return false for closed tabs. 269 // HasDataUseTrackingStarted/Ended should return false for closed tabs.
93 data_use_ui_tab_model()->OnTrackingStarted(baz_tab_id); 270 data_use_tab_model()->NotifyObserversOfTrackingStarting(baz_tab_id);
271 base::RunLoop().RunUntilIdle();
94 data_use_ui_tab_model()->ReportTabClosure(baz_tab_id); 272 data_use_ui_tab_model()->ReportTabClosure(baz_tab_id);
95 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(baz_tab_id)); 273 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingStarted(baz_tab_id));
96 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(baz_tab_id)); 274 EXPECT_FALSE(data_use_ui_tab_model()->HasDataUseTrackingEnded(baz_tab_id));
97 } 275 }
98 276
277 // Checks if page transition type is converted correctly.
278 TEST_F(DataUseUITabModelTest, ConvertTransitionType) {
279 data_use_ui_tab_model()->SetDataUseTabModel(
280 data_use_tab_model()->GetWeakPtr());
281 DataUseTabModel::TransitionType transition_type;
282 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
283 ui::PageTransition(ui::PAGE_TRANSITION_TYPED), &transition_type));
284 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type);
285 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
286 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFF00),
287 &transition_type));
288 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type);
289 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
290 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0xFFFF00),
291 &transition_type));
292 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type);
293 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
294 ui::PageTransition(ui::PAGE_TRANSITION_TYPED | 0x12FFFF00),
295 &transition_type));
296 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_NAVIGATION, transition_type);
297
298 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
299 ui::PageTransition(ui::PAGE_TRANSITION_AUTO_BOOKMARK), &transition_type));
300 EXPECT_EQ(DataUseTabModel::TRANSITION_BOOKMARK, transition_type);
301 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
302 ui::PageTransition(ui::PAGE_TRANSITION_AUTO_BOOKMARK | 0xFF00),
303 &transition_type));
304 EXPECT_EQ(DataUseTabModel::TRANSITION_BOOKMARK, transition_type);
305 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
306 ui::PageTransition(ui::PAGE_TRANSITION_AUTO_BOOKMARK | 0xFFFF00),
307 &transition_type));
308 EXPECT_EQ(DataUseTabModel::TRANSITION_BOOKMARK, transition_type);
309 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
310 ui::PageTransition(ui::PAGE_TRANSITION_AUTO_BOOKMARK | 0x12FFFF00),
311 &transition_type));
312 EXPECT_EQ(DataUseTabModel::TRANSITION_BOOKMARK, transition_type);
313
314 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
315 ui::PageTransition(ui::PAGE_TRANSITION_GENERATED), &transition_type));
316 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_SEARCH, transition_type);
317 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
318 ui::PageTransition(ui::PAGE_TRANSITION_GENERATED | 0xFF00),
319 &transition_type));
320 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_SEARCH, transition_type);
321 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
322 ui::PageTransition(ui::PAGE_TRANSITION_GENERATED | 0xFFFF00),
323 &transition_type));
324 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_SEARCH, transition_type);
325 EXPECT_TRUE(data_use_ui_tab_model()->ConvertTransitionType(
326 ui::PageTransition(ui::PAGE_TRANSITION_GENERATED | 0x12FFFF00),
327 &transition_type));
328 EXPECT_EQ(DataUseTabModel::TRANSITION_OMNIBOX_SEARCH, transition_type);
329
330 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType(
331 ui::PageTransition(ui::PAGE_TRANSITION_AUTO_SUBFRAME), &transition_type));
332 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType(
333 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME),
334 &transition_type));
335 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType(
336 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type));
337 }
338
99 } // namespace android 339 } // namespace android
100 340
101 } // namespace chrome 341 } // namespace chrome
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698