| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/run_loop.h" | 9 #include "base/run_loop.h" |
| 10 #include "chrome/browser/chromeos/attestation/attestation_key_payload.pb.h" | 10 #include "chrome/browser/chromeos/attestation/attestation_key_payload.pb.h" |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 0x4f, 0x4d, 0xe1, 0x07, 0x8a, 0x76, 0x87, 0x88, 0x2f, 0x13, 0x35, 0xc1, | 59 0x4f, 0x4d, 0xe1, 0x07, 0x8a, 0x76, 0x87, 0x88, 0x2f, 0x13, 0x35, 0xc1, |
| 60 0x02, 0x20, 0x24, 0xc3, 0xd9, 0x2f, 0x13, 0x47, 0x99, 0x3e, 0x20, 0x59, | 60 0x02, 0x20, 0x24, 0xc3, 0xd9, 0x2f, 0x13, 0x47, 0x99, 0x3e, 0x20, 0x59, |
| 61 0xa1, 0x1a, 0xeb, 0x1c, 0x81, 0x53, 0x38, 0x7e, 0xc5, 0x9e, 0x71, 0xe5, | 61 0xa1, 0x1a, 0xeb, 0x1c, 0x81, 0x53, 0x38, 0x7e, 0xc5, 0x9e, 0x71, 0xe5, |
| 62 0xc0, 0x19, 0x95, 0xdb, 0xef, 0xf6, 0x46, 0xc8, 0x95, 0x3d, 0x02, 0x21, | 62 0xc0, 0x19, 0x95, 0xdb, 0xef, 0xf6, 0x46, 0xc8, 0x95, 0x3d, 0x02, 0x21, |
| 63 0x00, 0xaa, 0xb1, 0xff, 0x8a, 0xa2, 0xb2, 0x2b, 0xef, 0x9a, 0x83, 0x3f, | 63 0x00, 0xaa, 0xb1, 0xff, 0x8a, 0xa2, 0xb2, 0x2b, 0xef, 0x9a, 0x83, 0x3f, |
| 64 0xc5, 0xbc, 0xd4, 0x6a, 0x07, 0xe8, 0xc7, 0x0b, 0x2e, 0xd4, 0x0f, 0xf8, | 64 0xc5, 0xbc, 0xd4, 0x6a, 0x07, 0xe8, 0xc7, 0x0b, 0x2e, 0xd4, 0x0f, 0xf8, |
| 65 0x98, 0x68, 0xe1, 0x04, 0xa8, 0x92, 0xd0, 0x10, 0xaa, | 65 0x98, 0x68, 0xe1, 0x04, 0xa8, 0x92, 0xd0, 0x10, 0xaa, |
| 66 }; | 66 }; |
| 67 | 67 |
| 68 void DBusCallbackFalse(const BoolDBusMethodCallback& callback) { | 68 void DBusCallbackFalse(const BoolDBusMethodCallback& callback) { |
| 69 MessageLoop::current()->PostTask( | 69 base::MessageLoop::current()->PostTask( |
| 70 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, false)); | 70 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, false)); |
| 71 } | 71 } |
| 72 | 72 |
| 73 void DBusCallbackTrue(const BoolDBusMethodCallback& callback) { | 73 void DBusCallbackTrue(const BoolDBusMethodCallback& callback) { |
| 74 MessageLoop::current()->PostTask( | 74 base::MessageLoop::current()->PostTask( |
| 75 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); | 75 FROM_HERE, base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true)); |
| 76 } | 76 } |
| 77 | 77 |
| 78 void CertCallbackSuccess(const AttestationFlow::CertificateCallback& callback) { | 78 void CertCallbackSuccess(const AttestationFlow::CertificateCallback& callback) { |
| 79 MessageLoop::current()->PostTask( | 79 base::MessageLoop::current()->PostTask( |
| 80 FROM_HERE, base::Bind(callback, true, "fake_cert")); | 80 FROM_HERE, base::Bind(callback, true, "fake_cert")); |
| 81 } | 81 } |
| 82 | 82 |
| 83 void StatusCallbackSuccess( | 83 void StatusCallbackSuccess( |
| 84 const policy::CloudPolicyClient::StatusCallback& callback) { | 84 const policy::CloudPolicyClient::StatusCallback& callback) { |
| 85 MessageLoop::current()->PostTask( | 85 base::MessageLoop::current()->PostTask( |
| 86 FROM_HERE, base::Bind(callback, true)); | 86 FROM_HERE, base::Bind(callback, true)); |
| 87 } | 87 } |
| 88 | 88 |
| 89 class FakeDBusData { | 89 class FakeDBusData { |
| 90 public: | 90 public: |
| 91 explicit FakeDBusData(const std::string& data) : data_(data) {} | 91 explicit FakeDBusData(const std::string& data) : data_(data) {} |
| 92 | 92 |
| 93 void operator() (const CryptohomeClient::DataMethodCallback& callback) { | 93 void operator() (const CryptohomeClient::DataMethodCallback& callback) { |
| 94 MessageLoop::current()->PostTask( | 94 base::MessageLoop::current()->PostTask( |
| 95 FROM_HERE, | 95 FROM_HERE, |
| 96 base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true, data_)); | 96 base::Bind(callback, DBUS_METHOD_CALL_SUCCESS, true, data_)); |
| 97 } | 97 } |
| 98 | 98 |
| 99 private: | 99 private: |
| 100 std::string data_; | 100 std::string data_; |
| 101 }; | 101 }; |
| 102 | 102 |
| 103 } // namespace | 103 } // namespace |
| 104 | 104 |
| 105 class AttestationPolicyObserverTest : public ::testing::Test { | 105 class AttestationPolicyObserverTest : public ::testing::Test { |
| 106 public: | 106 public: |
| 107 AttestationPolicyObserverTest() | 107 AttestationPolicyObserverTest() |
| 108 : message_loop_(MessageLoop::TYPE_UI), | 108 : message_loop_(base::MessageLoop::TYPE_UI), |
| 109 ui_thread_(content::BrowserThread::UI, &message_loop_) { | 109 ui_thread_(content::BrowserThread::UI, &message_loop_) { |
| 110 // Remove the real DeviceSettingsProvider and replace it with a stub. | 110 // Remove the real DeviceSettingsProvider and replace it with a stub. |
| 111 CrosSettings* cros_settings = CrosSettings::Get(); | 111 CrosSettings* cros_settings = CrosSettings::Get(); |
| 112 device_settings_provider_ = | 112 device_settings_provider_ = |
| 113 cros_settings->GetProvider(kDeviceAttestationEnabled); | 113 cros_settings->GetProvider(kDeviceAttestationEnabled); |
| 114 cros_settings->RemoveSettingsProvider(device_settings_provider_); | 114 cros_settings->RemoveSettingsProvider(device_settings_provider_); |
| 115 cros_settings->AddSettingsProvider(&stub_settings_provider_); | 115 cros_settings->AddSettingsProvider(&stub_settings_provider_); |
| 116 cros_settings->SetBoolean(kDeviceAttestationEnabled, true); | 116 cros_settings->SetBoolean(kDeviceAttestationEnabled, true); |
| 117 policy_client_.SetDMToken("fake_dm_token"); | 117 policy_client_.SetDMToken("fake_dm_token"); |
| 118 } | 118 } |
| (...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 228 valid_start, | 228 valid_start, |
| 229 valid_expiry); | 229 valid_expiry); |
| 230 | 230 |
| 231 if (!handle) | 231 if (!handle) |
| 232 return false; | 232 return false; |
| 233 bool result = net::X509Certificate::GetDEREncoded(handle, certificate); | 233 bool result = net::X509Certificate::GetDEREncoded(handle, certificate); |
| 234 net::X509Certificate::FreeOSCertHandle(handle); | 234 net::X509Certificate::FreeOSCertHandle(handle); |
| 235 return result; | 235 return result; |
| 236 } | 236 } |
| 237 | 237 |
| 238 MessageLoop message_loop_; | 238 base::MessageLoop message_loop_; |
| 239 content::TestBrowserThread ui_thread_; | 239 content::TestBrowserThread ui_thread_; |
| 240 ScopedTestDeviceSettingsService test_device_settings_service_; | 240 ScopedTestDeviceSettingsService test_device_settings_service_; |
| 241 ScopedTestCrosSettings test_cros_settings_; | 241 ScopedTestCrosSettings test_cros_settings_; |
| 242 CrosSettingsProvider* device_settings_provider_; | 242 CrosSettingsProvider* device_settings_provider_; |
| 243 StubCrosSettingsProvider stub_settings_provider_; | 243 StubCrosSettingsProvider stub_settings_provider_; |
| 244 StrictMock<MockCryptohomeClient> cryptohome_client_; | 244 StrictMock<MockCryptohomeClient> cryptohome_client_; |
| 245 StrictMock<MockAttestationFlow> attestation_flow_; | 245 StrictMock<MockAttestationFlow> attestation_flow_; |
| 246 StrictMock<policy::MockCloudPolicyClient> policy_client_; | 246 StrictMock<policy::MockCloudPolicyClient> policy_client_; |
| 247 }; | 247 }; |
| 248 | 248 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 290 Run(); | 290 Run(); |
| 291 } | 291 } |
| 292 | 292 |
| 293 TEST_F(AttestationPolicyObserverTest, IgnoreUnknownCertFormat) { | 293 TEST_F(AttestationPolicyObserverTest, IgnoreUnknownCertFormat) { |
| 294 SetupMocks(MOCK_KEY_EXISTS | MOCK_KEY_UPLOADED, "unsupported"); | 294 SetupMocks(MOCK_KEY_EXISTS | MOCK_KEY_UPLOADED, "unsupported"); |
| 295 Run(); | 295 Run(); |
| 296 } | 296 } |
| 297 | 297 |
| 298 } // namespace attestation | 298 } // namespace attestation |
| 299 } // namespace chromeos | 299 } // namespace chromeos |
| OLD | NEW |