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

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

Issue 1772273002: Remove one thread hop while fetching matching rules (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed nits Created 4 years, 9 months 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 <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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698