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

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

Powered by Google App Engine
This is Rietveld 408576698