Index: chrome/browser/chromeos/login/google_authenticator_unittest.cc |
=================================================================== |
--- chrome/browser/chromeos/login/google_authenticator_unittest.cc (revision 42341) |
+++ chrome/browser/chromeos/login/google_authenticator_unittest.cc (working copy) |
@@ -13,6 +13,7 @@ |
#include "base/message_loop.h" |
#include "base/scoped_ptr.h" |
#include "chrome/browser/chromeos/cros/mock_cryptohome_library.h" |
+#include "chrome/browser/chromeos/cros/mock_library_loader.h" |
#include "chrome/browser/chromeos/login/mock_auth_response_handler.h" |
#include "chrome/browser/chrome_thread.h" |
#include "chrome/browser/net/url_fetcher.h" |
@@ -22,6 +23,7 @@ |
#include "testing/gmock/include/gmock/gmock.h" |
namespace chromeos { |
+using ::testing::AnyNumber; |
using ::testing::InvokeWithoutArgs; |
using ::testing::Return; |
using ::testing::_; |
@@ -47,10 +49,33 @@ |
} |
~GoogleAuthenticatorTest() {} |
+ virtual void SetUp() { |
+ chromeos::CrosLibrary::TestApi* test_api = |
+ chromeos::CrosLibrary::Get()->GetTestApi(); |
+ |
+ loader_ = new MockLibraryLoader(); |
+ ON_CALL(*loader_, Load(_)) |
+ .WillByDefault(Return(true)); |
+ EXPECT_CALL(*loader_, Load(_)) |
+ .Times(AnyNumber()); |
+ |
+ test_api->SetLibraryLoader(loader_); |
+ |
+ mock_library_ = new MockCryptohomeLibrary(); |
+ test_api->SetCryptohomeLibrary(mock_library_); |
+} |
+ |
+ // Tears down the test fixture. |
+ virtual void TearDown() { |
+ } |
+ |
unsigned char fake_hash_[32]; |
std::string hash_ascii_; |
std::string username_; |
ResponseCookies cookies_; |
+ // Mocks, destroyed by CrosLibrary class. |
+ MockCryptohomeLibrary* mock_library_; |
+ MockLibraryLoader* loader_; |
}; |
TEST_F(GoogleAuthenticatorTest, SaltToAsciiTest) { |
@@ -60,8 +85,7 @@ |
fake_salt[7] = 10 << 4; |
std::vector<unsigned char> salt_v(fake_salt, fake_salt + sizeof(fake_salt)); |
- MockCryptohomeLibrary library; |
- GoogleAuthenticator auth(NULL, &library, NULL, NULL); |
+ GoogleAuthenticator auth(NULL, NULL, NULL); |
auth.set_system_salt(salt_v); |
EXPECT_EQ("0a010000000000a0", auth.SaltAsAscii()); |
@@ -91,24 +115,24 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginSuccess(username_, _)); |
- MockCryptohomeLibrary library; |
- EXPECT_CALL(library, Mount(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, Mount(username_, hash_ascii_)) |
.WillOnce(Return(true)); |
- GoogleAuthenticator auth(&consumer, &library, NULL, NULL); |
- auth.OnLoginSuccess(&consumer, &library, username_, hash_ascii_, cookies_); |
+ GoogleAuthenticator auth(&consumer, NULL, NULL); |
+ auth.OnLoginSuccess(&consumer, username_, hash_ascii_, |
+ cookies_); |
} |
TEST_F(GoogleAuthenticatorTest, MountFailureTest) { |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginFailure(_)); |
- MockCryptohomeLibrary library; |
- EXPECT_CALL(library, Mount(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, Mount(username_, hash_ascii_)) |
.WillOnce(Return(false)); |
- GoogleAuthenticator auth(&consumer, &library, NULL, NULL); |
- auth.OnLoginSuccess(&consumer, &library, username_, hash_ascii_, cookies_); |
+ GoogleAuthenticator auth(&consumer, NULL, NULL); |
+ auth.OnLoginSuccess(&consumer, username_, hash_ascii_, |
+ cookies_); |
} |
static void Quit() { MessageLoop::current()->Quit(); } |
@@ -125,11 +149,10 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginFailure(data)) |
.WillOnce(InvokeWithoutArgs(Quit)); |
- MockCryptohomeLibrary library; |
- EXPECT_CALL(library, CheckKey(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, CheckKey(username_, hash_ascii_)) |
.WillOnce(Return(false)); |
- GoogleAuthenticator auth(&consumer, &library, NULL, NULL); |
+ GoogleAuthenticator auth(&consumer, NULL, NULL); |
auth.set_password_hash(hash_ascii_); |
auth.set_username(username_); |
auth.OnURLFetchComplete(NULL, source, status, 0, cookies_, data); |
@@ -148,9 +171,8 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginFailure(data)) |
.WillOnce(InvokeWithoutArgs(Quit)); |
- MockCryptohomeLibrary library; |
- GoogleAuthenticator auth(&consumer, &library, NULL, NULL); |
+ GoogleAuthenticator auth(&consumer, NULL, NULL); |
auth.OnURLFetchComplete(NULL, source, status, 403, cookies_, data); |
MessageLoop::current()->Run(); // So tasks can be posted. |
} |
@@ -168,13 +190,12 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginSuccess(username_, cookies_)) |
.WillOnce(InvokeWithoutArgs(Quit)); |
- MockCryptohomeLibrary library; |
- EXPECT_CALL(library, CheckKey(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, CheckKey(username_, hash_ascii_)) |
.WillOnce(Return(true)); |
- EXPECT_CALL(library, Mount(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, Mount(username_, hash_ascii_)) |
.WillOnce(Return(true)); |
- GoogleAuthenticator auth(&consumer, &library, NULL, NULL); |
+ GoogleAuthenticator auth(&consumer, NULL, NULL); |
auth.set_password_hash(hash_ascii_); |
auth.set_username(username_); |
auth.OnURLFetchComplete(NULL, source, status, 0, cookies_, data); |
@@ -193,13 +214,11 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginFailure(data)) |
.WillOnce(InvokeWithoutArgs(Quit)); |
- MockCryptohomeLibrary library; |
MockAuthResponseHandler* cl_handler = new MockAuthResponseHandler; |
EXPECT_CALL(*cl_handler, CanHandle(cl_source)) |
.WillOnce(Return(true)); |
GoogleAuthenticator auth(&consumer, |
- &library, |
cl_handler, // takes ownership. |
new IssueResponseHandler(NULL)); |
auth.set_password_hash(hash_ascii_); |
@@ -230,12 +249,10 @@ |
MockConsumer consumer; |
EXPECT_CALL(consumer, OnLoginSuccess(username_, cookies_)) |
.WillOnce(InvokeWithoutArgs(Quit)); |
- MockCryptohomeLibrary library; |
- EXPECT_CALL(library, Mount(username_, hash_ascii_)) |
+ EXPECT_CALL(*mock_library_, Mount(username_, hash_ascii_)) |
.WillOnce(Return(true)); |
GoogleAuthenticator auth(&consumer, |
- &library, |
new ClientLoginResponseHandler(NULL), |
new IssueResponseHandler(NULL)); |
auth.set_password_hash(hash_ascii_); |