| OLD | NEW | 
|---|
| 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 "ppapi/tests/test_url_loader.h" | 5 #include "ppapi/tests/test_url_loader.h" | 
| 6 | 6 | 
| 7 #include <stdio.h> | 7 #include <stdio.h> | 
| 8 #include <string.h> | 8 #include <string.h> | 
| 9 #include <string> | 9 #include <string> | 
| 10 | 10 | 
| (...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 368   std::string postdata2("data"); | 368   std::string postdata2("data"); | 
| 369   request.AppendDataToBody(postdata2.data(), postdata2.length()); | 369   request.AppendDataToBody(postdata2.data(), postdata2.length()); | 
| 370   return LoadAndCompareBody(request, postdata1 + postdata2); | 370   return LoadAndCompareBody(request, postdata1 + postdata2); | 
| 371 } | 371 } | 
| 372 | 372 | 
| 373 std::string TestURLLoader::TestEmptyDataPOST() { | 373 std::string TestURLLoader::TestEmptyDataPOST() { | 
| 374   pp::URLRequestInfo request(instance_); | 374   pp::URLRequestInfo request(instance_); | 
| 375   request.SetURL("/echo"); | 375   request.SetURL("/echo"); | 
| 376   request.SetMethod("POST"); | 376   request.SetMethod("POST"); | 
| 377   request.AppendDataToBody("", 0); | 377   request.AppendDataToBody("", 0); | 
| 378   return LoadAndCompareBody(request, ""); | 378   return LoadAndCompareBody(request, std::string()); | 
| 379 } | 379 } | 
| 380 | 380 | 
| 381 std::string TestURLLoader::TestBinaryDataPOST() { | 381 std::string TestURLLoader::TestBinaryDataPOST() { | 
| 382   pp::URLRequestInfo request(instance_); | 382   pp::URLRequestInfo request(instance_); | 
| 383   request.SetURL("/echo"); | 383   request.SetURL("/echo"); | 
| 384   request.SetMethod("POST"); | 384   request.SetMethod("POST"); | 
| 385   const char postdata_chars[] = | 385   const char postdata_chars[] = | 
| 386       "\x00\x01\x02\x03\x04\x05postdata\xfa\xfb\xfc\xfd\xfe\xff"; | 386       "\x00\x01\x02\x03\x04\x05postdata\xfa\xfb\xfc\xfd\xfe\xff"; | 
| 387   std::string postdata(postdata_chars, | 387   std::string postdata(postdata_chars, | 
| 388                        sizeof(postdata_chars) / sizeof(postdata_chars[0])); | 388                        sizeof(postdata_chars) / sizeof(postdata_chars[0])); | 
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 551 | 551 | 
| 552   PASS(); | 552   PASS(); | 
| 553 } | 553 } | 
| 554 | 554 | 
| 555 std::string TestURLLoader::TestUntrustedHttpRequests() { | 555 std::string TestURLLoader::TestUntrustedHttpRequests() { | 
| 556   // HTTP methods are restricted only for untrusted loaders. Forbidden | 556   // HTTP methods are restricted only for untrusted loaders. Forbidden | 
| 557   // methods are CONNECT, TRACE, and TRACK, and any string that is not a | 557   // methods are CONNECT, TRACE, and TRACK, and any string that is not a | 
| 558   // valid token (containing special characters like CR, LF). | 558   // valid token (containing special characters like CR, LF). | 
| 559   // http://www.w3.org/TR/XMLHttpRequest/ | 559   // http://www.w3.org/TR/XMLHttpRequest/ | 
| 560   { | 560   { | 
| 561     ASSERT_EQ(OpenUntrusted("cOnNeCt", ""), PP_ERROR_NOACCESS); | 561     ASSERT_EQ(OpenUntrusted("cOnNeCt", std::string()), PP_ERROR_NOACCESS); | 
| 562     ASSERT_EQ(OpenUntrusted("tRaCk", ""), PP_ERROR_NOACCESS); | 562     ASSERT_EQ(OpenUntrusted("tRaCk", std::string()), PP_ERROR_NOACCESS); | 
| 563     ASSERT_EQ(OpenUntrusted("tRaCe", ""), PP_ERROR_NOACCESS); | 563     ASSERT_EQ(OpenUntrusted("tRaCe", std::string()), PP_ERROR_NOACCESS); | 
| 564     ASSERT_EQ(OpenUntrusted("POST\x0d\x0ax-csrf-token:\x20test1234", ""), | 564     ASSERT_EQ( | 
| 565                             PP_ERROR_NOACCESS); | 565         OpenUntrusted("POST\x0d\x0ax-csrf-token:\x20test1234", std::string()), | 
|  | 566         PP_ERROR_NOACCESS); | 
| 566   } | 567   } | 
| 567   // HTTP methods are restricted only for untrusted loaders. Try all headers | 568   // HTTP methods are restricted only for untrusted loaders. Try all headers | 
| 568   // that are forbidden by http://www.w3.org/TR/XMLHttpRequest/. | 569   // that are forbidden by http://www.w3.org/TR/XMLHttpRequest/. | 
| 569   { | 570   { | 
| 570     ASSERT_EQ(OpenUntrusted("GET", "Accept-Charset:\n"), PP_ERROR_NOACCESS); | 571     ASSERT_EQ(OpenUntrusted("GET", "Accept-Charset:\n"), PP_ERROR_NOACCESS); | 
| 571     ASSERT_EQ(OpenUntrusted("GET", "Accept-Encoding:\n"), PP_ERROR_NOACCESS); | 572     ASSERT_EQ(OpenUntrusted("GET", "Accept-Encoding:\n"), PP_ERROR_NOACCESS); | 
| 572     ASSERT_EQ(OpenUntrusted("GET", "Connection:\n"), PP_ERROR_NOACCESS); | 573     ASSERT_EQ(OpenUntrusted("GET", "Connection:\n"), PP_ERROR_NOACCESS); | 
| 573     ASSERT_EQ(OpenUntrusted("GET", "Content-Length:\n"), PP_ERROR_NOACCESS); | 574     ASSERT_EQ(OpenUntrusted("GET", "Content-Length:\n"), PP_ERROR_NOACCESS); | 
| 574     ASSERT_EQ(OpenUntrusted("GET", "Cookie:\n"), PP_ERROR_NOACCESS); | 575     ASSERT_EQ(OpenUntrusted("GET", "Cookie:\n"), PP_ERROR_NOACCESS); | 
| 575     ASSERT_EQ(OpenUntrusted("GET", "Cookie2:\n"), PP_ERROR_NOACCESS); | 576     ASSERT_EQ(OpenUntrusted("GET", "Cookie2:\n"), PP_ERROR_NOACCESS); | 
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 612       return ReportError( | 613       return ReportError( | 
| 613           "Untrusted request with content-transfer-encoding restriction", rv); | 614           "Untrusted request with content-transfer-encoding restriction", rv); | 
| 614   } | 615   } | 
| 615 | 616 | 
| 616   PASS(); | 617   PASS(); | 
| 617 } | 618 } | 
| 618 | 619 | 
| 619 std::string TestURLLoader::TestTrustedHttpRequests() { | 620 std::string TestURLLoader::TestTrustedHttpRequests() { | 
| 620   // Trusted requests can use restricted methods. | 621   // Trusted requests can use restricted methods. | 
| 621   { | 622   { | 
| 622     ASSERT_EQ(OpenTrusted("cOnNeCt", ""), PP_OK); | 623     ASSERT_EQ(OpenTrusted("cOnNeCt", std::string()), PP_OK); | 
| 623     ASSERT_EQ(OpenTrusted("tRaCk", ""), PP_OK); | 624     ASSERT_EQ(OpenTrusted("tRaCk", std::string()), PP_OK); | 
| 624     ASSERT_EQ(OpenTrusted("tRaCe", ""), PP_OK); | 625     ASSERT_EQ(OpenTrusted("tRaCe", std::string()), PP_OK); | 
| 625   } | 626   } | 
| 626   // Trusted requests can use restricted headers. | 627   // Trusted requests can use restricted headers. | 
| 627   { | 628   { | 
| 628     ASSERT_EQ(OpenTrusted("GET", "Accept-Charset:\n"), PP_OK); | 629     ASSERT_EQ(OpenTrusted("GET", "Accept-Charset:\n"), PP_OK); | 
| 629     ASSERT_EQ(OpenTrusted("GET", "Accept-Encoding:\n"), PP_OK); | 630     ASSERT_EQ(OpenTrusted("GET", "Accept-Encoding:\n"), PP_OK); | 
| 630     ASSERT_EQ(OpenTrusted("GET", "Connection:\n"), PP_OK); | 631     ASSERT_EQ(OpenTrusted("GET", "Connection:\n"), PP_OK); | 
| 631     ASSERT_EQ(OpenTrusted("GET", "Content-Length:\n"), PP_OK); | 632     ASSERT_EQ(OpenTrusted("GET", "Content-Length:\n"), PP_OK); | 
| 632     ASSERT_EQ(OpenTrusted("GET", "Cookie:\n"), PP_OK); | 633     ASSERT_EQ(OpenTrusted("GET", "Cookie:\n"), PP_OK); | 
| 633     ASSERT_EQ(OpenTrusted("GET", "Cookie2:\n"), PP_OK); | 634     ASSERT_EQ(OpenTrusted("GET", "Cookie2:\n"), PP_OK); | 
| 634     ASSERT_EQ(OpenTrusted( | 635     ASSERT_EQ(OpenTrusted( | 
| (...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 838   if (rv != PP_ERROR_FAILED) { | 839   if (rv != PP_ERROR_FAILED) { | 
| 839     return ReportError("The lower buffer value was higher than the upper but " | 840     return ReportError("The lower buffer value was higher than the upper but " | 
| 840                        "the URLLoader did not fail.", rv); | 841                        "the URLLoader did not fail.", rv); | 
| 841   } | 842   } | 
| 842 | 843 | 
| 843   PASS(); | 844   PASS(); | 
| 844 } | 845 } | 
| 845 | 846 | 
| 846 // TODO(viettrungluu): Add tests for  Get{Upload,Download}Progress, Close | 847 // TODO(viettrungluu): Add tests for  Get{Upload,Download}Progress, Close | 
| 847 // (including abort tests if applicable). | 848 // (including abort tests if applicable). | 
| OLD | NEW | 
|---|