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

Side by Side Diff: content/renderer/npapi/webplugin_impl_unittest.cc

Issue 1547073003: Switch to standard integer types in content/renderer/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 12 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
« no previous file with comments | « content/renderer/npapi/webplugin_impl.cc ('k') | content/renderer/p2p/empty_network_manager.h » ('j') | 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) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 <stddef.h>
6 #include <stdint.h>
7
5 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
6 #include "content/renderer/npapi/webplugin_impl.h" 9 #include "content/renderer/npapi/webplugin_impl.h"
7 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
8 #include "third_party/WebKit/public/platform/WebCString.h" 11 #include "third_party/WebKit/public/platform/WebCString.h"
9 #include "third_party/WebKit/public/platform/WebString.h" 12 #include "third_party/WebKit/public/platform/WebString.h"
10 #include "third_party/WebKit/public/platform/WebURLRequest.h" 13 #include "third_party/WebKit/public/platform/WebURLRequest.h"
11 14
12 using blink::WebHTTPBody; 15 using blink::WebHTTPBody;
13 using blink::WebString; 16 using blink::WebString;
14 using blink::WebURLRequest; 17 using blink::WebURLRequest;
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 // The Host functions for NPN_PostURL and NPN_PostURLNotify 52 // The Host functions for NPN_PostURL and NPN_PostURLNotify
50 // need to parse out some HTTP headers. Make sure it works 53 // need to parse out some HTTP headers. Make sure it works
51 // with the following tests 54 // with the following tests
52 55
53 TEST(WebPluginImplTest, PostParserSimple) { 56 TEST(WebPluginImplTest, PostParserSimple) {
54 // Test a simple case with headers & data 57 // Test a simple case with headers & data
55 const char *ex1 = "foo: bar\nContent-length: 10\n\nabcdefghij"; 58 const char *ex1 = "foo: bar\nContent-length: 10\n\nabcdefghij";
56 WebURLRequest request; 59 WebURLRequest request;
57 request.initialize(); 60 request.initialize();
58 bool rv = WebPluginImpl::SetPostData(&request, ex1, 61 bool rv = WebPluginImpl::SetPostData(&request, ex1,
59 static_cast<uint32>(strlen(ex1))); 62 static_cast<uint32_t>(strlen(ex1)));
60 EXPECT_TRUE(rv); 63 EXPECT_TRUE(rv);
61 EXPECT_EQ("bar", GetHeader(request, "foo")); 64 EXPECT_EQ("bar", GetHeader(request, "foo"));
62 EXPECT_EQ(0U, GetHeader(request, "bar").length()); 65 EXPECT_EQ(0U, GetHeader(request, "bar").length());
63 EXPECT_EQ(0U, GetHeader(request, "Content-length").length()); 66 EXPECT_EQ(0U, GetHeader(request, "Content-length").length());
64 EXPECT_EQ("abcdefghij", GetBodyText(request)); 67 EXPECT_EQ("abcdefghij", GetBodyText(request));
65 } 68 }
66 69
67 TEST(WebPluginImplTest, PostParserLongHeader) { 70 TEST(WebPluginImplTest, PostParserLongHeader) {
68 // Test a simple case with long headers 71 // Test a simple case with long headers
69 const char *ex1 = "foo: 012345678901234567890123456789012345678901234567890123 4567890123456789012345678901234567890123456789\n\nabcdefghij"; 72 const char *ex1 = "foo: 012345678901234567890123456789012345678901234567890123 4567890123456789012345678901234567890123456789\n\nabcdefghij";
70 WebURLRequest request; 73 WebURLRequest request;
71 request.initialize(); 74 request.initialize();
72 bool rv = WebPluginImpl::SetPostData(&request, ex1, 75 bool rv = WebPluginImpl::SetPostData(&request, ex1,
73 static_cast<uint32>(strlen(ex1))); 76 static_cast<uint32_t>(strlen(ex1)));
74 EXPECT_TRUE(rv); 77 EXPECT_TRUE(rv);
75 EXPECT_EQ(100U, GetHeader(request, "foo").length()); 78 EXPECT_EQ(100U, GetHeader(request, "foo").length());
76 } 79 }
77 80
78 TEST(WebPluginImplTest, PostParserManyHeaders) { 81 TEST(WebPluginImplTest, PostParserManyHeaders) {
79 // Test a simple case with long headers 82 // Test a simple case with long headers
80 const char *ex1 = "h1:h1\nh2:h2\nh3:h3\nh4:h4\nh5:h5\nh6:h6\nh7:h7\nh8:h8\nh9: h9\nh10:h10\n\nbody"; 83 const char *ex1 = "h1:h1\nh2:h2\nh3:h3\nh4:h4\nh5:h5\nh6:h6\nh7:h7\nh8:h8\nh9: h9\nh10:h10\n\nbody";
81 WebURLRequest request; 84 WebURLRequest request;
82 request.initialize(); 85 request.initialize();
83 bool rv = WebPluginImpl::SetPostData(&request, ex1, 86 bool rv = WebPluginImpl::SetPostData(&request, ex1,
84 static_cast<uint32>(strlen(ex1))); 87 static_cast<uint32_t>(strlen(ex1)));
85 EXPECT_TRUE(rv); 88 EXPECT_TRUE(rv);
86 EXPECT_EQ("h1", GetHeader(request, "h1")); 89 EXPECT_EQ("h1", GetHeader(request, "h1"));
87 EXPECT_EQ("h2", GetHeader(request, "h2")); 90 EXPECT_EQ("h2", GetHeader(request, "h2"));
88 EXPECT_EQ("h3", GetHeader(request, "h3")); 91 EXPECT_EQ("h3", GetHeader(request, "h3"));
89 EXPECT_EQ("h4", GetHeader(request, "h4")); 92 EXPECT_EQ("h4", GetHeader(request, "h4"));
90 EXPECT_EQ("h5", GetHeader(request, "h5")); 93 EXPECT_EQ("h5", GetHeader(request, "h5"));
91 EXPECT_EQ("h6", GetHeader(request, "h6")); 94 EXPECT_EQ("h6", GetHeader(request, "h6"));
92 EXPECT_EQ("h7", GetHeader(request, "h7")); 95 EXPECT_EQ("h7", GetHeader(request, "h7"));
93 EXPECT_EQ("h8", GetHeader(request, "h8")); 96 EXPECT_EQ("h8", GetHeader(request, "h8"));
94 EXPECT_EQ("h9", GetHeader(request, "h9")); 97 EXPECT_EQ("h9", GetHeader(request, "h9"));
95 EXPECT_EQ("h10", GetHeader(request, "h10")); 98 EXPECT_EQ("h10", GetHeader(request, "h10"));
96 EXPECT_EQ("body", GetBodyText(request)); 99 EXPECT_EQ("body", GetBodyText(request));
97 } 100 }
98 101
99 TEST(WebPluginImplTest, PostParserDuplicateHeaders) { 102 TEST(WebPluginImplTest, PostParserDuplicateHeaders) {
100 // Test a simple case with long headers 103 // Test a simple case with long headers
101 // What value gets returned doesn't really matter. It shouldn't error 104 // What value gets returned doesn't really matter. It shouldn't error
102 // out. 105 // out.
103 const char *ex1 = "h1:h1\nh1:h2\n\nbody"; 106 const char *ex1 = "h1:h1\nh1:h2\n\nbody";
104 WebURLRequest request; 107 WebURLRequest request;
105 request.initialize(); 108 request.initialize();
106 bool rv = WebPluginImpl::SetPostData(&request, ex1, 109 bool rv = WebPluginImpl::SetPostData(&request, ex1,
107 static_cast<uint32>(strlen(ex1))); 110 static_cast<uint32_t>(strlen(ex1)));
108 EXPECT_TRUE(rv); 111 EXPECT_TRUE(rv);
109 } 112 }
110 113
111 TEST(WebPluginImplTest, PostParserNoHeaders) { 114 TEST(WebPluginImplTest, PostParserNoHeaders) {
112 // Test a simple case with no headers but with data 115 // Test a simple case with no headers but with data
113 const char *ex1 = "\nabcdefghij"; 116 const char *ex1 = "\nabcdefghij";
114 WebURLRequest request; 117 WebURLRequest request;
115 request.initialize(); 118 request.initialize();
116 bool rv = WebPluginImpl::SetPostData(&request, ex1, 119 bool rv = WebPluginImpl::SetPostData(&request, ex1,
117 static_cast<uint32>(strlen(ex1))); 120 static_cast<uint32_t>(strlen(ex1)));
118 EXPECT_TRUE(rv); 121 EXPECT_TRUE(rv);
119 EXPECT_EQ(0U, GetHeader(request, "foo").length()); 122 EXPECT_EQ(0U, GetHeader(request, "foo").length());
120 EXPECT_EQ(0U, GetHeader(request, "bar").length()); 123 EXPECT_EQ(0U, GetHeader(request, "bar").length());
121 EXPECT_EQ(0U, GetHeader(request, "Content-length").length()); 124 EXPECT_EQ(0U, GetHeader(request, "Content-length").length());
122 EXPECT_EQ("abcdefghij", GetBodyText(request)); 125 EXPECT_EQ("abcdefghij", GetBodyText(request));
123 } 126 }
124 127
125 TEST(WebPluginImplTest, PostParserNoBody) { 128 TEST(WebPluginImplTest, PostParserNoBody) {
126 // Test a simple case with headers and no body 129 // Test a simple case with headers and no body
127 const char *ex1 = "Foo:bar\n\n"; 130 const char *ex1 = "Foo:bar\n\n";
128 WebURLRequest request; 131 WebURLRequest request;
129 request.initialize(); 132 request.initialize();
130 bool rv = WebPluginImpl::SetPostData(&request, ex1, 133 bool rv = WebPluginImpl::SetPostData(&request, ex1,
131 static_cast<uint32>(strlen(ex1))); 134 static_cast<uint32_t>(strlen(ex1)));
132 EXPECT_TRUE(rv); 135 EXPECT_TRUE(rv);
133 EXPECT_EQ("bar", GetHeader(request, "foo")); 136 EXPECT_EQ("bar", GetHeader(request, "foo"));
134 EXPECT_EQ(0U, GetHeader(request, "bar").length()); 137 EXPECT_EQ(0U, GetHeader(request, "bar").length());
135 EXPECT_EQ(0U, GetHeader(request, "Content-length").length()); 138 EXPECT_EQ(0U, GetHeader(request, "Content-length").length());
136 EXPECT_EQ(0U, GetBodyText(request).length()); 139 EXPECT_EQ(0U, GetBodyText(request).length());
137 } 140 }
138 141
139 TEST(WebPluginImplTest, PostParserBodyWithNewLines) { 142 TEST(WebPluginImplTest, PostParserBodyWithNewLines) {
140 // Test a simple case with headers and no body 143 // Test a simple case with headers and no body
141 const char *ex1 = "Foo:bar\n\n\n\nabcdefg\n\nabcdefg"; 144 const char *ex1 = "Foo:bar\n\n\n\nabcdefg\n\nabcdefg";
142 WebURLRequest request; 145 WebURLRequest request;
143 request.initialize(); 146 request.initialize();
144 bool rv = WebPluginImpl::SetPostData(&request, ex1, 147 bool rv = WebPluginImpl::SetPostData(&request, ex1,
145 static_cast<uint32>(strlen(ex1))); 148 static_cast<uint32_t>(strlen(ex1)));
146 EXPECT_TRUE(rv); 149 EXPECT_TRUE(rv);
147 EXPECT_EQ(GetBodyText(request), "\n\nabcdefg\n\nabcdefg"); 150 EXPECT_EQ(GetBodyText(request), "\n\nabcdefg\n\nabcdefg");
148 } 151 }
149 152
150 TEST(WebPluginImplTest, PostParserErrorNoBody) { 153 TEST(WebPluginImplTest, PostParserErrorNoBody) {
151 // Test with headers and no body 154 // Test with headers and no body
152 const char *ex1 = "Foo:bar\n"; 155 const char *ex1 = "Foo:bar\n";
153 WebURLRequest request; 156 WebURLRequest request;
154 request.initialize(); 157 request.initialize();
155 bool rv = WebPluginImpl::SetPostData(&request, ex1, 158 bool rv = WebPluginImpl::SetPostData(&request, ex1,
156 static_cast<uint32>(strlen(ex1))); 159 static_cast<uint32_t>(strlen(ex1)));
157 EXPECT_TRUE(rv); 160 EXPECT_TRUE(rv);
158 } 161 }
159 162
160 TEST(WebPluginImplTest, PostParserErrorEmpty) { 163 TEST(WebPluginImplTest, PostParserErrorEmpty) {
161 // Test with an empty string 164 // Test with an empty string
162 const char *ex1 = ""; 165 const char *ex1 = "";
163 WebURLRequest request; 166 WebURLRequest request;
164 request.initialize(); 167 request.initialize();
165 bool rv = WebPluginImpl::SetPostData(&request, ex1, 168 bool rv = WebPluginImpl::SetPostData(&request, ex1,
166 static_cast<uint32>(strlen(ex1))); 169 static_cast<uint32_t>(strlen(ex1)));
167 EXPECT_TRUE(rv); 170 EXPECT_TRUE(rv);
168 } 171 }
169 172
170 TEST(WebPluginImplTest, PostParserEmptyName) { 173 TEST(WebPluginImplTest, PostParserEmptyName) {
171 // Test an error case with an empty header name field 174 // Test an error case with an empty header name field
172 const char *ex1 = "foo:bar\n:blat\n\nbody"; 175 const char *ex1 = "foo:bar\n:blat\n\nbody";
173 WebURLRequest request; 176 WebURLRequest request;
174 request.initialize(); 177 request.initialize();
175 bool rv = WebPluginImpl::SetPostData(&request, ex1, 178 bool rv = WebPluginImpl::SetPostData(&request, ex1,
176 static_cast<uint32>(strlen(ex1))); 179 static_cast<uint32_t>(strlen(ex1)));
177 EXPECT_TRUE(rv); 180 EXPECT_TRUE(rv);
178 EXPECT_EQ("bar", GetHeader(request, "foo")); 181 EXPECT_EQ("bar", GetHeader(request, "foo"));
179 EXPECT_EQ("body", GetBodyText(request)); 182 EXPECT_EQ("body", GetBodyText(request));
180 } 183 }
181 184
182 TEST(WebPluginImplTest, PostParserEmptyValue) { 185 TEST(WebPluginImplTest, PostParserEmptyValue) {
183 // Test an error case with an empty value field 186 // Test an error case with an empty value field
184 const char *ex1 = "foo:bar\nbar:\n\nbody"; 187 const char *ex1 = "foo:bar\nbar:\n\nbody";
185 WebURLRequest request; 188 WebURLRequest request;
186 request.initialize(); 189 request.initialize();
187 bool rv = WebPluginImpl::SetPostData(&request, ex1, 190 bool rv = WebPluginImpl::SetPostData(&request, ex1,
188 static_cast<uint32>(strlen(ex1))); 191 static_cast<uint32_t>(strlen(ex1)));
189 EXPECT_TRUE(rv); 192 EXPECT_TRUE(rv);
190 EXPECT_EQ("bar", GetHeader(request, "foo")); 193 EXPECT_EQ("bar", GetHeader(request, "foo"));
191 EXPECT_EQ(0U, GetHeader(request, "bar").length()); 194 EXPECT_EQ(0U, GetHeader(request, "bar").length());
192 EXPECT_EQ("body", GetBodyText(request)); 195 EXPECT_EQ("body", GetBodyText(request));
193 } 196 }
194 197
195 TEST(WebPluginImplTest, PostParserCRLF) { 198 TEST(WebPluginImplTest, PostParserCRLF) {
196 // Test an error case with an empty value field 199 // Test an error case with an empty value field
197 const char *ex1 = "foo: bar\r\nbar:\r\n\r\nbody\r\n\r\nbody2"; 200 const char *ex1 = "foo: bar\r\nbar:\r\n\r\nbody\r\n\r\nbody2";
198 WebURLRequest request; 201 WebURLRequest request;
199 request.initialize(); 202 request.initialize();
200 bool rv = WebPluginImpl::SetPostData(&request, ex1, 203 bool rv = WebPluginImpl::SetPostData(&request, ex1,
201 static_cast<uint32>(strlen(ex1))); 204 static_cast<uint32_t>(strlen(ex1)));
202 EXPECT_TRUE(rv); 205 EXPECT_TRUE(rv);
203 EXPECT_EQ("bar", GetHeader(request, "foo")); 206 EXPECT_EQ("bar", GetHeader(request, "foo"));
204 EXPECT_EQ(0U, GetHeader(request, "bar").length()); 207 EXPECT_EQ(0U, GetHeader(request, "bar").length());
205 EXPECT_EQ("body\r\n\r\nbody2", GetBodyText(request)); 208 EXPECT_EQ("body\r\n\r\nbody2", GetBodyText(request));
206 } 209 }
207 210
208 TEST(WebPluginImplTest, PostParserBodyWithBinaryData) { 211 TEST(WebPluginImplTest, PostParserBodyWithBinaryData) {
209 // Test a simple case with headers and binary data. 212 // Test a simple case with headers and binary data.
210 char ex1[33] = "foo: bar\nContent-length: 10\n\n"; 213 char ex1[33] = "foo: bar\nContent-length: 10\n\n";
211 unsigned int binary_data = 0xFFFFFFF0; 214 unsigned int binary_data = 0xFFFFFFF0;
(...skipping 11 matching lines...) Expand all
223 226
224 std::string body = GetBodyText(request); 227 std::string body = GetBodyText(request);
225 228
226 EXPECT_EQ(0xF0, (unsigned char)body[0]); 229 EXPECT_EQ(0xF0, (unsigned char)body[0]);
227 EXPECT_EQ(0xFF, (unsigned char)body[1]); 230 EXPECT_EQ(0xFF, (unsigned char)body[1]);
228 EXPECT_EQ(0xFF, (unsigned char)body[2]); 231 EXPECT_EQ(0xFF, (unsigned char)body[2]);
229 EXPECT_EQ(0xFF, (unsigned char)body[3]); 232 EXPECT_EQ(0xFF, (unsigned char)body[3]);
230 } 233 }
231 234
232 } // namespace content 235 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/npapi/webplugin_impl.cc ('k') | content/renderer/p2p/empty_network_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698