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

Unified Diff: ios/crnet/test/crnet_http_tests.mm

Issue 1291673003: SdchManager: remove EnableSdchSupport (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Delete obsolete test Created 5 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 side-by-side diff with in-line comments
Download patch
Index: ios/crnet/test/crnet_http_tests.mm
diff --git a/ios/crnet/test/crnet_http_tests.mm b/ios/crnet/test/crnet_http_tests.mm
index 4436e09d8ed0ae65844ecca5fff31b9770f5fd08..d0c60510b9470f51e173436ee4f446627523132c 100644
--- a/ios/crnet/test/crnet_http_tests.mm
+++ b/ios/crnet/test/crnet_http_tests.mm
@@ -6,7 +6,9 @@
#import "CrNet.h"
+#include "base/logging.h"
#include "base/mac/scoped_nsobject.h"
+#include "base/strings/sys_string_conversions.h"
#import "ios/third_party/gcdwebserver/src/GCDWebServer/Core/GCDWebServer.h"
#include "net/base/mac/url_conversions.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -134,8 +136,7 @@ class HttpTest : public ::testing::Test {
// Registers a fixed response |text| to be returned to requests for |path|,
// which is relative to |server_root_|.
void RegisterPathText(const std::string& path, const std::string& text) {
- NSString* nspath =
- [NSString stringWithCString:path.c_str() encoding:NSUTF8StringEncoding];
+ NSString* nspath = base::SysUTF8ToNSString(path);
NSData* data = [NSData dataWithBytes:text.c_str() length:text.length()];
[web_server_ addGETHandlerForPath:nspath
staticData:data
@@ -143,6 +144,15 @@ class HttpTest : public ::testing::Test {
cacheAge:30];
}
+ void RegisterPathHandler(const std::string& path,
+ GCDWebServerProcessBlock handler) {
+ NSString* nspath = base::SysUTF8ToNSString(path);
+ [web_server_ addHandlerForMethod:@"GET"
+ path:nspath
+ requestClass:NSClassFromString(@"GCDWebServerRequest")
+ processBlock:handler];
+ }
+
// Launches the supplied |task| and blocks until it completes, with a timeout
// of 1 second.
void StartDataTaskAndWaitForCompletion(NSURLSessionDataTask* task) {
@@ -159,6 +169,22 @@ class HttpTest : public ::testing::Test {
return server_root_.Resolve(real_path);
}
+ // Some convenience functions for working with GCDWebServerRequest and
+ // GCDWebServerResponse.
+
+ // Returns true if the value for the request header |header| is not nil and
+ // contains the string |target|.
+ bool HeaderValueContains(GCDWebServerRequest* request,
+ const std::string& header,
+ const std::string& target) {
+ NSString* key = base::SysUTF8ToNSString(header);
+ NSString* needle = base::SysUTF8ToNSString(target);
+ NSString* haystack = request.headers[key];
+ if (!haystack)
+ return false;
+ return [haystack rangeOfString:needle].location != NSNotFound;
+ }
+
base::scoped_nsobject<NSURLSession> session_;
base::scoped_nsobject<TestDelegate> delegate_;
@@ -176,21 +202,45 @@ TEST_F(HttpTest, NSURLConnectionReceivesData) {
NSURL* url = net::NSURLWithGURL(GetURL(kPath));
NSURLRequest* req = [NSURLRequest requestWithURL:url];
NSURLResponse* resp = nil;
- NSError* error = nil;
NSData* received = [NSURLConnection sendSynchronousRequest:req
returningResponse:&resp
- error:&error];
+ error:nullptr];
EXPECT_EQ(0, memcmp([received bytes], kData, sizeof(kData)));
}
TEST_F(HttpTest, NSURLSessionReceivesData) {
- const char data[] = "foobar";
- RegisterPathText("/foo", data);
+ const char kPath[] = "/foo";
+ const char kData[] = "foobar";
+ RegisterPathText(kPath, kData);
StartWebServer();
- NSURL* url = net::NSURLWithGURL(GetURL("foo"));
+ NSURL* url = net::NSURLWithGURL(GetURL(kPath));
NSURLSessionDataTask* task = [session_ dataTaskWithURL:url];
StartDataTaskAndWaitForCompletion(task);
EXPECT_EQ(nil, [delegate_ error]);
- EXPECT_EQ(strlen(data), [delegate_ receivedBytes]);
+ EXPECT_EQ(strlen(kData), [delegate_ receivedBytes]);
+}
+
+TEST_F(HttpTest, SdchDisabledByDefault) {
+ const char kPath[] = "/foo";
+ RegisterPathHandler(kPath,
+ ^GCDWebServerResponse* (GCDWebServerRequest* req) {
+ EXPECT_FALSE(HeaderValueContains(req, "Accept-Encoding", "sdch"));
+ return nil;
+ });
+ StartWebServer();
+ NSURL* url = net::NSURLWithGURL(GetURL(kPath));
+ NSURLRequest* req = [NSURLRequest requestWithURL:url];
+ NSURLResponse* resp = nil;
+ NSError* error = nil;
+ NSData* received = [NSURLConnection sendSynchronousRequest:req
+ returningResponse:&resp
+ error:&error];
+ DCHECK(received);
}
+
+// TODO(ellyjones): There needs to be a test that enabling SDCH works, but
+// because CrNet is static and 'uninstall' only disables it, there is no way to
+// have an individual test enable or disable SDCH.
+// Probably there is a way to get gtest tests to run in a separate process, but
+// I'm not sure what it is.

Powered by Google App Engine
This is Rietveld 408576698