| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/test/embedded_test_server/default_handlers.h" | 5 #include "net/test/embedded_test_server/default_handlers.h" |
| 6 | 6 |
| 7 #include <stdlib.h> | 7 #include <stdlib.h> |
| 8 #include <ctime> | 8 #include <ctime> |
| 9 #include <map> | 9 #include <map> |
| 10 #include <sstream> | 10 #include <sstream> |
| 11 #include <string> | 11 #include <string> |
| 12 #include <utility> | 12 #include <utility> |
| 13 | 13 |
| 14 #include "base/base64.h" | 14 #include "base/base64.h" |
| 15 #include "base/bind.h" |
| 16 #include "base/bind_helpers.h" |
| 15 #include "base/files/file_path.h" | 17 #include "base/files/file_path.h" |
| 16 #include "base/files/file_util.h" | 18 #include "base/files/file_util.h" |
| 17 #include "base/format_macros.h" | 19 #include "base/format_macros.h" |
| 18 #include "base/macros.h" | 20 #include "base/macros.h" |
| 19 #include "base/md5.h" | 21 #include "base/md5.h" |
| 20 #include "base/memory/ptr_util.h" | 22 #include "base/memory/ptr_util.h" |
| 21 #include "base/path_service.h" | 23 #include "base/path_service.h" |
| 22 #include "base/strings/string_split.h" | 24 #include "base/strings/string_split.h" |
| 23 #include "base/strings/string_util.h" | 25 #include "base/strings/string_util.h" |
| 24 #include "base/strings/stringprintf.h" | 26 #include "base/strings/stringprintf.h" |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 593 delay = std::atof(request_url.query().c_str()); | 595 delay = std::atof(request_url.query().c_str()); |
| 594 | 596 |
| 595 std::unique_ptr<BasicHttpResponse> http_response( | 597 std::unique_ptr<BasicHttpResponse> http_response( |
| 596 new DelayedHttpResponse(delay)); | 598 new DelayedHttpResponse(delay)); |
| 597 http_response->set_content_type("text/plain"); | 599 http_response->set_content_type("text/plain"); |
| 598 http_response->set_content(base::StringPrintf("waited %.1f seconds", delay)); | 600 http_response->set_content(base::StringPrintf("waited %.1f seconds", delay)); |
| 599 return std::move(http_response); | 601 return std::move(http_response); |
| 600 } | 602 } |
| 601 | 603 |
| 602 // Never returns a response. | 604 // Never returns a response. |
| 603 class HungHttpResponse : public BasicHttpResponse { | 605 class HungHttpResponse : public HttpResponse { |
| 604 public: | 606 public: |
| 605 HungHttpResponse() {} | 607 HungHttpResponse() {} |
| 606 | 608 |
| 607 void SendResponse(const SendBytesCallback& send, | 609 void SendResponse(const SendBytesCallback& send, |
| 608 const SendCompleteCallback& done) override {} | 610 const SendCompleteCallback& done) override {} |
| 609 | 611 |
| 610 private: | 612 private: |
| 611 DISALLOW_COPY_AND_ASSIGN(HungHttpResponse); | 613 DISALLOW_COPY_AND_ASSIGN(HungHttpResponse); |
| 612 }; | 614 }; |
| 613 | 615 |
| 614 // /hung | 616 // /hung |
| 615 // Never returns a response. | 617 // Never returns a response. |
| 616 std::unique_ptr<HttpResponse> HandleHungResponse(const HttpRequest& request) { | 618 std::unique_ptr<HttpResponse> HandleHungResponse(const HttpRequest& request) { |
| 617 return base::MakeUnique<HungHttpResponse>(); | 619 return base::MakeUnique<HungHttpResponse>(); |
| 618 } | 620 } |
| 619 | 621 |
| 622 // Return headers, then hangs. |
| 623 class HungAfterHeadersHttpResponse : public HttpResponse { |
| 624 public: |
| 625 HungAfterHeadersHttpResponse() {} |
| 626 |
| 627 void SendResponse(const SendBytesCallback& send, |
| 628 const SendCompleteCallback& done) override { |
| 629 send.Run("HTTP/1.1 OK\r\n\r\n", base::Bind(&base::DoNothing)); |
| 630 } |
| 631 |
| 632 private: |
| 633 DISALLOW_COPY_AND_ASSIGN(HungAfterHeadersHttpResponse); |
| 634 }; |
| 635 |
| 636 // /hung-after-headers |
| 637 // Never returns a response. |
| 638 std::unique_ptr<HttpResponse> HandleHungAfterHeadersResponse( |
| 639 const HttpRequest& request) { |
| 640 return base::MakeUnique<HungAfterHeadersHttpResponse>(); |
| 641 } |
| 642 |
| 620 } // anonymous namespace | 643 } // anonymous namespace |
| 621 | 644 |
| 622 #define PREFIXED_HANDLER(prefix, handler) \ | 645 #define PREFIXED_HANDLER(prefix, handler) \ |
| 623 base::Bind(&HandlePrefixedRequest, prefix, base::Bind(handler)) | 646 base::Bind(&HandlePrefixedRequest, prefix, base::Bind(handler)) |
| 624 | 647 |
| 625 void RegisterDefaultHandlers(EmbeddedTestServer* server) { | 648 void RegisterDefaultHandlers(EmbeddedTestServer* server) { |
| 626 server->RegisterDefaultHandler(base::Bind(&HandleDefaultConnect)); | 649 server->RegisterDefaultHandler(base::Bind(&HandleDefaultConnect)); |
| 627 | 650 |
| 628 server->RegisterDefaultHandler( | 651 server->RegisterDefaultHandler( |
| 629 PREFIXED_HANDLER("/cachetime", &HandleCacheTime)); | 652 PREFIXED_HANDLER("/cachetime", &HandleCacheTime)); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 655 server->RegisterDefaultHandler( | 678 server->RegisterDefaultHandler( |
| 656 PREFIXED_HANDLER("/server-redirect", &HandleServerRedirect)); | 679 PREFIXED_HANDLER("/server-redirect", &HandleServerRedirect)); |
| 657 server->RegisterDefaultHandler(base::Bind(&HandleCrossSiteRedirect, server)); | 680 server->RegisterDefaultHandler(base::Bind(&HandleCrossSiteRedirect, server)); |
| 658 server->RegisterDefaultHandler( | 681 server->RegisterDefaultHandler( |
| 659 PREFIXED_HANDLER("/client-redirect", &HandleClientRedirect)); | 682 PREFIXED_HANDLER("/client-redirect", &HandleClientRedirect)); |
| 660 server->RegisterDefaultHandler( | 683 server->RegisterDefaultHandler( |
| 661 PREFIXED_HANDLER("/defaultresponse", &HandleDefaultResponse)); | 684 PREFIXED_HANDLER("/defaultresponse", &HandleDefaultResponse)); |
| 662 server->RegisterDefaultHandler(PREFIXED_HANDLER("/slow", &HandleSlowServer)); | 685 server->RegisterDefaultHandler(PREFIXED_HANDLER("/slow", &HandleSlowServer)); |
| 663 server->RegisterDefaultHandler( | 686 server->RegisterDefaultHandler( |
| 664 PREFIXED_HANDLER("/hung", &HandleHungResponse)); | 687 PREFIXED_HANDLER("/hung", &HandleHungResponse)); |
| 688 server->RegisterDefaultHandler( |
| 689 PREFIXED_HANDLER("/hung-after-headers", &HandleHungAfterHeadersResponse)); |
| 665 | 690 |
| 666 // TODO(svaldez): HandleDownload | 691 // TODO(svaldez): HandleDownload |
| 667 // TODO(svaldez): HandleDownloadFinish | 692 // TODO(svaldez): HandleDownloadFinish |
| 668 // TODO(svaldez): HandleZipFile | 693 // TODO(svaldez): HandleZipFile |
| 669 // TODO(svaldez): HandleSSLManySmallRecords | 694 // TODO(svaldez): HandleSSLManySmallRecords |
| 670 // TODO(svaldez): HandleChunkedServer | 695 // TODO(svaldez): HandleChunkedServer |
| 671 // TODO(svaldez): HandleGetSSLSessionCache | 696 // TODO(svaldez): HandleGetSSLSessionCache |
| 672 // TODO(svaldez): HandleGetChannelID | 697 // TODO(svaldez): HandleGetChannelID |
| 673 // TODO(svaldez): HandleGetClientCert | 698 // TODO(svaldez): HandleGetClientCert |
| 674 // TODO(svaldez): HandleClientCipherList | 699 // TODO(svaldez): HandleClientCipherList |
| 675 // TODO(svaldez): HandleEchoMultipartPost | 700 // TODO(svaldez): HandleEchoMultipartPost |
| 676 } | 701 } |
| 677 | 702 |
| 678 #undef PREFIXED_HANDLER | 703 #undef PREFIXED_HANDLER |
| 679 | 704 |
| 680 } // namespace test_server | 705 } // namespace test_server |
| 681 } // namespace net | 706 } // namespace net |
| OLD | NEW |