106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Copyright (c) 2009 The Chromium Authors. All rights reserved.
206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// Use of this source code is governed by a BSD-style license that can be
306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch// found in the LICENSE file.
406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "chrome/common/net/gaia/gaia_authenticator.h"
606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include <string>
806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "chrome/common/net/http_return.h"
1006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "googleurl/src/gurl.h"
1106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch#include "testing/gtest/include/gtest/gtest.h"
1206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
1306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochusing std::string;
1406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
1506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochnamespace gaia {
1606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
1706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochclass GaiaAuthenticatorTest : public testing::Test { };
1806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
1906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdochclass GaiaAuthMockForGaiaAuthenticator : public GaiaAuthenticator {
2006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch public:
2106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  GaiaAuthMockForGaiaAuthenticator()
2206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch      : GaiaAuthenticator("useragent", "serviceid", "http://gaia_url") {}
2306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  ~GaiaAuthMockForGaiaAuthenticator() {}
2406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch protected:
2506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  bool Post(const GURL& url, const string& post_body,
2606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch            unsigned long* response_code, string* response_body) {
2706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch    *response_code = RC_REQUEST_OK;
2806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch    response_body->assign("body\n");
2906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch    return true;
3006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  }
3106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
3206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  int GetBackoffDelaySeconds(
3306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch      int current_backoff_delay) {
3406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch    // Dummy delay value.
3506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch    return 5;
3606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  }
3706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch};
3806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
3906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen MurdochTEST(GaiaAuthenticatorTest, TestNewlineAtEndOfAuthTokenRemoved) {
4006741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  GaiaAuthMockForGaiaAuthenticator mock_auth;
4106741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  MessageLoop message_loop;
4206741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  mock_auth.set_message_loop(&message_loop);
4306741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  GaiaAuthenticator::AuthResults results;
4406741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  EXPECT_TRUE(mock_auth.IssueAuthToken(&results, "sid"));
4506741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch  EXPECT_EQ(0, results.auth_token.compare("body"));
4606741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}
4706741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
4806741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch}  // namespace gaia
4906741cbc25cd4227a9fba40dfd0273bfcc1a587aBen Murdoch
50