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

Side by Side Diff: extensions/browser/guest_view/web_view/web_view_apitest.cc

Issue 640603005: <webview>: Add additional WebRequest API test coverage. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix appshell test Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "extensions/browser/guest_view/web_view/web_view_apitest.h" 5 #include "extensions/browser/guest_view/web_view/web_view_apitest.h"
6 6
7 #include "base/path_service.h" 7 #include "base/path_service.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/stringprintf.h" 9 #include "base/strings/stringprintf.h"
10 #include "content/public/browser/render_process_host.h" 10 #include "content/public/browser/render_process_host.h"
(...skipping 16 matching lines...) Expand all
27 #include "net/base/filename_util.h" 27 #include "net/base/filename_util.h"
28 #include "net/test/embedded_test_server/embedded_test_server.h" 28 #include "net/test/embedded_test_server/embedded_test_server.h"
29 #include "net/test/embedded_test_server/http_request.h" 29 #include "net/test/embedded_test_server/http_request.h"
30 #include "net/test/embedded_test_server/http_response.h" 30 #include "net/test/embedded_test_server/http_response.h"
31 31
32 namespace { 32 namespace {
33 33
34 const char kEmptyResponsePath[] = "/close-socket"; 34 const char kEmptyResponsePath[] = "/close-socket";
35 const char kRedirectResponsePath[] = "/server-redirect"; 35 const char kRedirectResponsePath[] = "/server-redirect";
36 const char kRedirectResponseFullPath[] = "/guest_redirect.html"; 36 const char kRedirectResponseFullPath[] = "/guest_redirect.html";
37 const char kUserAgentRedirectResponsePath[] = "/detect-user-agent";
37 const char kTestDataDirectory[] = "testDataDirectory"; 38 const char kTestDataDirectory[] = "testDataDirectory";
38 const char kTestServerPort[] = "testServer.port"; 39 const char kTestServerPort[] = "testServer.port";
39 const char kTestWebSocketPort[] = "testWebSocketPort"; 40 const char kTestWebSocketPort[] = "testWebSocketPort";
40 41
41 class EmptyHttpResponse : public net::test_server::HttpResponse { 42 class EmptyHttpResponse : public net::test_server::HttpResponse {
42 public: 43 public:
43 virtual std::string ToResponseString() const override { 44 virtual std::string ToResponseString() const override {
44 return std::string(); 45 return std::string();
45 } 46 }
46 }; 47 };
47 48
49 // Handles |request| by serving a redirect response if the |User-Agent| is
50 // foobar.
51 static scoped_ptr<net::test_server::HttpResponse> UserAgentResponseHandler(
52 const std::string& path,
53 const GURL& redirect_target,
54 const net::test_server::HttpRequest& request) {
55 if (!StartsWithASCII(path, request.relative_url, true))
56 return scoped_ptr<net::test_server::HttpResponse>();
57
58 std::map<std::string, std::string>::const_iterator it =
59 request.headers.find("User-Agent");
60 EXPECT_TRUE(it != request.headers.end());
61 if (!StartsWithASCII("foobar", it->second, true))
62 return scoped_ptr<net::test_server::HttpResponse>();
63
64 scoped_ptr<net::test_server::BasicHttpResponse> http_response(
65 new net::test_server::BasicHttpResponse);
66 http_response->set_code(net::HTTP_MOVED_PERMANENTLY);
67 http_response->AddCustomHeader("Location", redirect_target.spec());
68 return http_response.PassAs<net::test_server::HttpResponse>();
69 }
70
48 // Handles |request| by serving a redirect response. 71 // Handles |request| by serving a redirect response.
49 scoped_ptr<net::test_server::HttpResponse> RedirectResponseHandler( 72 scoped_ptr<net::test_server::HttpResponse> RedirectResponseHandler(
50 const std::string& path, 73 const std::string& path,
51 const GURL& redirect_target, 74 const GURL& redirect_target,
52 const net::test_server::HttpRequest& request) { 75 const net::test_server::HttpRequest& request) {
53 if (!StartsWithASCII(path, request.relative_url, true)) 76 if (!StartsWithASCII(path, request.relative_url, true))
54 return scoped_ptr<net::test_server::HttpResponse>(); 77 return scoped_ptr<net::test_server::HttpResponse>();
55 78
56 scoped_ptr<net::test_server::BasicHttpResponse> http_response( 79 scoped_ptr<net::test_server::BasicHttpResponse> http_response(
57 new net::test_server::BasicHttpResponse); 80 new net::test_server::BasicHttpResponse);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
138 161
139 test_config_.SetInteger(kTestServerPort, embedded_test_server()->port()); 162 test_config_.SetInteger(kTestServerPort, embedded_test_server()->port());
140 163
141 embedded_test_server()->RegisterRequestHandler( 164 embedded_test_server()->RegisterRequestHandler(
142 base::Bind(&RedirectResponseHandler, 165 base::Bind(&RedirectResponseHandler,
143 kRedirectResponsePath, 166 kRedirectResponsePath,
144 embedded_test_server()->GetURL(kRedirectResponseFullPath))); 167 embedded_test_server()->GetURL(kRedirectResponseFullPath)));
145 168
146 embedded_test_server()->RegisterRequestHandler( 169 embedded_test_server()->RegisterRequestHandler(
147 base::Bind(&EmptyResponseHandler, kEmptyResponsePath)); 170 base::Bind(&EmptyResponseHandler, kEmptyResponsePath));
171
172 embedded_test_server()->RegisterRequestHandler(
173 base::Bind(
174 &UserAgentResponseHandler,
175 kUserAgentRedirectResponsePath,
176 embedded_test_server()->GetURL(kRedirectResponseFullPath)));
148 } 177 }
149 178
150 void WebViewAPITest::StopTestServer() { 179 void WebViewAPITest::StopTestServer() {
151 if (!embedded_test_server()->ShutdownAndWaitUntilComplete()) { 180 if (!embedded_test_server()->ShutdownAndWaitUntilComplete()) {
152 LOG(ERROR) << "Failed to shutdown test server."; 181 LOG(ERROR) << "Failed to shutdown test server.";
153 } 182 }
154 } 183 }
155 184
156 void WebViewAPITest::TearDownOnMainThread() { 185 void WebViewAPITest::TearDownOnMainThread() {
157 TestGetConfigFunction::set_test_config_state(nullptr); 186 TestGetConfigFunction::set_test_config_state(nullptr);
(...skipping 283 matching lines...) Expand 10 before | Expand all | Expand 10 after
441 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestTerminateAfterExit) { 470 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestTerminateAfterExit) {
442 RunTest("testTerminateAfterExit", "web_view/apitest"); 471 RunTest("testTerminateAfterExit", "web_view/apitest");
443 } 472 }
444 473
445 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPI) { 474 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPI) {
446 StartTestServer(); 475 StartTestServer();
447 RunTest("testWebRequestAPI", "web_view/apitest"); 476 RunTest("testWebRequestAPI", "web_view/apitest");
448 StopTestServer(); 477 StopTestServer();
449 } 478 }
450 479
480 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPIWithHeaders) {
481 StartTestServer();
482 RunTest("testWebRequestAPIWithHeaders", "web_view/apitest");
483 StopTestServer();
484 }
485
451 // Tests the existence of WebRequest API event objects on the request 486 // Tests the existence of WebRequest API event objects on the request
452 // object, on the webview element, and hanging directly off webview. 487 // object, on the webview element, and hanging directly off webview.
453 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPIExistence) { 488 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPIExistence) {
454 StartTestServer(); 489 StartTestServer();
455 RunTest("testWebRequestAPIExistence", "web_view/apitest"); 490 RunTest("testWebRequestAPIExistence", "web_view/apitest");
456 StopTestServer(); 491 StopTestServer();
457 } 492 }
458 493
459 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPIGoogleProperty) { 494 IN_PROC_BROWSER_TEST_F(WebViewAPITest, TestWebRequestAPIGoogleProperty) {
460 StartTestServer(); 495 StartTestServer();
461 RunTest("testWebRequestAPIGoogleProperty", "web_view/apitest"); 496 RunTest("testWebRequestAPIGoogleProperty", "web_view/apitest");
462 StopTestServer(); 497 StopTestServer();
463 } 498 }
464 499
465 } // namespace extensions 500 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/test/data/extensions/platform_apps/web_view/shim/main.js ('k') | extensions/test/data/web_view/apitest/main.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698