• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 
15 namespace chromeos {
16 
17 using ::testing::_;
18 using ::testing::Invoke;
19 
MockAuthResponseHandler(const GURL & url,const net::URLRequestStatus & status,const int code,const std::string & data)20 MockAuthResponseHandler::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 
CompleteFetch(URLFetcher::Delegate * delegate,const GURL remote,const net::URLRequestStatus status,const int http_response_code,const std::string data)36 void 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 
MockNetwork(std::string data,URLFetcher::Delegate * delegate)49 URLFetcher* 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