OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <cert.h> | 5 #include <cert.h> |
6 #include <pk11pub.h> | 6 #include <pk11pub.h> |
7 | 7 |
8 #include <vector> | 8 #include <vector> |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
131 // NetworkLibraryStubImpl. | 131 // NetworkLibraryStubImpl. |
132 // NOTE: It would be of little value to test stub functions that simply return | 132 // NOTE: It would be of little value to test stub functions that simply return |
133 // predefined values, e.g. ethernet_available(). However, many other functions | 133 // predefined values, e.g. ethernet_available(). However, many other functions |
134 // such as connected_network() return values which are set indirectly and thus | 134 // such as connected_network() return values which are set indirectly and thus |
135 // we can test the logic of those setters. | 135 // we can test the logic of those setters. |
136 | 136 |
137 class NetworkLibraryStubTest : public testing::Test { | 137 class NetworkLibraryStubTest : public testing::Test { |
138 public: | 138 public: |
139 NetworkLibraryStubTest() : cros_(NULL) {} | 139 NetworkLibraryStubTest() : cros_(NULL) {} |
140 | 140 |
141 static void SetUpTestCase() { | |
142 // Ideally, we'd open a test DB for each test case, and close it | |
143 // again, removing the temp dir, but unfortunately, there's a | |
144 // bug in NSS that prevents this from working, so we just open | |
145 // it once, and empty it for each test case. Here's the bug: | |
146 // https://bugzilla.mozilla.org/show_bug.cgi?id=588269 | |
147 ASSERT_TRUE(crypto::OpenTestNSSDB()); | |
148 // There is no matching TearDownTestCase call to close the test NSS DB | |
149 // because that would leave NSS in a potentially broken state for further | |
150 // tests, due to https://bugzilla.mozilla.org/show_bug.cgi?id=588269 | |
151 } | |
152 | |
153 protected: | 141 protected: |
154 virtual void SetUp() { | 142 virtual void SetUp() { |
| 143 ASSERT_TRUE(test_nssdb_.is_open()); |
| 144 |
155 slot_ = net::NSSCertDatabase::GetInstance()->GetPublicModule(); | 145 slot_ = net::NSSCertDatabase::GetInstance()->GetPublicModule(); |
156 cros_ = CrosLibrary::Get()->GetNetworkLibrary(); | 146 cros_ = CrosLibrary::Get()->GetNetworkLibrary(); |
157 ASSERT_TRUE(cros_) << "GetNetworkLibrary() Failed!"; | 147 ASSERT_TRUE(cros_) << "GetNetworkLibrary() Failed!"; |
158 | 148 |
159 // Test db should be empty at start of test. | 149 // Test db should be empty at start of test. |
160 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); | 150 EXPECT_EQ(0U, ListCertsInSlot(slot_->os_module_handle()).size()); |
161 } | 151 } |
162 virtual void TearDown() { | 152 virtual void TearDown() { |
163 cros_ = NULL; | 153 cros_ = NULL; |
164 EXPECT_TRUE(CleanupSlotContents(slot_->os_module_handle())); | 154 EXPECT_TRUE(CleanupSlotContents(slot_->os_module_handle())); |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 bool ok = true; | 190 bool ok = true; |
201 net::CertificateList certs = ListCertsInSlot(slot); | 191 net::CertificateList certs = ListCertsInSlot(slot); |
202 for (size_t i = 0; i < certs.size(); ++i) { | 192 for (size_t i = 0; i < certs.size(); ++i) { |
203 if (!net::NSSCertDatabase::GetInstance()->DeleteCertAndKey(certs[i])) | 193 if (!net::NSSCertDatabase::GetInstance()->DeleteCertAndKey(certs[i])) |
204 ok = false; | 194 ok = false; |
205 } | 195 } |
206 return ok; | 196 return ok; |
207 } | 197 } |
208 | 198 |
209 scoped_refptr<net::CryptoModule> slot_; | 199 scoped_refptr<net::CryptoModule> slot_; |
| 200 crypto::ScopedTestNSSDB test_nssdb_; |
210 }; | 201 }; |
211 | 202 |
212 // Default stub state: | 203 // Default stub state: |
213 // vpn1: disconnected, L2TP/IPsec + PSK | 204 // vpn1: disconnected, L2TP/IPsec + PSK |
214 // vpn2: disconnected, L2TP/IPsec + user cert | 205 // vpn2: disconnected, L2TP/IPsec + user cert |
215 // vpn3: disconnected, OpenVpn | 206 // vpn3: disconnected, OpenVpn |
216 // eth1: connected (active network) | 207 // eth1: connected (active network) |
217 // wifi1: connected | 208 // wifi1: connected |
218 // wifi2: disconnected | 209 // wifi2: disconnected |
219 // wifi3: disconnected, WEP | 210 // wifi3: disconnected, WEP |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
370 | 361 |
371 // TODO(stevenjb): Test network profiles. | 362 // TODO(stevenjb): Test network profiles. |
372 | 363 |
373 // TODO(stevenjb): Test network devices. | 364 // TODO(stevenjb): Test network devices. |
374 | 365 |
375 // TODO(stevenjb): Test data plans. | 366 // TODO(stevenjb): Test data plans. |
376 | 367 |
377 // TODO(stevenjb): Test monitor network / device. | 368 // TODO(stevenjb): Test monitor network / device. |
378 | 369 |
379 } // namespace chromeos | 370 } // namespace chromeos |
OLD | NEW |