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

Unified Diff: chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc

Issue 317613004: Remove usage of singleton software_slot_ in nss on ChromeOS (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc
diff --git a/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc b/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc
index 37f6005e979e41032f2e7b195f5a0a7d5454a896..7ff4a2c9671f098fca6d5ff531ff3f98099ba98f 100644
--- a/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc
+++ b/chrome/browser/chromeos/login/auth/parallel_authenticator_unittest.cc
@@ -24,8 +24,11 @@
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/settings/device_settings_test_helper.h"
+#include "chrome/browser/chromeos/settings/mock_owner_key_util.h"
#include "chrome/browser/chromeos/settings/stub_cros_settings_provider.h"
+#include "chrome/test/base/testing_browser_process.h"
#include "chrome/test/base/testing_profile.h"
+#include "chrome/test/base/testing_profile_manager.h"
#include "chromeos/chromeos_switches.h"
#include "chromeos/cryptohome/mock_async_method_caller.h"
#include "chromeos/cryptohome/system_salt_getter.h"
@@ -34,6 +37,7 @@
#include "chromeos/login/auth/key.h"
#include "chromeos/login/auth/user_context.h"
#include "content/public/test/test_browser_thread_bundle.h"
+#include "crypto/nss_util.h"
#include "google_apis/gaia/mock_url_fetcher_factory.h"
#include "net/base/net_errors.h"
#include "net/url_request/url_request_status.h"
@@ -54,8 +58,10 @@ class ParallelAuthenticatorTest : public testing::Test {
: user_context_("me@nowhere.org"),
user_manager_(new FakeUserManager()),
user_manager_enabler_(user_manager_),
- mock_caller_(NULL) {
+ mock_caller_(NULL),
+ owner_key_util_(new MockOwnerKeyUtil) {
user_context_.SetKey(Key("fakepass"));
+ user_context_.SetUserIDHash("me_nowhere_com_hash");
const User* user = user_manager_->AddUser(user_context_.GetUserID());
profile_.set_profile_name(user_context_.GetUserID());
@@ -67,9 +73,7 @@ class ParallelAuthenticatorTest : public testing::Test {
FakeCryptohomeClient::GetStubSystemSalt()));
}
- virtual ~ParallelAuthenticatorTest() {
- DCHECK(!mock_caller_);
- }
+ virtual ~ParallelAuthenticatorTest() {}
virtual void SetUp() {
CommandLine::ForCurrentProcess()->AppendSwitch(switches::kLoginManager);
@@ -85,12 +89,15 @@ class ParallelAuthenticatorTest : public testing::Test {
SystemSaltGetter::Initialize();
+ OwnerSettingsService::SetOwnerKeyUtilForTesting(owner_key_util_);
+
auth_ = new ParallelAuthenticator(&consumer_);
state_.reset(new TestAttemptState(user_context_, false));
}
// Tears down the test fixture.
virtual void TearDown() {
+ OwnerSettingsService::SetOwnerKeyUtilForTesting(NULL);
SystemSaltGetter::Shutdown();
DBusThreadManager::Shutdown();
@@ -193,15 +200,20 @@ class ParallelAuthenticatorTest : public testing::Test {
ScopedTestCrosSettings test_cros_settings_;
TestingProfile profile_;
+ scoped_ptr<TestingProfileManager> profile_manager_;
FakeUserManager* user_manager_;
ScopedUserManagerEnabler user_manager_enabler_;
cryptohome::MockAsyncMethodCaller* mock_caller_;
+ crypto::ScopedTestNSSDB test_nssdb_;
+
MockConsumer consumer_;
scoped_refptr<ParallelAuthenticator> auth_;
scoped_ptr<TestAttemptState> state_;
FakeCryptohomeClient* fake_cryptohome_client_;
+
+ scoped_refptr<MockOwnerKeyUtil> owner_key_util_;
};
TEST_F(ParallelAuthenticatorTest, OnLoginSuccess) {
@@ -276,6 +288,10 @@ TEST_F(ParallelAuthenticatorTest, ResolveOwnerNeededMount) {
}
TEST_F(ParallelAuthenticatorTest, ResolveOwnerNeededFailedMount) {
+ profile_manager_.reset(
+ new TestingProfileManager(TestingBrowserProcess::GetGlobal()));
+ ASSERT_TRUE(profile_manager_->SetUp());
+
FailOnLoginSuccess(); // Set failing on success as the default...
LoginFailure failure = LoginFailure(LoginFailure::OWNER_REQUIRED);
ExpectLoginFailure(failure);
@@ -305,20 +321,18 @@ TEST_F(ParallelAuthenticatorTest, ResolveOwnerNeededFailedMount) {
SetAndResolveState(auth_.get(), state_.release()));
EXPECT_TRUE(LoginState::Get()->IsInSafeMode());
- // Simulate TPM token ready event.
- OwnerSettingsService* service =
- OwnerSettingsServiceFactory::GetForProfile(&profile_);
- ASSERT_TRUE(service);
- service->OnTPMTokenReady();
-
// Flush all the pending operations. The operations should induce an owner
// verification.
device_settings_test_helper_.Flush();
- // Test that the mount has succeeded.
+
state_.reset(new TestAttemptState(user_context_, false));
state_->PresetCryptohomeStatus(true, cryptohome::MOUNT_ERROR_NONE);
+
+ // The owner key util should not have found the owner key, so login should
+ // not be allowed.
EXPECT_EQ(ParallelAuthenticator::OWNER_REQUIRED,
SetAndResolveState(auth_.get(), state_.release()));
+ EXPECT_TRUE(LoginState::Get()->IsInSafeMode());
// Unset global objects used by this test.
LoginState::Shutdown();

Powered by Google App Engine
This is Rietveld 408576698