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

Side by Side Diff: chrome/browser/chromeos/printing/printers_manager_unittest.cc

Issue 2912003002: Replace deprecated base::NonThreadSafe in chrome/browser/extensions in favor of SequenceChecker. (Closed)
Patch Set: fix PrintersManagerTest Created 3 years, 6 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
« no previous file with comments | « no previous file | chrome/browser/extensions/warning_badge_service.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/chromeos/printing/printers_manager.h" 5 #include "chrome/browser/chromeos/printing/printers_manager.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 private: 79 private:
80 base::Optional<Printer> last_added_; 80 base::Optional<Printer> last_added_;
81 base::Optional<Printer> last_updated_; 81 base::Optional<Printer> last_updated_;
82 base::Optional<Printer> last_removed_; 82 base::Optional<Printer> last_removed_;
83 }; 83 };
84 84
85 } // namespace 85 } // namespace
86 86
87 class PrintersManagerTest : public testing::Test { 87 class PrintersManagerTest : public testing::Test {
88 protected: 88 protected:
89 PrintersManagerTest() : profile_(base::MakeUnique<TestingProfile>()) { 89 PrintersManagerTest()
90 thread_bundle_ = base::MakeUnique<content::TestBrowserThreadBundle>(); 90 : manager_(
skau 2017/05/31 19:22:09 Can you note that member initialization happens be
gab 2017/05/31 21:19:25 This is not what's happening, members are initiali
91 91 &profile_,
92 auto sync_bridge = base::MakeUnique<PrintersSyncBridge>( 92 base::MakeUnique<PrintersSyncBridge>(
93 base::Bind(&syncer::ModelTypeStore::CreateInMemoryStoreForTest, 93 base::Bind(&syncer::ModelTypeStore::CreateInMemoryStoreForTest,
94 syncer::PRINTERS), 94 syncer::PRINTERS),
95 base::BindRepeating( 95 base::BindRepeating(
96 base::IgnoreResult(&base::debug::DumpWithoutCrashing))); 96 base::IgnoreResult(&base::debug::DumpWithoutCrashing)))) {
97
98 manager_ = base::MakeUnique<PrintersManager>(profile_.get(),
99 std::move(sync_bridge));
100
101 base::RunLoop().RunUntilIdle(); 97 base::RunLoop().RunUntilIdle();
102 } 98 }
103 99
104 ~PrintersManagerTest() override { 100 // Must be first to be alive throughout |profile_|'s lifetime.
Lei Zhang 2017/05/31 19:14:23 Just say "Must outlive |profile_|" ?
gab 2017/05/31 21:19:25 Done.
105 manager_.reset(); 101 content::TestBrowserThreadBundle thread_bundle_;
106 102
107 // Explicitly release the profile before the thread_bundle. Otherwise, the 103 TestingProfile profile_;
Lei Zhang 2017/05/31 19:14:23 Add a comment to say this must outlive |manager_|
gab 2017/05/31 21:19:25 Done.
108 // profile destructor throws an error. 104 PrintersManager manager_;
109 profile_.reset();
110 thread_bundle_.reset();
111 }
112
113 std::unique_ptr<TestingProfile> profile_;
114 std::unique_ptr<PrintersManager> manager_;
115
116 private:
117 std::unique_ptr<content::TestBrowserThreadBundle> thread_bundle_;
118 }; 105 };
119 106
120 TEST_F(PrintersManagerTest, AddPrinter) { 107 TEST_F(PrintersManagerTest, AddPrinter) {
121 LoggingObserver observer; 108 LoggingObserver observer;
122 manager_->AddObserver(&observer); 109 manager_.AddObserver(&observer);
123 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 110 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
124 111
125 auto printers = manager_->GetPrinters(); 112 auto printers = manager_.GetPrinters();
126 ASSERT_EQ(1U, printers.size()); 113 ASSERT_EQ(1U, printers.size());
127 EXPECT_EQ(kPrinterId, printers[0]->id()); 114 EXPECT_EQ(kPrinterId, printers[0]->id());
128 EXPECT_EQ(Printer::Source::SRC_USER_PREFS, printers[0]->source()); 115 EXPECT_EQ(Printer::Source::SRC_USER_PREFS, printers[0]->source());
129 116
130 EXPECT_TRUE(observer.AddCalled()); 117 EXPECT_TRUE(observer.AddCalled());
131 EXPECT_FALSE(observer.UpdateCalled()); 118 EXPECT_FALSE(observer.UpdateCalled());
132 } 119 }
133 120
134 TEST_F(PrintersManagerTest, UpdatePrinterAssignsId) { 121 TEST_F(PrintersManagerTest, UpdatePrinterAssignsId) {
135 manager_->RegisterPrinter(base::MakeUnique<Printer>()); 122 manager_.RegisterPrinter(base::MakeUnique<Printer>());
136 123
137 auto printers = manager_->GetPrinters(); 124 auto printers = manager_.GetPrinters();
138 ASSERT_EQ(1U, printers.size()); 125 ASSERT_EQ(1U, printers.size());
139 EXPECT_FALSE(printers[0]->id().empty()); 126 EXPECT_FALSE(printers[0]->id().empty());
140 } 127 }
141 128
142 TEST_F(PrintersManagerTest, UpdatePrinter) { 129 TEST_F(PrintersManagerTest, UpdatePrinter) {
143 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 130 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
144 auto updated_printer = base::MakeUnique<Printer>(kPrinterId); 131 auto updated_printer = base::MakeUnique<Printer>(kPrinterId);
145 updated_printer->set_uri(kUri); 132 updated_printer->set_uri(kUri);
146 133
147 // Register observer so it only receives the update event. 134 // Register observer so it only receives the update event.
148 LoggingObserver observer; 135 LoggingObserver observer;
149 manager_->AddObserver(&observer); 136 manager_.AddObserver(&observer);
150 137
151 manager_->RegisterPrinter(std::move(updated_printer)); 138 manager_.RegisterPrinter(std::move(updated_printer));
152 139
153 auto printers = manager_->GetPrinters(); 140 auto printers = manager_.GetPrinters();
154 ASSERT_EQ(1U, printers.size()); 141 ASSERT_EQ(1U, printers.size());
155 EXPECT_EQ(kUri, printers[0]->uri()); 142 EXPECT_EQ(kUri, printers[0]->uri());
156 143
157 EXPECT_TRUE(observer.UpdateCalled()); 144 EXPECT_TRUE(observer.UpdateCalled());
158 EXPECT_FALSE(observer.AddCalled()); 145 EXPECT_FALSE(observer.AddCalled());
159 } 146 }
160 147
161 TEST_F(PrintersManagerTest, RemovePrinter) { 148 TEST_F(PrintersManagerTest, RemovePrinter) {
162 manager_->RegisterPrinter(base::MakeUnique<Printer>("OtherUUID")); 149 manager_.RegisterPrinter(base::MakeUnique<Printer>("OtherUUID"));
163 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 150 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
164 manager_->RegisterPrinter(base::MakeUnique<Printer>()); 151 manager_.RegisterPrinter(base::MakeUnique<Printer>());
165 152
166 manager_->RemovePrinter(kPrinterId); 153 manager_.RemovePrinter(kPrinterId);
167 154
168 auto printers = manager_->GetPrinters(); 155 auto printers = manager_.GetPrinters();
169 ASSERT_EQ(2U, printers.size()); 156 ASSERT_EQ(2U, printers.size());
170 EXPECT_NE(kPrinterId, printers.at(0)->id()); 157 EXPECT_NE(kPrinterId, printers.at(0)->id());
171 EXPECT_NE(kPrinterId, printers.at(1)->id()); 158 EXPECT_NE(kPrinterId, printers.at(1)->id());
172 } 159 }
173 160
174 // Tests for policy printers 161 // Tests for policy printers
175 162
176 TEST_F(PrintersManagerTest, RecommendedPrinters) { 163 TEST_F(PrintersManagerTest, RecommendedPrinters) {
177 std::string first_printer = 164 std::string first_printer =
178 R"json({ 165 R"json({
179 "display_name": "Color Laser", 166 "display_name": "Color Laser",
180 "description": "The printer next to the water cooler.", 167 "description": "The printer next to the water cooler.",
181 "manufacturer": "Printer Manufacturer", 168 "manufacturer": "Printer Manufacturer",
182 "model":"Color Laser 2004", 169 "model":"Color Laser 2004",
183 "uri":"ipps://print-server.intranet.example.com:443/ipp/cl2k4", 170 "uri":"ipps://print-server.intranet.example.com:443/ipp/cl2k4",
184 "uuid":"1c395fdb-5d93-4904-b246-b2c046e79d12", 171 "uuid":"1c395fdb-5d93-4904-b246-b2c046e79d12",
185 "ppd_resource":{ 172 "ppd_resource":{
186 "effective_manufacturer": "MakesPrinters", 173 "effective_manufacturer": "MakesPrinters",
187 "effective_model":"ColorLaser2k4" 174 "effective_model":"ColorLaser2k4"
188 } 175 }
189 })json"; 176 })json";
190 177
191 std::string second_printer = kLexJson; 178 std::string second_printer = kLexJson;
192 179
193 auto value = base::MakeUnique<base::ListValue>(); 180 auto value = base::MakeUnique<base::ListValue>();
194 value->AppendString(first_printer); 181 value->AppendString(first_printer);
195 value->AppendString(second_printer); 182 value->AppendString(second_printer);
196 183
197 sync_preferences::TestingPrefServiceSyncable* prefs = 184 sync_preferences::TestingPrefServiceSyncable* prefs =
198 profile_->GetTestingPrefService(); 185 profile_.GetTestingPrefService();
199 // TestingPrefSyncableService assumes ownership of |value|. 186 // TestingPrefSyncableService assumes ownership of |value|.
200 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value)); 187 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value));
201 188
202 auto printers = manager_->GetRecommendedPrinters(); 189 auto printers = manager_.GetRecommendedPrinters();
203 ASSERT_EQ(2U, printers.size()); 190 ASSERT_EQ(2U, printers.size());
204 EXPECT_EQ("Color Laser", printers[0]->display_name()); 191 EXPECT_EQ("Color Laser", printers[0]->display_name());
205 EXPECT_EQ("ipp://192.168.1.5", printers[1]->uri()); 192 EXPECT_EQ("ipp://192.168.1.5", printers[1]->uri());
206 EXPECT_EQ(Printer::Source::SRC_POLICY, printers[1]->source()); 193 EXPECT_EQ(Printer::Source::SRC_POLICY, printers[1]->source());
207 } 194 }
208 195
209 TEST_F(PrintersManagerTest, GetRecommendedPrinter) { 196 TEST_F(PrintersManagerTest, GetRecommendedPrinter) {
210 std::string printer = kLexJson; 197 std::string printer = kLexJson;
211 auto value = base::MakeUnique<base::ListValue>(); 198 auto value = base::MakeUnique<base::ListValue>();
212 value->AppendString(printer); 199 value->AppendString(printer);
213 200
214 sync_preferences::TestingPrefServiceSyncable* prefs = 201 sync_preferences::TestingPrefServiceSyncable* prefs =
215 profile_->GetTestingPrefService(); 202 profile_.GetTestingPrefService();
216 // TestingPrefSyncableService assumes ownership of |value|. 203 // TestingPrefSyncableService assumes ownership of |value|.
217 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value)); 204 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value));
218 205
219 auto printers = manager_->GetRecommendedPrinters(); 206 auto printers = manager_.GetRecommendedPrinters();
220 207
221 const Printer& from_list = *(printers.front()); 208 const Printer& from_list = *(printers.front());
222 std::unique_ptr<Printer> retrieved = manager_->GetPrinter(from_list.id()); 209 std::unique_ptr<Printer> retrieved = manager_.GetPrinter(from_list.id());
223 210
224 EXPECT_EQ(from_list.id(), retrieved->id()); 211 EXPECT_EQ(from_list.id(), retrieved->id());
225 EXPECT_EQ("LexaPrint", from_list.display_name()); 212 EXPECT_EQ("LexaPrint", from_list.display_name());
226 EXPECT_EQ(Printer::Source::SRC_POLICY, from_list.source()); 213 EXPECT_EQ(Printer::Source::SRC_POLICY, from_list.source());
227 } 214 }
228 215
229 TEST_F(PrintersManagerTest, PrinterNotInstalled) { 216 TEST_F(PrintersManagerTest, PrinterNotInstalled) {
230 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 217 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
231 EXPECT_FALSE(manager_->IsConfigurationCurrent(printer)); 218 EXPECT_FALSE(manager_.IsConfigurationCurrent(printer));
232 } 219 }
233 220
234 TEST_F(PrintersManagerTest, PrinterIsInstalled) { 221 TEST_F(PrintersManagerTest, PrinterIsInstalled) {
235 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 222 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
236 manager_->PrinterInstalled(printer); 223 manager_.PrinterInstalled(printer);
237 EXPECT_TRUE(manager_->IsConfigurationCurrent(printer)); 224 EXPECT_TRUE(manager_.IsConfigurationCurrent(printer));
238 } 225 }
239 226
240 TEST_F(PrintersManagerTest, UpdatedPrinterConfiguration) { 227 TEST_F(PrintersManagerTest, UpdatedPrinterConfiguration) {
241 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 228 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
242 manager_->PrinterInstalled(printer); 229 manager_.PrinterInstalled(printer);
243 230
244 Printer updated_printer(kPrinterId, base::Time::FromInternalValue(2000)); 231 Printer updated_printer(kPrinterId, base::Time::FromInternalValue(2000));
245 EXPECT_FALSE(manager_->IsConfigurationCurrent(updated_printer)); 232 EXPECT_FALSE(manager_.IsConfigurationCurrent(updated_printer));
246 } 233 }
247 234
248 } // namespace chromeos 235 } // namespace chromeos
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/extensions/warning_badge_service.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698