1// Copyright (c) 2011 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "chrome/browser/chromeos/login/mock_auth_response_handler.h" 6 7#include <string> 8 9#include "base/message_loop.h" 10#include "chrome/common/net/url_fetcher.h" 11#include "googleurl/src/gurl.h" 12#include "net/url_request/url_request_status.h" 13#include "testing/gmock/include/gmock/gmock.h" 14 15namespace chromeos { 16 17using ::testing::_; 18using ::testing::Invoke; 19 20MockAuthResponseHandler::MockAuthResponseHandler( 21 const GURL& url, 22 const net::URLRequestStatus& status, 23 const int code, 24 const std::string& data) 25 : remote_(url), 26 status_(status), 27 http_response_code_(code), 28 data_(data) { 29 // Take the args sent to Handle() and pass them to MockNetwork(), which will 30 // use the data passed to the constructor here to fill out the call to 31 // OnURLFetchComplete(). 32 ON_CALL(*this, Handle(_,_)) 33 .WillByDefault(Invoke(this, &MockAuthResponseHandler::MockNetwork)); 34} 35 36void MockAuthResponseHandler::CompleteFetch(URLFetcher::Delegate* delegate, 37 const GURL remote, 38 const net::URLRequestStatus status, 39 const int http_response_code, 40 const std::string data) { 41 delegate->OnURLFetchComplete(NULL, 42 remote, 43 status, 44 http_response_code, 45 ResponseCookies(), 46 data); 47} 48 49URLFetcher* MockAuthResponseHandler::MockNetwork( 50 std::string data, 51 URLFetcher::Delegate* delegate) { 52 MessageLoop::current()->PostTask( 53 FROM_HERE, 54 NewRunnableFunction(MockAuthResponseHandler::CompleteFetch, 55 delegate, 56 remote_, 57 status_, 58 http_response_code_, 59 data_)); 60 return new URLFetcher(GURL(), URLFetcher::GET, delegate); 61} 62 63} // namespace chromeos 64