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

Side by Side Diff: jingle/notifier/communicator/single_login_attempt_unittest.cc

Issue 21121003: Plug the leak in SingleLoginAttemptTest.* (jingle_unittests). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 4 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "jingle/notifier/communicator/single_login_attempt.h" 5 #include "jingle/notifier/communicator/single_login_attempt.h"
6 6
7 #include <cstddef> 7 #include <cstddef>
8 8
9 #include "base/compiler_specific.h" 9 #include "base/compiler_specific.h"
10 #include "base/memory/scoped_ptr.h" 10 #include "base/memory/scoped_ptr.h"
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
88 new net::TestURLRequestContextGetter( 88 new net::TestURLRequestContextGetter(
89 base::MessageLoopProxy::current(), 89 base::MessageLoopProxy::current(),
90 scoped_ptr<net::TestURLRequestContext>( 90 scoped_ptr<net::TestURLRequestContext>(
91 new MyTestURLRequestContext())), 91 new MyTestURLRequestContext())),
92 ServerList( 92 ServerList(
93 1, 93 1,
94 ServerInformation( 94 ServerInformation(
95 net::HostPortPair("example.com", 100), SUPPORTS_SSLTCP)), 95 net::HostPortPair("example.com", 100), SUPPORTS_SSLTCP)),
96 false /* try_ssltcp_first */, 96 false /* try_ssltcp_first */,
97 "auth_mechanism"), 97 "auth_mechanism"),
98 attempt_(login_settings_, &fake_delegate_) {} 98 attempt_(new SingleLoginAttempt(login_settings_, &fake_delegate_)) {}
99 99
100 virtual void TearDown() OVERRIDE { 100 virtual void TearDown() OVERRIDE {
101 message_loop_.RunUntilIdle(); 101 message_loop_.RunUntilIdle();
102 } 102 }
103 103
104 void FireRedirect(buzz::XmlElement* redirect_error) { 104 void FireRedirect(buzz::XmlElement* redirect_error) {
105 attempt_.OnError(buzz::XmppEngine::ERROR_STREAM, 0, redirect_error); 105 attempt_->OnError(buzz::XmppEngine::ERROR_STREAM, 0, redirect_error);
106 }
107
108 ~SingleLoginAttemptTest() {
109 attempt_.reset(NULL);
awong 2013/07/29 20:59:59 Don't need the explicit NULL.
110 message_loop_.RunUntilIdle();
106 } 111 }
107 112
108 private: 113 private:
109 base::MessageLoop message_loop_; 114 base::MessageLoop message_loop_;
110 const LoginSettings login_settings_; 115 const LoginSettings login_settings_;
111 116
112 protected: 117 protected:
113 SingleLoginAttempt attempt_; 118 scoped_ptr<SingleLoginAttempt> attempt_;
114 FakeDelegate fake_delegate_; 119 FakeDelegate fake_delegate_;
115 FakeBaseTask fake_base_task_; 120 FakeBaseTask fake_base_task_;
116 }; 121 };
117 122
118 // Fire OnConnect and make sure the base task gets passed to the 123 // Fire OnConnect and make sure the base task gets passed to the
119 // delegate properly. 124 // delegate properly.
120 TEST_F(SingleLoginAttemptTest, Basic) { 125 TEST_F(SingleLoginAttemptTest, Basic) {
121 attempt_.OnConnect(fake_base_task_.AsWeakPtr()); 126 attempt_->OnConnect(fake_base_task_.AsWeakPtr());
122 EXPECT_EQ(CONNECTED, fake_delegate_.state()); 127 EXPECT_EQ(CONNECTED, fake_delegate_.state());
123 EXPECT_EQ(fake_base_task_.AsWeakPtr().get(), 128 EXPECT_EQ(fake_base_task_.AsWeakPtr().get(),
124 fake_delegate_.base_task().get()); 129 fake_delegate_.base_task().get());
125 } 130 }
126 131
127 // Fire OnErrors and make sure the delegate gets the 132 // Fire OnErrors and make sure the delegate gets the
128 // OnSettingsExhausted() event. 133 // OnSettingsExhausted() event.
129 TEST_F(SingleLoginAttemptTest, Error) { 134 TEST_F(SingleLoginAttemptTest, Error) {
130 for (int i = 0; i < 2; ++i) { 135 for (int i = 0; i < 2; ++i) {
131 EXPECT_EQ(IDLE, fake_delegate_.state()); 136 EXPECT_EQ(IDLE, fake_delegate_.state());
132 attempt_.OnError(buzz::XmppEngine::ERROR_NONE, 0, NULL); 137 attempt_->OnError(buzz::XmppEngine::ERROR_NONE, 0, NULL);
133 } 138 }
134 EXPECT_EQ(SETTINGS_EXHAUSTED, fake_delegate_.state()); 139 EXPECT_EQ(SETTINGS_EXHAUSTED, fake_delegate_.state());
135 } 140 }
136 141
137 // Fire OnErrors but replace the last one with OnConnect, and make 142 // Fire OnErrors but replace the last one with OnConnect, and make
138 // sure the delegate still gets the OnConnect message. 143 // sure the delegate still gets the OnConnect message.
139 TEST_F(SingleLoginAttemptTest, ErrorThenSuccess) { 144 TEST_F(SingleLoginAttemptTest, ErrorThenSuccess) {
140 attempt_.OnError(buzz::XmppEngine::ERROR_NONE, 0, NULL); 145 attempt_->OnError(buzz::XmppEngine::ERROR_NONE, 0, NULL);
141 attempt_.OnConnect(fake_base_task_.AsWeakPtr()); 146 attempt_->OnConnect(fake_base_task_.AsWeakPtr());
142 EXPECT_EQ(CONNECTED, fake_delegate_.state()); 147 EXPECT_EQ(CONNECTED, fake_delegate_.state());
143 EXPECT_EQ(fake_base_task_.AsWeakPtr().get(), 148 EXPECT_EQ(fake_base_task_.AsWeakPtr().get(),
144 fake_delegate_.base_task().get()); 149 fake_delegate_.base_task().get());
145 } 150 }
146 151
147 buzz::XmlElement* MakeRedirectError(const std::string& redirect_server) { 152 buzz::XmlElement* MakeRedirectError(const std::string& redirect_server) {
148 buzz::XmlElement* stream_error = 153 buzz::XmlElement* stream_error =
149 new buzz::XmlElement(buzz::QN_STREAM_ERROR, true); 154 new buzz::XmlElement(buzz::QN_STREAM_ERROR, true);
150 stream_error->AddElement( 155 stream_error->AddElement(
151 new buzz::XmlElement(buzz::QN_XSTREAM_SEE_OTHER_HOST, true)); 156 new buzz::XmlElement(buzz::QN_XSTREAM_SEE_OTHER_HOST, true));
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
238 TEST_F(SingleLoginAttemptTest, RedirectMissingSeeOtherHost) { 243 TEST_F(SingleLoginAttemptTest, RedirectMissingSeeOtherHost) {
239 scoped_ptr<buzz::XmlElement> redirect_error(MakeRedirectError(std::string())); 244 scoped_ptr<buzz::XmlElement> redirect_error(MakeRedirectError(std::string()));
240 redirect_error->RemoveChildAfter(NULL); 245 redirect_error->RemoveChildAfter(NULL);
241 FireRedirect(redirect_error.get()); 246 FireRedirect(redirect_error.get());
242 EXPECT_EQ(IDLE, fake_delegate_.state()); 247 EXPECT_EQ(IDLE, fake_delegate_.state());
243 } 248 }
244 249
245 // Fire 'Unauthorized' errors and make sure the delegate gets the 250 // Fire 'Unauthorized' errors and make sure the delegate gets the
246 // OnCredentialsRejected() event. 251 // OnCredentialsRejected() event.
247 TEST_F(SingleLoginAttemptTest, CredentialsRejected) { 252 TEST_F(SingleLoginAttemptTest, CredentialsRejected) {
248 attempt_.OnError(buzz::XmppEngine::ERROR_UNAUTHORIZED, 0, NULL); 253 attempt_->OnError(buzz::XmppEngine::ERROR_UNAUTHORIZED, 0, NULL);
249 EXPECT_EQ(CREDENTIALS_REJECTED, fake_delegate_.state()); 254 EXPECT_EQ(CREDENTIALS_REJECTED, fake_delegate_.state());
250 } 255 }
251 256
252 } // namespace 257 } // namespace
253 258
254 } // namespace notifier 259 } // namespace notifier
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698