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

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: review 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_(
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 outlive |profile_|.
105 manager_.reset(); 101 content::TestBrowserThreadBundle thread_bundle_;
106 102
107 // Explicitly release the profile before the thread_bundle. Otherwise, the 103 // Must outlive |manager_|.
108 // profile destructor throws an error. 104 TestingProfile profile_;
109 profile_.reset();
110 thread_bundle_.reset();
111 }
112 105
113 std::unique_ptr<TestingProfile> profile_; 106 PrintersManager manager_;
114 std::unique_ptr<PrintersManager> manager_;
115
116 private:
117 std::unique_ptr<content::TestBrowserThreadBundle> thread_bundle_;
118 }; 107 };
119 108
120 TEST_F(PrintersManagerTest, AddPrinter) { 109 TEST_F(PrintersManagerTest, AddPrinter) {
121 LoggingObserver observer; 110 LoggingObserver observer;
122 manager_->AddObserver(&observer); 111 manager_.AddObserver(&observer);
123 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 112 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
124 113
125 auto printers = manager_->GetPrinters(); 114 auto printers = manager_.GetPrinters();
126 ASSERT_EQ(1U, printers.size()); 115 ASSERT_EQ(1U, printers.size());
127 EXPECT_EQ(kPrinterId, printers[0]->id()); 116 EXPECT_EQ(kPrinterId, printers[0]->id());
128 EXPECT_EQ(Printer::Source::SRC_USER_PREFS, printers[0]->source()); 117 EXPECT_EQ(Printer::Source::SRC_USER_PREFS, printers[0]->source());
129 118
130 EXPECT_TRUE(observer.AddCalled()); 119 EXPECT_TRUE(observer.AddCalled());
131 EXPECT_FALSE(observer.UpdateCalled()); 120 EXPECT_FALSE(observer.UpdateCalled());
132 } 121 }
133 122
134 TEST_F(PrintersManagerTest, UpdatePrinterAssignsId) { 123 TEST_F(PrintersManagerTest, UpdatePrinterAssignsId) {
135 manager_->RegisterPrinter(base::MakeUnique<Printer>()); 124 manager_.RegisterPrinter(base::MakeUnique<Printer>());
136 125
137 auto printers = manager_->GetPrinters(); 126 auto printers = manager_.GetPrinters();
138 ASSERT_EQ(1U, printers.size()); 127 ASSERT_EQ(1U, printers.size());
139 EXPECT_FALSE(printers[0]->id().empty()); 128 EXPECT_FALSE(printers[0]->id().empty());
140 } 129 }
141 130
142 TEST_F(PrintersManagerTest, UpdatePrinter) { 131 TEST_F(PrintersManagerTest, UpdatePrinter) {
143 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 132 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
144 auto updated_printer = base::MakeUnique<Printer>(kPrinterId); 133 auto updated_printer = base::MakeUnique<Printer>(kPrinterId);
145 updated_printer->set_uri(kUri); 134 updated_printer->set_uri(kUri);
146 135
147 // Register observer so it only receives the update event. 136 // Register observer so it only receives the update event.
148 LoggingObserver observer; 137 LoggingObserver observer;
149 manager_->AddObserver(&observer); 138 manager_.AddObserver(&observer);
150 139
151 manager_->RegisterPrinter(std::move(updated_printer)); 140 manager_.RegisterPrinter(std::move(updated_printer));
152 141
153 auto printers = manager_->GetPrinters(); 142 auto printers = manager_.GetPrinters();
154 ASSERT_EQ(1U, printers.size()); 143 ASSERT_EQ(1U, printers.size());
155 EXPECT_EQ(kUri, printers[0]->uri()); 144 EXPECT_EQ(kUri, printers[0]->uri());
156 145
157 EXPECT_TRUE(observer.UpdateCalled()); 146 EXPECT_TRUE(observer.UpdateCalled());
158 EXPECT_FALSE(observer.AddCalled()); 147 EXPECT_FALSE(observer.AddCalled());
159 } 148 }
160 149
161 TEST_F(PrintersManagerTest, RemovePrinter) { 150 TEST_F(PrintersManagerTest, RemovePrinter) {
162 manager_->RegisterPrinter(base::MakeUnique<Printer>("OtherUUID")); 151 manager_.RegisterPrinter(base::MakeUnique<Printer>("OtherUUID"));
163 manager_->RegisterPrinter(base::MakeUnique<Printer>(kPrinterId)); 152 manager_.RegisterPrinter(base::MakeUnique<Printer>(kPrinterId));
164 manager_->RegisterPrinter(base::MakeUnique<Printer>()); 153 manager_.RegisterPrinter(base::MakeUnique<Printer>());
165 154
166 manager_->RemovePrinter(kPrinterId); 155 manager_.RemovePrinter(kPrinterId);
167 156
168 auto printers = manager_->GetPrinters(); 157 auto printers = manager_.GetPrinters();
169 ASSERT_EQ(2U, printers.size()); 158 ASSERT_EQ(2U, printers.size());
170 EXPECT_NE(kPrinterId, printers.at(0)->id()); 159 EXPECT_NE(kPrinterId, printers.at(0)->id());
171 EXPECT_NE(kPrinterId, printers.at(1)->id()); 160 EXPECT_NE(kPrinterId, printers.at(1)->id());
172 } 161 }
173 162
174 // Tests for policy printers 163 // Tests for policy printers
175 164
176 TEST_F(PrintersManagerTest, RecommendedPrinters) { 165 TEST_F(PrintersManagerTest, RecommendedPrinters) {
177 std::string first_printer = 166 std::string first_printer =
178 R"json({ 167 R"json({
179 "display_name": "Color Laser", 168 "display_name": "Color Laser",
180 "description": "The printer next to the water cooler.", 169 "description": "The printer next to the water cooler.",
181 "manufacturer": "Printer Manufacturer", 170 "manufacturer": "Printer Manufacturer",
182 "model":"Color Laser 2004", 171 "model":"Color Laser 2004",
183 "uri":"ipps://print-server.intranet.example.com:443/ipp/cl2k4", 172 "uri":"ipps://print-server.intranet.example.com:443/ipp/cl2k4",
184 "uuid":"1c395fdb-5d93-4904-b246-b2c046e79d12", 173 "uuid":"1c395fdb-5d93-4904-b246-b2c046e79d12",
185 "ppd_resource":{ 174 "ppd_resource":{
186 "effective_manufacturer": "MakesPrinters", 175 "effective_manufacturer": "MakesPrinters",
187 "effective_model":"ColorLaser2k4" 176 "effective_model":"ColorLaser2k4"
188 } 177 }
189 })json"; 178 })json";
190 179
191 std::string second_printer = kLexJson; 180 std::string second_printer = kLexJson;
192 181
193 auto value = base::MakeUnique<base::ListValue>(); 182 auto value = base::MakeUnique<base::ListValue>();
194 value->AppendString(first_printer); 183 value->AppendString(first_printer);
195 value->AppendString(second_printer); 184 value->AppendString(second_printer);
196 185
197 sync_preferences::TestingPrefServiceSyncable* prefs = 186 sync_preferences::TestingPrefServiceSyncable* prefs =
198 profile_->GetTestingPrefService(); 187 profile_.GetTestingPrefService();
199 // TestingPrefSyncableService assumes ownership of |value|. 188 // TestingPrefSyncableService assumes ownership of |value|.
200 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value)); 189 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value));
201 190
202 auto printers = manager_->GetRecommendedPrinters(); 191 auto printers = manager_.GetRecommendedPrinters();
203 ASSERT_EQ(2U, printers.size()); 192 ASSERT_EQ(2U, printers.size());
204 EXPECT_EQ("Color Laser", printers[0]->display_name()); 193 EXPECT_EQ("Color Laser", printers[0]->display_name());
205 EXPECT_EQ("ipp://192.168.1.5", printers[1]->uri()); 194 EXPECT_EQ("ipp://192.168.1.5", printers[1]->uri());
206 EXPECT_EQ(Printer::Source::SRC_POLICY, printers[1]->source()); 195 EXPECT_EQ(Printer::Source::SRC_POLICY, printers[1]->source());
207 } 196 }
208 197
209 TEST_F(PrintersManagerTest, GetRecommendedPrinter) { 198 TEST_F(PrintersManagerTest, GetRecommendedPrinter) {
210 std::string printer = kLexJson; 199 std::string printer = kLexJson;
211 auto value = base::MakeUnique<base::ListValue>(); 200 auto value = base::MakeUnique<base::ListValue>();
212 value->AppendString(printer); 201 value->AppendString(printer);
213 202
214 sync_preferences::TestingPrefServiceSyncable* prefs = 203 sync_preferences::TestingPrefServiceSyncable* prefs =
215 profile_->GetTestingPrefService(); 204 profile_.GetTestingPrefService();
216 // TestingPrefSyncableService assumes ownership of |value|. 205 // TestingPrefSyncableService assumes ownership of |value|.
217 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value)); 206 prefs->SetManagedPref(prefs::kRecommendedNativePrinters, std::move(value));
218 207
219 auto printers = manager_->GetRecommendedPrinters(); 208 auto printers = manager_.GetRecommendedPrinters();
220 209
221 const Printer& from_list = *(printers.front()); 210 const Printer& from_list = *(printers.front());
222 std::unique_ptr<Printer> retrieved = manager_->GetPrinter(from_list.id()); 211 std::unique_ptr<Printer> retrieved = manager_.GetPrinter(from_list.id());
223 212
224 EXPECT_EQ(from_list.id(), retrieved->id()); 213 EXPECT_EQ(from_list.id(), retrieved->id());
225 EXPECT_EQ("LexaPrint", from_list.display_name()); 214 EXPECT_EQ("LexaPrint", from_list.display_name());
226 EXPECT_EQ(Printer::Source::SRC_POLICY, from_list.source()); 215 EXPECT_EQ(Printer::Source::SRC_POLICY, from_list.source());
227 } 216 }
228 217
229 TEST_F(PrintersManagerTest, PrinterNotInstalled) { 218 TEST_F(PrintersManagerTest, PrinterNotInstalled) {
230 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 219 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
231 EXPECT_FALSE(manager_->IsConfigurationCurrent(printer)); 220 EXPECT_FALSE(manager_.IsConfigurationCurrent(printer));
232 } 221 }
233 222
234 TEST_F(PrintersManagerTest, PrinterIsInstalled) { 223 TEST_F(PrintersManagerTest, PrinterIsInstalled) {
235 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 224 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
236 manager_->PrinterInstalled(printer); 225 manager_.PrinterInstalled(printer);
237 EXPECT_TRUE(manager_->IsConfigurationCurrent(printer)); 226 EXPECT_TRUE(manager_.IsConfigurationCurrent(printer));
238 } 227 }
239 228
240 TEST_F(PrintersManagerTest, UpdatedPrinterConfiguration) { 229 TEST_F(PrintersManagerTest, UpdatedPrinterConfiguration) {
241 Printer printer(kPrinterId, base::Time::FromInternalValue(1000)); 230 Printer printer(kPrinterId, base::Time::FromInternalValue(1000));
242 manager_->PrinterInstalled(printer); 231 manager_.PrinterInstalled(printer);
243 232
244 Printer updated_printer(kPrinterId, base::Time::FromInternalValue(2000)); 233 Printer updated_printer(kPrinterId, base::Time::FromInternalValue(2000));
245 EXPECT_FALSE(manager_->IsConfigurationCurrent(updated_printer)); 234 EXPECT_FALSE(manager_.IsConfigurationCurrent(updated_printer));
246 } 235 }
247 236
248 } // namespace chromeos 237 } // 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