Ignore non-active fullscreen windows for shelf state.
[chromium-blink-merge.git] / net / proxy / network_delegate_error_observer_unittest.cc
blobcb32760cafd786e9242142b832c73b21b02afe04
1 // Copyright (c) 2012 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.
5 #include "net/proxy/network_delegate_error_observer.h"
7 #include "base/bind.h"
8 #include "base/bind_helpers.h"
9 #include "base/message_loop/message_loop_proxy.h"
10 #include "base/threading/thread.h"
11 #include "net/base/net_errors.h"
12 #include "net/base/network_delegate.h"
13 #include "testing/gtest/include/gtest/gtest.h"
15 namespace net {
17 namespace {
19 class TestNetworkDelegate : public net::NetworkDelegate {
20 public:
21 TestNetworkDelegate() : got_pac_error_(false) {}
22 virtual ~TestNetworkDelegate() {}
24 bool got_pac_error() const { return got_pac_error_; }
26 private:
27 // net::NetworkDelegate implementation.
28 virtual int OnBeforeURLRequest(URLRequest* request,
29 const CompletionCallback& callback,
30 GURL* new_url) OVERRIDE {
31 return OK;
33 virtual int OnBeforeSendHeaders(URLRequest* request,
34 const CompletionCallback& callback,
35 HttpRequestHeaders* headers) OVERRIDE {
36 return OK;
38 virtual void OnSendHeaders(URLRequest* request,
39 const HttpRequestHeaders& headers) OVERRIDE {}
40 virtual int OnHeadersReceived(
41 URLRequest* request,
42 const CompletionCallback& callback,
43 const HttpResponseHeaders* original_response_headers,
44 scoped_refptr<HttpResponseHeaders>* override_response_headers) OVERRIDE {
45 return net::OK;
47 virtual void OnBeforeRedirect(URLRequest* request,
48 const GURL& new_location) OVERRIDE {}
49 virtual void OnResponseStarted(URLRequest* request) OVERRIDE {}
50 virtual void OnRawBytesRead(const URLRequest& request,
51 int bytes_read) OVERRIDE {}
52 virtual void OnCompleted(URLRequest* request, bool started) OVERRIDE {}
53 virtual void OnURLRequestDestroyed(URLRequest* request) OVERRIDE {}
55 virtual void OnPACScriptError(int line_number,
56 const base::string16& error) OVERRIDE {
57 got_pac_error_ = true;
59 virtual AuthRequiredResponse OnAuthRequired(
60 URLRequest* request,
61 const AuthChallengeInfo& auth_info,
62 const AuthCallback& callback,
63 AuthCredentials* credentials) OVERRIDE {
64 return AUTH_REQUIRED_RESPONSE_NO_ACTION;
66 virtual bool OnCanGetCookies(const URLRequest& request,
67 const CookieList& cookie_list) OVERRIDE {
68 return true;
70 virtual bool OnCanSetCookie(const URLRequest& request,
71 const std::string& cookie_line,
72 CookieOptions* options) OVERRIDE {
73 return true;
75 virtual bool OnCanAccessFile(const net::URLRequest& request,
76 const base::FilePath& path) const OVERRIDE {
77 return true;
79 virtual bool OnCanThrottleRequest(const URLRequest& request) const OVERRIDE {
80 return false;
82 virtual int OnBeforeSocketStreamConnect(
83 SocketStream* stream,
84 const CompletionCallback& callback) OVERRIDE {
85 return OK;
87 virtual void OnRequestWaitStateChange(const net::URLRequest& request,
88 RequestWaitState state) OVERRIDE {
91 bool got_pac_error_;
94 } // namespace
96 // Check that the OnPACScriptError method can be called from an arbitrary
97 // thread.
98 TEST(NetworkDelegateErrorObserverTest, CallOnThread) {
99 base::Thread thread("test_thread");
100 thread.Start();
101 TestNetworkDelegate network_delegate;
102 NetworkDelegateErrorObserver observer(
103 &network_delegate, base::MessageLoopProxy::current().get());
104 thread.message_loop()
105 ->PostTask(FROM_HERE,
106 base::Bind(&NetworkDelegateErrorObserver::OnPACScriptError,
107 base::Unretained(&observer),
109 base::string16()));
110 thread.Stop();
111 base::MessageLoop::current()->RunUntilIdle();
112 ASSERT_TRUE(network_delegate.got_pac_error());
115 // Check that passing a NULL network delegate works.
116 TEST(NetworkDelegateErrorObserverTest, NoDelegate) {
117 base::Thread thread("test_thread");
118 thread.Start();
119 NetworkDelegateErrorObserver observer(
120 NULL, base::MessageLoopProxy::current().get());
121 thread.message_loop()
122 ->PostTask(FROM_HERE,
123 base::Bind(&NetworkDelegateErrorObserver::OnPACScriptError,
124 base::Unretained(&observer),
126 base::string16()));
127 thread.Stop();
128 base::MessageLoop::current()->RunUntilIdle();
129 // Shouldn't have crashed until here...
132 } // namespace net