| 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 "chrome/browser/extensions/extension_apitest.h" | 5 #include "chrome/browser/extensions/extension_apitest.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <utility> |
| 8 | 9 |
| 9 #include "base/base_switches.h" | 10 #include "base/base_switches.h" |
| 10 #include "base/strings/string_split.h" | 11 #include "base/strings/string_split.h" |
| 11 #include "base/strings/string_util.h" | 12 #include "base/strings/string_util.h" |
| 12 #include "base/strings/stringprintf.h" | 13 #include "base/strings/stringprintf.h" |
| 13 #include "build/build_config.h" | 14 #include "build/build_config.h" |
| 14 #include "chrome/browser/extensions/extension_service.h" | 15 #include "chrome/browser/extensions/extension_service.h" |
| 15 #include "chrome/browser/extensions/unpacked_installer.h" | 16 #include "chrome/browser/extensions/unpacked_installer.h" |
| 16 #include "chrome/browser/profiles/profile.h" | 17 #include "chrome/browser/profiles/profile.h" |
| 17 #include "chrome/browser/ui/browser.h" | 18 #include "chrome/browser/ui/browser.h" |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 50 return nullptr; | 51 return nullptr; |
| 51 | 52 |
| 52 size_t query_string_pos = request.relative_url.find('?'); | 53 size_t query_string_pos = request.relative_url.find('?'); |
| 53 std::string redirect_target = | 54 std::string redirect_target = |
| 54 request.relative_url.substr(query_string_pos + 1); | 55 request.relative_url.substr(query_string_pos + 1); |
| 55 | 56 |
| 56 scoped_ptr<net::test_server::BasicHttpResponse> http_response( | 57 scoped_ptr<net::test_server::BasicHttpResponse> http_response( |
| 57 new net::test_server::BasicHttpResponse); | 58 new net::test_server::BasicHttpResponse); |
| 58 http_response->set_code(net::HTTP_MOVED_PERMANENTLY); | 59 http_response->set_code(net::HTTP_MOVED_PERMANENTLY); |
| 59 http_response->AddCustomHeader("Location", redirect_target); | 60 http_response->AddCustomHeader("Location", redirect_target); |
| 60 return http_response.Pass(); | 61 return std::move(http_response); |
| 61 } | 62 } |
| 62 | 63 |
| 63 scoped_ptr<net::test_server::HttpResponse> HandleEchoHeaderRequest( | 64 scoped_ptr<net::test_server::HttpResponse> HandleEchoHeaderRequest( |
| 64 const net::test_server::HttpRequest& request) { | 65 const net::test_server::HttpRequest& request) { |
| 65 if (!base::StartsWith(request.relative_url, "/echoheader?", | 66 if (!base::StartsWith(request.relative_url, "/echoheader?", |
| 66 base::CompareCase::SENSITIVE)) | 67 base::CompareCase::SENSITIVE)) |
| 67 return nullptr; | 68 return nullptr; |
| 68 | 69 |
| 69 size_t query_string_pos = request.relative_url.find('?'); | 70 size_t query_string_pos = request.relative_url.find('?'); |
| 70 std::string header_name = | 71 std::string header_name = |
| 71 request.relative_url.substr(query_string_pos + 1); | 72 request.relative_url.substr(query_string_pos + 1); |
| 72 | 73 |
| 73 std::string header_value; | 74 std::string header_value; |
| 74 auto it = request.headers.find(header_name); | 75 auto it = request.headers.find(header_name); |
| 75 if (it != request.headers.end()) | 76 if (it != request.headers.end()) |
| 76 header_value = it->second; | 77 header_value = it->second; |
| 77 | 78 |
| 78 scoped_ptr<net::test_server::BasicHttpResponse> http_response( | 79 scoped_ptr<net::test_server::BasicHttpResponse> http_response( |
| 79 new net::test_server::BasicHttpResponse); | 80 new net::test_server::BasicHttpResponse); |
| 80 http_response->set_code(net::HTTP_OK); | 81 http_response->set_code(net::HTTP_OK); |
| 81 http_response->set_content(header_value); | 82 http_response->set_content(header_value); |
| 82 return http_response.Pass(); | 83 return std::move(http_response); |
| 83 } | 84 } |
| 84 | 85 |
| 85 scoped_ptr<net::test_server::HttpResponse> HandleSetCookieRequest( | 86 scoped_ptr<net::test_server::HttpResponse> HandleSetCookieRequest( |
| 86 const net::test_server::HttpRequest& request) { | 87 const net::test_server::HttpRequest& request) { |
| 87 if (!base::StartsWith(request.relative_url, "/set-cookie?", | 88 if (!base::StartsWith(request.relative_url, "/set-cookie?", |
| 88 base::CompareCase::SENSITIVE)) | 89 base::CompareCase::SENSITIVE)) |
| 89 return nullptr; | 90 return nullptr; |
| 90 | 91 |
| 91 scoped_ptr<net::test_server::BasicHttpResponse> http_response( | 92 scoped_ptr<net::test_server::BasicHttpResponse> http_response( |
| 92 new net::test_server::BasicHttpResponse); | 93 new net::test_server::BasicHttpResponse); |
| 93 http_response->set_code(net::HTTP_OK); | 94 http_response->set_code(net::HTTP_OK); |
| 94 | 95 |
| 95 size_t query_string_pos = request.relative_url.find('?'); | 96 size_t query_string_pos = request.relative_url.find('?'); |
| 96 std::string cookie_value = | 97 std::string cookie_value = |
| 97 request.relative_url.substr(query_string_pos + 1); | 98 request.relative_url.substr(query_string_pos + 1); |
| 98 | 99 |
| 99 for (const std::string& cookie : base::SplitString( | 100 for (const std::string& cookie : base::SplitString( |
| 100 cookie_value, "&", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) | 101 cookie_value, "&", base::TRIM_WHITESPACE, base::SPLIT_WANT_ALL)) |
| 101 http_response->AddCustomHeader("Set-Cookie", cookie); | 102 http_response->AddCustomHeader("Set-Cookie", cookie); |
| 102 | 103 |
| 103 return http_response.Pass(); | 104 return std::move(http_response); |
| 104 } | 105 } |
| 105 | 106 |
| 106 scoped_ptr<net::test_server::HttpResponse> HandleSetHeaderRequest( | 107 scoped_ptr<net::test_server::HttpResponse> HandleSetHeaderRequest( |
| 107 const net::test_server::HttpRequest& request) { | 108 const net::test_server::HttpRequest& request) { |
| 108 if (!base::StartsWith(request.relative_url, "/set-header?", | 109 if (!base::StartsWith(request.relative_url, "/set-header?", |
| 109 base::CompareCase::SENSITIVE)) | 110 base::CompareCase::SENSITIVE)) |
| 110 return nullptr; | 111 return nullptr; |
| 111 | 112 |
| 112 size_t query_string_pos = request.relative_url.find('?'); | 113 size_t query_string_pos = request.relative_url.find('?'); |
| 113 std::string escaped_header = | 114 std::string escaped_header = |
| (...skipping 10 matching lines...) Expand all Loading... |
| 124 return scoped_ptr<net::test_server::HttpResponse>(); | 125 return scoped_ptr<net::test_server::HttpResponse>(); |
| 125 | 126 |
| 126 std::string header_name = header.substr(0, colon_pos); | 127 std::string header_name = header.substr(0, colon_pos); |
| 127 // Skip space after colon. | 128 // Skip space after colon. |
| 128 std::string header_value = header.substr(colon_pos + 2); | 129 std::string header_value = header.substr(colon_pos + 2); |
| 129 | 130 |
| 130 scoped_ptr<net::test_server::BasicHttpResponse> http_response( | 131 scoped_ptr<net::test_server::BasicHttpResponse> http_response( |
| 131 new net::test_server::BasicHttpResponse); | 132 new net::test_server::BasicHttpResponse); |
| 132 http_response->set_code(net::HTTP_OK); | 133 http_response->set_code(net::HTTP_OK); |
| 133 http_response->AddCustomHeader(header_name, header_value); | 134 http_response->AddCustomHeader(header_name, header_value); |
| 134 return http_response.Pass(); | 135 return std::move(http_response); |
| 135 } | 136 } |
| 136 | 137 |
| 137 }; // namespace | 138 }; // namespace |
| 138 | 139 |
| 139 ExtensionApiTest::ExtensionApiTest() { | 140 ExtensionApiTest::ExtensionApiTest() { |
| 140 embedded_test_server()->RegisterRequestHandler( | 141 embedded_test_server()->RegisterRequestHandler( |
| 141 base::Bind(&HandleServerRedirectRequest)); | 142 base::Bind(&HandleServerRedirectRequest)); |
| 142 embedded_test_server()->RegisterRequestHandler( | 143 embedded_test_server()->RegisterRequestHandler( |
| 143 base::Bind(&HandleEchoHeaderRequest)); | 144 base::Bind(&HandleEchoHeaderRequest)); |
| 144 embedded_test_server()->RegisterRequestHandler( | 145 embedded_test_server()->RegisterRequestHandler( |
| (...skipping 273 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 } | 419 } |
| 419 | 420 |
| 420 void ExtensionApiTest::SetUpCommandLine(base::CommandLine* command_line) { | 421 void ExtensionApiTest::SetUpCommandLine(base::CommandLine* command_line) { |
| 421 ExtensionBrowserTest::SetUpCommandLine(command_line); | 422 ExtensionBrowserTest::SetUpCommandLine(command_line); |
| 422 test_data_dir_ = test_data_dir_.AppendASCII("api_test"); | 423 test_data_dir_ = test_data_dir_.AppendASCII("api_test"); |
| 423 // Backgrounded renderer processes run at a lower priority, causing the | 424 // Backgrounded renderer processes run at a lower priority, causing the |
| 424 // tests to take more time to complete. Disable backgrounding so that the | 425 // tests to take more time to complete. Disable backgrounding so that the |
| 425 // tests don't time out. | 426 // tests don't time out. |
| 426 command_line->AppendSwitch(switches::kDisableRendererBackgrounding); | 427 command_line->AppendSwitch(switches::kDisableRendererBackgrounding); |
| 427 } | 428 } |
| OLD | NEW |