| Index: components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler_unittest.cc
|
| diff --git a/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler_unittest.cc b/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler_unittest.cc
|
| index 17430d87cae36775b2e6588c75f3bd1d4d5b9bf3..d63fd9d39134f3432215298fd73d5e4fd91c3ea9 100644
|
| --- a/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler_unittest.cc
|
| +++ b/components/data_reduction_proxy/browser/data_reduction_proxy_auth_request_handler_unittest.cc
|
| @@ -31,7 +31,10 @@ const char kOtherProxy[] = "testproxy:17";
|
| #else
|
| const char kClient[] = "";
|
| #endif
|
| -const char kVersion[] = "0";
|
| +const char kVersion[] = "0.1.2.3";
|
| +const char kExpectedBuild[] = "2";
|
| +const char kExpectedPatch[] = "3";
|
| +const char kBogusVersion[] = "0.0";
|
| const char kTestKey[] = "test-key";
|
| const char kExpectedCredentials[] = "96bd72ec4a050ba60981743d41787768";
|
| const char kExpectedSession[] = "0-1633771873-1633771873-1633771873";
|
| @@ -42,24 +45,33 @@ const char kExpectedSession2[] = "0-1633771873-1633771873-1633771873";
|
| #if defined(OS_ANDROID)
|
| const char kExpectedHeader2[] =
|
| "ps=0-1633771873-1633771873-1633771873, "
|
| - "sid=c911fdb402f578787562cf7f00eda972, v=0, c=android";
|
| + "sid=c911fdb402f578787562cf7f00eda972, b=2, p=3, c=android";
|
| const char kExpectedHeader3[] =
|
| "ps=86401-1633771873-1633771873-1633771873, "
|
| - "sid=d7c1c34ef6b90303b01c48a6c1db6419, v=0, c=android";
|
| + "sid=d7c1c34ef6b90303b01c48a6c1db6419, b=2, p=3, c=android";
|
| +const char kExpectedHeader4[] =
|
| + "ps=0-1633771873-1633771873-1633771873, "
|
| + "sid=c911fdb402f578787562cf7f00eda972, c=android";
|
| #elif defined(OS_IOS)
|
| const char kExpectedHeader2[] =
|
| "ps=0-1633771873-1633771873-1633771873, "
|
| - "sid=c911fdb402f578787562cf7f00eda972, v=0, c=ios";
|
| + "sid=c911fdb402f578787562cf7f00eda972, b=2, p=3, c=ios";
|
| const char kExpectedHeader3[] =
|
| "ps=86401-1633771873-1633771873-1633771873, "
|
| - "sid=d7c1c34ef6b90303b01c48a6c1db6419, v=0, c=ios";
|
| + "sid=d7c1c34ef6b90303b01c48a6c1db6419, b=2, p=3, c=ios";
|
| +const char kExpectedHeader4[] =
|
| + "ps=0-1633771873-1633771873-1633771873, "
|
| + "sid=c911fdb402f578787562cf7f00eda972, c=ios";
|
| #else
|
| const char kExpectedHeader2[] =
|
| "ps=0-1633771873-1633771873-1633771873, "
|
| - "sid=c911fdb402f578787562cf7f00eda972, v=0";
|
| + "sid=c911fdb402f578787562cf7f00eda972, b=2, p=3";
|
| const char kExpectedHeader3[] =
|
| "ps=86401-1633771873-1633771873-1633771873, "
|
| - "sid=d7c1c34ef6b90303b01c48a6c1db6419, v=0";
|
| + "sid=d7c1c34ef6b90303b01c48a6c1db6419, b=2, p=3";
|
| +const char kExpectedHeader4[] =
|
| + "ps=0-1633771873-1633771873-1633771873, "
|
| + "sid=c911fdb402f578787562cf7f00eda972";
|
| #endif
|
|
|
| const char kDataReductionProxyKey[] = "12345";
|
| @@ -131,7 +143,8 @@ TEST_F(DataReductionProxyAuthRequestHandlerTest, Authorization) {
|
| auth_handler.Init();
|
| base::RunLoop().RunUntilIdle();
|
| EXPECT_EQ(auth_handler.client_, kClient);
|
| - EXPECT_EQ(kVersion, auth_handler.version_);
|
| + EXPECT_EQ(kExpectedBuild, auth_handler.build_number_);
|
| + EXPECT_EQ(kExpectedPatch, auth_handler.patch_number_);
|
| EXPECT_EQ(auth_handler.key_, kTestKey);
|
| EXPECT_EQ(kExpectedCredentials, auth_handler.credentials_);
|
| EXPECT_EQ(kExpectedSession, auth_handler.session_);
|
| @@ -143,7 +156,6 @@ TEST_F(DataReductionProxyAuthRequestHandlerTest, Authorization) {
|
| EXPECT_EQ(kExpectedCredentials2, auth_handler.credentials_);
|
| EXPECT_EQ(kExpectedSession2, auth_handler.session_);
|
|
|
| -
|
| // Don't write headers if the proxy is invalid.
|
| net::HttpRequestHeaders headers;
|
| auth_handler.MaybeAddRequestHeader(NULL, net::ProxyServer(), &headers);
|
| @@ -199,6 +211,43 @@ TEST_F(DataReductionProxyAuthRequestHandlerTest, Authorization) {
|
| EXPECT_EQ(kExpectedHeader3, header_value3);
|
| }
|
|
|
| +TEST_F(DataReductionProxyAuthRequestHandlerTest, AuthorizationBogusVersion) {
|
| + scoped_ptr<TestDataReductionProxyParams> params;
|
| + params.reset(
|
| + new TestDataReductionProxyParams(
|
| + DataReductionProxyParams::kAllowed |
|
| + DataReductionProxyParams::kFallbackAllowed |
|
| + DataReductionProxyParams::kPromoAllowed,
|
| + TestDataReductionProxyParams::HAS_EVERYTHING &
|
| + ~TestDataReductionProxyParams::HAS_DEV_ORIGIN));
|
| + TestDataReductionProxyAuthRequestHandler auth_handler(kClient,
|
| + kBogusVersion,
|
| + params.get(),
|
| + loop_proxy_);
|
| + EXPECT_TRUE(auth_handler.build_number_.empty());
|
| + EXPECT_TRUE(auth_handler.patch_number_.empty());
|
| +
|
| + // Now set a key.
|
| + auth_handler.SetKeyOnUI(kTestKey2);
|
| + base::RunLoop().RunUntilIdle();
|
| + EXPECT_EQ(kTestKey2, auth_handler.key_);
|
| + EXPECT_EQ(kExpectedCredentials2, auth_handler.credentials_);
|
| + EXPECT_EQ(kExpectedSession2, auth_handler.session_);
|
| +
|
| + net::HttpRequestHeaders headers;
|
| + // Write headers with a valid data reduction proxy;
|
| + auth_handler.MaybeAddRequestHeader(
|
| + NULL,
|
| + net::ProxyServer::FromURI(
|
| + net::HostPortPair::FromURL(GURL(params->DefaultOrigin())).ToString(),
|
| + net::ProxyServer::SCHEME_HTTP),
|
| + &headers);
|
| + EXPECT_TRUE(headers.HasHeader(kChromeProxyHeader));
|
| + std::string header_value;
|
| + headers.GetHeader(kChromeProxyHeader, &header_value);
|
| + EXPECT_EQ(kExpectedHeader4, header_value);
|
| +}
|
| +
|
| TEST_F(DataReductionProxyAuthRequestHandlerTest, AuthHashForSalt) {
|
| std::string salt = "8675309"; // Jenny's number to test the hash generator.
|
| std::string salted_key = salt + kDataReductionProxyKey + salt;
|
|
|