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 15 matching lines...) Expand all Loading... |
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"; | 33 const char kFooLabel[] = "foo_label"; |
34 const char kFooPackage[] = "com.foo"; | 34 const char kFooPackage[] = "com.foo"; |
35 | 35 |
| 36 } // namespace |
| 37 |
36 class TestDataUseTabModel : public DataUseTabModel { | 38 class TestDataUseTabModel : public DataUseTabModel { |
37 public: | 39 public: |
38 TestDataUseTabModel() {} | 40 TestDataUseTabModel() {} |
39 ~TestDataUseTabModel() override {} | 41 ~TestDataUseTabModel() override {} |
40 | 42 |
41 using DataUseTabModel::NotifyObserversOfTrackingStarting; | 43 using DataUseTabModel::NotifyObserversOfTrackingStarting; |
42 using DataUseTabModel::NotifyObserversOfTrackingEnding; | 44 using DataUseTabModel::NotifyObserversOfTrackingEnding; |
43 }; | 45 }; |
44 | 46 |
45 class DataUseUITabModelTest : public testing::Test { | 47 class DataUseUITabModelTest : public testing::Test { |
46 public: | 48 public: |
47 DataUseUITabModelTest() | 49 DataUseUITabModelTest() |
48 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {} | 50 : thread_bundle_(content::TestBrowserThreadBundle::IO_MAINLOOP) {} |
49 DataUseUITabModel* data_use_ui_tab_model() { return &data_use_ui_tab_model_; } | 51 DataUseUITabModel* data_use_ui_tab_model() { return &data_use_ui_tab_model_; } |
50 | 52 |
51 ExternalDataUseObserver* external_data_use_observer() const { | |
52 return external_data_use_observer_.get(); | |
53 } | |
54 | |
55 TestDataUseTabModel* data_use_tab_model() const { | 53 TestDataUseTabModel* data_use_tab_model() const { |
56 return data_use_tab_model_.get(); | 54 return data_use_tab_model_.get(); |
57 } | 55 } |
58 | 56 |
59 void RegisterURLRegexes(const std::vector<std::string>& app_package_name, | 57 void RegisterURLRegexes(const std::vector<std::string>& app_package_name, |
60 const std::vector<std::string>& domain_path_regex, | 58 const std::vector<std::string>& domain_path_regex, |
61 const std::vector<std::string>& label) { | 59 const std::vector<std::string>& label) { |
62 data_use_tab_model_->RegisterURLRegexes(app_package_name, domain_path_regex, | 60 data_use_tab_model_->RegisterURLRegexes(app_package_name, domain_path_regex, |
63 label); | 61 label); |
64 } | 62 } |
65 | 63 |
66 protected: | 64 protected: |
67 void SetUp() override { | 65 void SetUp() override { |
68 io_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread( | 66 io_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread( |
69 content::BrowserThread::IO); | 67 content::BrowserThread::IO); |
70 ui_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread( | 68 ui_task_runner_ = content::BrowserThread::GetMessageLoopProxyForThread( |
71 content::BrowserThread::UI); | 69 content::BrowserThread::UI); |
72 | 70 |
73 data_use_aggregator_.reset( | 71 data_use_aggregator_.reset( |
74 new data_usage::DataUseAggregator(nullptr, nullptr)); | 72 new data_usage::DataUseAggregator(nullptr, nullptr)); |
75 | 73 |
76 external_data_use_observer_.reset(new ExternalDataUseObserver( | 74 external_data_use_observer_.reset(new ExternalDataUseObserver( |
77 data_use_aggregator_.get(), io_task_runner_, ui_task_runner_)); | 75 data_use_aggregator_.get(), io_task_runner_, ui_task_runner_)); |
78 // Wait for |external_data_use_observer_| to create the Java object. | 76 // Wait for |external_data_use_observer_| to create the Java object. |
79 base::RunLoop().RunUntilIdle(); | 77 base::RunLoop().RunUntilIdle(); |
80 | 78 |
81 data_use_tab_model_.reset(new TestDataUseTabModel()); | 79 data_use_tab_model_.reset(new TestDataUseTabModel()); |
82 data_use_tab_model_->InitOnUIThread( | 80 data_use_tab_model_->InitOnUIThread( |
83 io_task_runner_, external_data_use_observer_->GetWeakPtr()); | 81 external_data_use_observer_->external_data_use_observer_bridge_); |
84 data_use_ui_tab_model_.SetDataUseTabModel(data_use_tab_model_.get()); | 82 data_use_ui_tab_model_.SetDataUseTabModel(data_use_tab_model_.get()); |
85 data_use_tab_model_->OnControlAppInstallStateChange(true); | 83 data_use_tab_model_->OnControlAppInstallStateChange(true); |
86 } | 84 } |
87 | 85 |
88 private: | 86 private: |
89 content::TestBrowserThreadBundle thread_bundle_; | 87 content::TestBrowserThreadBundle thread_bundle_; |
90 DataUseUITabModel data_use_ui_tab_model_; | 88 DataUseUITabModel data_use_ui_tab_model_; |
91 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; | 89 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
92 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; | 90 scoped_refptr<base::SingleThreadTaskRunner> ui_task_runner_; |
93 scoped_ptr<data_usage::DataUseAggregator> data_use_aggregator_; | 91 scoped_ptr<data_usage::DataUseAggregator> data_use_aggregator_; |
94 scoped_ptr<ExternalDataUseObserver> external_data_use_observer_; | 92 scoped_ptr<ExternalDataUseObserver> external_data_use_observer_; |
95 scoped_ptr<TestDataUseTabModel> data_use_tab_model_; | 93 scoped_ptr<TestDataUseTabModel> data_use_tab_model_; |
96 }; | 94 }; |
97 | 95 |
98 } // namespace | |
99 | |
100 // Tests that DataUseTabModel is notified of tab closure and navigation events, | 96 // Tests that DataUseTabModel is notified of tab closure and navigation events, |
101 // and DataUseTabModel notifies DataUseUITabModel. | 97 // and DataUseTabModel notifies DataUseUITabModel. |
102 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) { | 98 TEST_F(DataUseUITabModelTest, ReportTabEventsTest) { |
103 std::vector<std::string> url_regexes; | 99 std::vector<std::string> url_regexes; |
104 url_regexes.push_back( | 100 url_regexes.push_back( |
105 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); | 101 "http://www[.]foo[.]com/#q=.*|https://www[.]foo[.]com/#q=.*"); |
106 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), | 102 RegisterURLRegexes(std::vector<std::string>(url_regexes.size(), kFooPackage), |
107 url_regexes, | 103 url_regexes, |
108 std::vector<std::string>(url_regexes.size(), kFooLabel)); | 104 std::vector<std::string>(url_regexes.size(), kFooLabel)); |
109 | 105 |
(...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 431 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
436 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), | 432 ui::PageTransition(ui::PAGE_TRANSITION_MANUAL_SUBFRAME), |
437 &transition_type)); | 433 &transition_type)); |
438 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( | 434 EXPECT_FALSE(data_use_ui_tab_model()->ConvertTransitionType( |
439 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); | 435 ui::PageTransition(ui::PAGE_TRANSITION_FORM_SUBMIT), &transition_type)); |
440 } | 436 } |
441 | 437 |
442 } // namespace android | 438 } // namespace android |
443 | 439 |
444 } // namespace chrome | 440 } // namespace chrome |
OLD | NEW |