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

Unified Diff: chrome/test/sync/engine/mock_gaia_authenticator_unittest.cc

Issue 194065: Initial commit of sync engine code to browser/sync.... (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Fixes to gtest include path, reverted syncapi. Created 11 years, 3 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/test/sync/engine/mock_gaia_authenticator_unittest.cc
===================================================================
--- chrome/test/sync/engine/mock_gaia_authenticator_unittest.cc (revision 0)
+++ chrome/test/sync/engine/mock_gaia_authenticator_unittest.cc (revision 0)
@@ -0,0 +1,157 @@
+// Copyright (c) 2009 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Unit tests for MockGaiaAuthenticator.
+
+#include "base/basictypes.h"
+#include "base/port.h"
+#include "chrome/browser/sync/engine/net/gaia_authenticator.h"
+#include "chrome/browser/sync/protocol/service_constants.h"
+#include "chrome/test/sync/engine/mock_gaia_authenticator.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace {
+
+// Test if authentication succeeds for a mock user added earlier.
+TEST(MockGaiaAuthenticatorTest, TestAuthenticationSuccess) {
+ browser_sync::MockGaiaAuthenticator
+ mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
+ "some random url");
+
+ // Initialize a mock user, and add to mock authenticator.
+ browser_sync::MockUser mock_user;
+ mock_user.email = "test";
+ mock_user.passwd = "passwd";
+ mock_user.auth_token = "SomeAuthToken";
+ mock_user.lsid = "SomeLSID";
+ mock_user.sid = "SomeSID";
+ mock_user.auth_error = browser_sync::None;
+ mock_gaia_auth.AddMockUser(mock_user);
+
+ // Assert away ...
+ ASSERT_TRUE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+}
+
+// Test if authentication fails for a mock user that was never added.
+TEST(MockGaiaAuthenticatorTest, TestAuthenticationFailure) {
+ browser_sync::MockGaiaAuthenticator
+ mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
+ "some random url");
+
+ // At this point, in real code, we would be adding mock users to our mock
+ // object. However, in this unittest, we exercise the path where this step is
+ // missing, and assert that the outcome is still consistent with that of the
+ // real GaiaAuthenticator.
+
+ // Assert away ...
+ ASSERT_FALSE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "");
+}
+
+// Test if authentication fails after a mock user is removed.
+TEST(MockGaiaAuthenticatorTest, TestRemoveMockUser) {
+ // Instantiate authenticator.
+ browser_sync::MockGaiaAuthenticator
+ mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
+ "some random url");
+
+ // Add our mock user
+ mock_gaia_auth.AddMockUser("test", "passwd", "SomeAuthToken", "SomeLSID",
+ "SomeSID", browser_sync::None);
+
+ // Make sure authentication succeeds.
+ ASSERT_TRUE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+
+ // Remove the just-added user from our list.
+ mock_gaia_auth.RemoveMockUser("test");
+
+ // ... and authentication should fail.
+ ASSERT_FALSE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "");
+}
+
+// Test if authentication fails after all mock users are removed.
+TEST(MockGaiaAuthenticatorTest, TestRemoveAllMockUsers) {
+ // Instantiate authenticator.
+ browser_sync::MockGaiaAuthenticator
+ mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
+ "some random url");
+
+ // Add our sample mock user.
+ mock_gaia_auth.AddMockUser("test", "passwd", "SomeAuthToken", "SomeLSID",
+ "SomeSID", browser_sync::None);
+
+ // Make sure authentication succeeds
+ ASSERT_TRUE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+
+ // Now remove all mock users.
+ mock_gaia_auth.RemoveAllMockUsers();
+
+ // And confirm that authentication fails.
+ ASSERT_FALSE(mock_gaia_auth.Authenticate("test", "passwd"));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "");
+}
+
+// Test authentication with saved credentials.
+TEST(MockGaiaAuthenticatorTest, TestSavedCredentials) {
+ // Instantiate authenticator.
+ browser_sync::MockGaiaAuthenticator
+ mock_gaia_auth("User-Agent", SYNC_SERVICE_NAME,
+ "some random url");
+
+ // Add our sample mock user.
+ mock_gaia_auth.AddMockUser("test", "passwd", "SomeAuthToken", "SomeLSID",
+ "SomeSID", browser_sync::None);
+
+ // Ask to save credentials.
+ ASSERT_TRUE(mock_gaia_auth.Authenticate("test", "passwd", true));
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+
+ // Now make a call that uses saved credentials, and assert that we get the
+ // same tokens back.
+ ASSERT_TRUE(mock_gaia_auth.Authenticate());
+ ASSERT_STREQ(mock_gaia_auth.email().c_str(), "test");
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+
+ // Now clear the saved credentials by toggling the flag while authenticating.
+ ASSERT_TRUE(mock_gaia_auth.Authenticate("test", "passwd", false));
+
+ // Test if saved credentials have been cleared.
+ ASSERT_STREQ(mock_gaia_auth.email().c_str(), "");
+
+ // Assert that current authentication session still succeeds (we only asked
+ // not to save it for future requests.)
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "SomeAuthToken");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "SomeSID");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "SomeLSID");
+
+ // Now try to use saved credentials:
+ ASSERT_STREQ(mock_gaia_auth.email().c_str(), "");
+ ASSERT_FALSE(mock_gaia_auth.Authenticate());
+
+ // And assert that any future requests that rely on saved credentials fail.
+ ASSERT_STREQ(mock_gaia_auth.auth_token().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.sid().c_str(), "");
+ ASSERT_STREQ(mock_gaia_auth.lsid().c_str(), "");
+}
+} // namespace
Property changes on: chrome\test\sync\engine\mock_gaia_authenticator_unittest.cc
___________________________________________________________________
Added: svn:eol-style
+ LF

Powered by Google App Engine
This is Rietveld 408576698