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

Side by Side Diff: net/ftp/ftp_ctrl_response_buffer_unittest.cc

Issue 2109503009: Refactor net tests to use GMock matchers for checking net::Error results (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Revert changes to contents.txt files Created 4 years, 5 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
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "net/ftp/ftp_ctrl_response_buffer.h" 5 #include "net/ftp/ftp_ctrl_response_buffer.h"
6 6
7 #include <string.h> 7 #include <string.h>
8 8
9 #include "net/base/net_errors.h" 9 #include "net/base/net_errors.h"
10 #include "net/test/gtest_util.h"
11 #include "testing/gmock/include/gmock/gmock.h"
10 #include "testing/gtest/include/gtest/gtest.h" 12 #include "testing/gtest/include/gtest/gtest.h"
11 13
14 using net::test::IsError;
15 using net::test::IsOk;
16
12 namespace net { 17 namespace net {
13 18
14 namespace { 19 namespace {
15 20
16 class FtpCtrlResponseBufferTest : public testing::Test { 21 class FtpCtrlResponseBufferTest : public testing::Test {
17 public: 22 public:
18 FtpCtrlResponseBufferTest() : buffer_(BoundNetLog()) {} 23 FtpCtrlResponseBufferTest() : buffer_(BoundNetLog()) {}
19 24
20 protected: 25 protected:
21 int PushDataToBuffer(const char* data) { 26 int PushDataToBuffer(const char* data) {
22 return buffer_.ConsumeData(data, strlen(data)); 27 return buffer_.ConsumeData(data, strlen(data));
23 } 28 }
24 29
25 FtpCtrlResponseBuffer buffer_; 30 FtpCtrlResponseBuffer buffer_;
26 }; 31 };
27 32
28 TEST_F(FtpCtrlResponseBufferTest, Basic) { 33 TEST_F(FtpCtrlResponseBufferTest, Basic) {
29 EXPECT_FALSE(buffer_.ResponseAvailable()); 34 EXPECT_FALSE(buffer_.ResponseAvailable());
30 35
31 EXPECT_EQ(OK, PushDataToBuffer("200 Status Text\r\n")); 36 EXPECT_THAT(PushDataToBuffer("200 Status Text\r\n"), IsOk());
32 EXPECT_TRUE(buffer_.ResponseAvailable()); 37 EXPECT_TRUE(buffer_.ResponseAvailable());
33 38
34 FtpCtrlResponse response = buffer_.PopResponse(); 39 FtpCtrlResponse response = buffer_.PopResponse();
35 EXPECT_FALSE(buffer_.ResponseAvailable()); 40 EXPECT_FALSE(buffer_.ResponseAvailable());
36 EXPECT_EQ(200, response.status_code); 41 EXPECT_EQ(200, response.status_code);
37 ASSERT_EQ(1U, response.lines.size()); 42 ASSERT_EQ(1U, response.lines.size());
38 EXPECT_EQ("Status Text", response.lines[0]); 43 EXPECT_EQ("Status Text", response.lines[0]);
39 } 44 }
40 45
41 TEST_F(FtpCtrlResponseBufferTest, Chunks) { 46 TEST_F(FtpCtrlResponseBufferTest, Chunks) {
42 EXPECT_EQ(OK, PushDataToBuffer("20")); 47 EXPECT_THAT(PushDataToBuffer("20"), IsOk());
43 EXPECT_FALSE(buffer_.ResponseAvailable()); 48 EXPECT_FALSE(buffer_.ResponseAvailable());
44 EXPECT_EQ(OK, PushDataToBuffer("0 Status")); 49 EXPECT_THAT(PushDataToBuffer("0 Status"), IsOk());
45 EXPECT_FALSE(buffer_.ResponseAvailable()); 50 EXPECT_FALSE(buffer_.ResponseAvailable());
46 EXPECT_EQ(OK, PushDataToBuffer(" Text")); 51 EXPECT_THAT(PushDataToBuffer(" Text"), IsOk());
47 EXPECT_FALSE(buffer_.ResponseAvailable()); 52 EXPECT_FALSE(buffer_.ResponseAvailable());
48 EXPECT_EQ(OK, PushDataToBuffer("\r")); 53 EXPECT_THAT(PushDataToBuffer("\r"), IsOk());
49 EXPECT_FALSE(buffer_.ResponseAvailable()); 54 EXPECT_FALSE(buffer_.ResponseAvailable());
50 EXPECT_EQ(OK, PushDataToBuffer("\n")); 55 EXPECT_THAT(PushDataToBuffer("\n"), IsOk());
51 EXPECT_TRUE(buffer_.ResponseAvailable()); 56 EXPECT_TRUE(buffer_.ResponseAvailable());
52 57
53 FtpCtrlResponse response = buffer_.PopResponse(); 58 FtpCtrlResponse response = buffer_.PopResponse();
54 EXPECT_FALSE(buffer_.ResponseAvailable()); 59 EXPECT_FALSE(buffer_.ResponseAvailable());
55 EXPECT_EQ(200, response.status_code); 60 EXPECT_EQ(200, response.status_code);
56 ASSERT_EQ(1U, response.lines.size()); 61 ASSERT_EQ(1U, response.lines.size());
57 EXPECT_EQ("Status Text", response.lines[0]); 62 EXPECT_EQ("Status Text", response.lines[0]);
58 } 63 }
59 64
60 TEST_F(FtpCtrlResponseBufferTest, Continuation) { 65 TEST_F(FtpCtrlResponseBufferTest, Continuation) {
61 EXPECT_EQ(OK, PushDataToBuffer("230-FirstLine\r\n")); 66 EXPECT_THAT(PushDataToBuffer("230-FirstLine\r\n"), IsOk());
62 EXPECT_FALSE(buffer_.ResponseAvailable()); 67 EXPECT_FALSE(buffer_.ResponseAvailable());
63 68
64 EXPECT_EQ(OK, PushDataToBuffer("230-SecondLine\r\n")); 69 EXPECT_THAT(PushDataToBuffer("230-SecondLine\r\n"), IsOk());
65 EXPECT_FALSE(buffer_.ResponseAvailable()); 70 EXPECT_FALSE(buffer_.ResponseAvailable());
66 71
67 EXPECT_EQ(OK, PushDataToBuffer("230 LastLine\r\n")); 72 EXPECT_THAT(PushDataToBuffer("230 LastLine\r\n"), IsOk());
68 EXPECT_TRUE(buffer_.ResponseAvailable()); 73 EXPECT_TRUE(buffer_.ResponseAvailable());
69 74
70 FtpCtrlResponse response = buffer_.PopResponse(); 75 FtpCtrlResponse response = buffer_.PopResponse();
71 EXPECT_FALSE(buffer_.ResponseAvailable()); 76 EXPECT_FALSE(buffer_.ResponseAvailable());
72 EXPECT_EQ(230, response.status_code); 77 EXPECT_EQ(230, response.status_code);
73 ASSERT_EQ(3U, response.lines.size()); 78 ASSERT_EQ(3U, response.lines.size());
74 EXPECT_EQ("FirstLine", response.lines[0]); 79 EXPECT_EQ("FirstLine", response.lines[0]);
75 EXPECT_EQ("SecondLine", response.lines[1]); 80 EXPECT_EQ("SecondLine", response.lines[1]);
76 EXPECT_EQ("LastLine", response.lines[2]); 81 EXPECT_EQ("LastLine", response.lines[2]);
77 } 82 }
78 83
79 TEST_F(FtpCtrlResponseBufferTest, MultilineContinuation) { 84 TEST_F(FtpCtrlResponseBufferTest, MultilineContinuation) {
80 EXPECT_EQ(OK, PushDataToBuffer("230-FirstLine\r\n")); 85 EXPECT_THAT(PushDataToBuffer("230-FirstLine\r\n"), IsOk());
81 EXPECT_FALSE(buffer_.ResponseAvailable()); 86 EXPECT_FALSE(buffer_.ResponseAvailable());
82 87
83 EXPECT_EQ(OK, PushDataToBuffer("Continued\r\n")); 88 EXPECT_THAT(PushDataToBuffer("Continued\r\n"), IsOk());
84 EXPECT_FALSE(buffer_.ResponseAvailable()); 89 EXPECT_FALSE(buffer_.ResponseAvailable());
85 90
86 EXPECT_EQ(OK, PushDataToBuffer("230-SecondLine\r\n")); 91 EXPECT_THAT(PushDataToBuffer("230-SecondLine\r\n"), IsOk());
87 EXPECT_FALSE(buffer_.ResponseAvailable()); 92 EXPECT_FALSE(buffer_.ResponseAvailable());
88 93
89 EXPECT_EQ(OK, PushDataToBuffer("215 Continued\r\n")); 94 EXPECT_THAT(PushDataToBuffer("215 Continued\r\n"), IsOk());
90 EXPECT_FALSE(buffer_.ResponseAvailable()); 95 EXPECT_FALSE(buffer_.ResponseAvailable());
91 96
92 EXPECT_EQ(OK, PushDataToBuffer("230 LastLine\r\n")); 97 EXPECT_THAT(PushDataToBuffer("230 LastLine\r\n"), IsOk());
93 EXPECT_TRUE(buffer_.ResponseAvailable()); 98 EXPECT_TRUE(buffer_.ResponseAvailable());
94 99
95 FtpCtrlResponse response = buffer_.PopResponse(); 100 FtpCtrlResponse response = buffer_.PopResponse();
96 EXPECT_FALSE(buffer_.ResponseAvailable()); 101 EXPECT_FALSE(buffer_.ResponseAvailable());
97 EXPECT_EQ(230, response.status_code); 102 EXPECT_EQ(230, response.status_code);
98 ASSERT_EQ(3U, response.lines.size()); 103 ASSERT_EQ(3U, response.lines.size());
99 EXPECT_EQ("FirstLineContinued", response.lines[0]); 104 EXPECT_EQ("FirstLineContinued", response.lines[0]);
100 EXPECT_EQ("SecondLine215 Continued", response.lines[1]); 105 EXPECT_EQ("SecondLine215 Continued", response.lines[1]);
101 EXPECT_EQ("LastLine", response.lines[2]); 106 EXPECT_EQ("LastLine", response.lines[2]);
102 } 107 }
103 108
104 TEST_F(FtpCtrlResponseBufferTest, MultilineContinuationZeroLength) { 109 TEST_F(FtpCtrlResponseBufferTest, MultilineContinuationZeroLength) {
105 // For the corner case from bug 29322. 110 // For the corner case from bug 29322.
106 EXPECT_EQ(OK, PushDataToBuffer("230-\r\n")); 111 EXPECT_THAT(PushDataToBuffer("230-\r\n"), IsOk());
107 EXPECT_FALSE(buffer_.ResponseAvailable()); 112 EXPECT_FALSE(buffer_.ResponseAvailable());
108 113
109 EXPECT_EQ(OK, PushDataToBuffer("example.com\r\n")); 114 EXPECT_THAT(PushDataToBuffer("example.com\r\n"), IsOk());
110 EXPECT_FALSE(buffer_.ResponseAvailable()); 115 EXPECT_FALSE(buffer_.ResponseAvailable());
111 116
112 EXPECT_EQ(OK, PushDataToBuffer("230 LastLine\r\n")); 117 EXPECT_THAT(PushDataToBuffer("230 LastLine\r\n"), IsOk());
113 EXPECT_TRUE(buffer_.ResponseAvailable()); 118 EXPECT_TRUE(buffer_.ResponseAvailable());
114 119
115 FtpCtrlResponse response = buffer_.PopResponse(); 120 FtpCtrlResponse response = buffer_.PopResponse();
116 EXPECT_FALSE(buffer_.ResponseAvailable()); 121 EXPECT_FALSE(buffer_.ResponseAvailable());
117 EXPECT_EQ(230, response.status_code); 122 EXPECT_EQ(230, response.status_code);
118 ASSERT_EQ(2U, response.lines.size()); 123 ASSERT_EQ(2U, response.lines.size());
119 EXPECT_EQ("example.com", response.lines[0]); 124 EXPECT_EQ("example.com", response.lines[0]);
120 EXPECT_EQ("LastLine", response.lines[1]); 125 EXPECT_EQ("LastLine", response.lines[1]);
121 } 126 }
122 127
123 TEST_F(FtpCtrlResponseBufferTest, SimilarContinuation) { 128 TEST_F(FtpCtrlResponseBufferTest, SimilarContinuation) {
124 EXPECT_EQ(OK, PushDataToBuffer("230-FirstLine\r\n")); 129 EXPECT_THAT(PushDataToBuffer("230-FirstLine\r\n"), IsOk());
125 EXPECT_FALSE(buffer_.ResponseAvailable()); 130 EXPECT_FALSE(buffer_.ResponseAvailable());
126 131
127 // Notice the space at the start of the line. It should be recognized 132 // Notice the space at the start of the line. It should be recognized
128 // as a continuation, and not the last line. 133 // as a continuation, and not the last line.
129 EXPECT_EQ(OK, PushDataToBuffer(" 230 Continued\r\n")); 134 EXPECT_THAT(PushDataToBuffer(" 230 Continued\r\n"), IsOk());
130 EXPECT_FALSE(buffer_.ResponseAvailable()); 135 EXPECT_FALSE(buffer_.ResponseAvailable());
131 136
132 EXPECT_EQ(OK, PushDataToBuffer("230 TrueLastLine\r\n")); 137 EXPECT_THAT(PushDataToBuffer("230 TrueLastLine\r\n"), IsOk());
133 EXPECT_TRUE(buffer_.ResponseAvailable()); 138 EXPECT_TRUE(buffer_.ResponseAvailable());
134 139
135 FtpCtrlResponse response = buffer_.PopResponse(); 140 FtpCtrlResponse response = buffer_.PopResponse();
136 EXPECT_FALSE(buffer_.ResponseAvailable()); 141 EXPECT_FALSE(buffer_.ResponseAvailable());
137 EXPECT_EQ(230, response.status_code); 142 EXPECT_EQ(230, response.status_code);
138 ASSERT_EQ(2U, response.lines.size()); 143 ASSERT_EQ(2U, response.lines.size());
139 EXPECT_EQ("FirstLine 230 Continued", response.lines[0]); 144 EXPECT_EQ("FirstLine 230 Continued", response.lines[0]);
140 EXPECT_EQ("TrueLastLine", response.lines[1]); 145 EXPECT_EQ("TrueLastLine", response.lines[1]);
141 } 146 }
142 147
143 // The nesting of multi-line responses is not allowed. 148 // The nesting of multi-line responses is not allowed.
144 TEST_F(FtpCtrlResponseBufferTest, NoNesting) { 149 TEST_F(FtpCtrlResponseBufferTest, NoNesting) {
145 EXPECT_EQ(OK, PushDataToBuffer("230-FirstLine\r\n")); 150 EXPECT_THAT(PushDataToBuffer("230-FirstLine\r\n"), IsOk());
146 EXPECT_FALSE(buffer_.ResponseAvailable()); 151 EXPECT_FALSE(buffer_.ResponseAvailable());
147 152
148 EXPECT_EQ(OK, PushDataToBuffer("300-Continuation\r\n")); 153 EXPECT_THAT(PushDataToBuffer("300-Continuation\r\n"), IsOk());
149 EXPECT_FALSE(buffer_.ResponseAvailable()); 154 EXPECT_FALSE(buffer_.ResponseAvailable());
150 155
151 EXPECT_EQ(OK, PushDataToBuffer("300 Still continuation\r\n")); 156 EXPECT_THAT(PushDataToBuffer("300 Still continuation\r\n"), IsOk());
152 EXPECT_FALSE(buffer_.ResponseAvailable()); 157 EXPECT_FALSE(buffer_.ResponseAvailable());
153 158
154 EXPECT_EQ(OK, PushDataToBuffer("230 Real End\r\n")); 159 EXPECT_THAT(PushDataToBuffer("230 Real End\r\n"), IsOk());
155 ASSERT_TRUE(buffer_.ResponseAvailable()); 160 ASSERT_TRUE(buffer_.ResponseAvailable());
156 161
157 FtpCtrlResponse response = buffer_.PopResponse(); 162 FtpCtrlResponse response = buffer_.PopResponse();
158 EXPECT_FALSE(buffer_.ResponseAvailable()); 163 EXPECT_FALSE(buffer_.ResponseAvailable());
159 EXPECT_EQ(230, response.status_code); 164 EXPECT_EQ(230, response.status_code);
160 ASSERT_EQ(2U, response.lines.size()); 165 ASSERT_EQ(2U, response.lines.size());
161 EXPECT_EQ("FirstLine300-Continuation300 Still continuation", 166 EXPECT_EQ("FirstLine300-Continuation300 Still continuation",
162 response.lines[0]); 167 response.lines[0]);
163 EXPECT_EQ("Real End", response.lines[1]); 168 EXPECT_EQ("Real End", response.lines[1]);
164 } 169 }
165 170
166 TEST_F(FtpCtrlResponseBufferTest, NonNumericResponse) { 171 TEST_F(FtpCtrlResponseBufferTest, NonNumericResponse) {
167 EXPECT_EQ(ERR_INVALID_RESPONSE, PushDataToBuffer("Non-numeric\r\n")); 172 EXPECT_THAT(PushDataToBuffer("Non-numeric\r\n"),
173 IsError(ERR_INVALID_RESPONSE));
168 EXPECT_FALSE(buffer_.ResponseAvailable()); 174 EXPECT_FALSE(buffer_.ResponseAvailable());
169 } 175 }
170 176
171 TEST_F(FtpCtrlResponseBufferTest, OutOfRangeResponse) { 177 TEST_F(FtpCtrlResponseBufferTest, OutOfRangeResponse) {
172 EXPECT_EQ(ERR_INVALID_RESPONSE, PushDataToBuffer("777 OK?\r\n")); 178 EXPECT_THAT(PushDataToBuffer("777 OK?\r\n"), IsError(ERR_INVALID_RESPONSE));
173 EXPECT_FALSE(buffer_.ResponseAvailable()); 179 EXPECT_FALSE(buffer_.ResponseAvailable());
174 } 180 }
175 181
176 } // namespace 182 } // namespace
177 183
178 } // namespace net 184 } // namespace net
OLDNEW
« no previous file with comments | « net/dns/single_request_host_resolver_unittest.cc ('k') | net/ftp/ftp_network_transaction_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698