Chromium Code Reviews| Index: chrome/browser/extensions/background_xhr_apitest.cc |
| diff --git a/chrome/browser/extensions/background_xhr_apitest.cc b/chrome/browser/extensions/background_xhr_apitest.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..c59e0dd97c329ee0926ee4a2f66d5973499611d7 |
| --- /dev/null |
| +++ b/chrome/browser/extensions/background_xhr_apitest.cc |
| @@ -0,0 +1,63 @@ |
| +// Copyright 2015 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "base/bind.h" |
| +#include "base/memory/scoped_ptr.h" |
| +#include "base/run_loop.h" |
| +#include "chrome/browser/extensions/extension_apitest.h" |
| +#include "chrome/browser/profiles/profile.h" |
| +#include "chrome/browser/profiles/profile_io_data.h" |
| +#include "chrome/browser/ui/browser.h" |
| +#include "content/public/browser/browser_thread.h" |
| +#include "net/ssl/client_cert_store.h" |
| +#include "net/test/spawned_test_server/spawned_test_server.h" |
| + |
| +namespace { |
| + |
| +scoped_ptr<net::ClientCertStore> CreateNullCertStore() { |
| + return nullptr; |
| +} |
| + |
| +void InstallNullCertStoreFactoryOnIOThread( |
| + content::ResourceContext* resource_context) { |
| + ProfileIOData::FromResourceContext(resource_context) |
| + ->set_client_cert_store_factory_for_testing( |
| + base::Bind(&CreateNullCertStore)); |
| +} |
| + |
| +} // namespace |
| + |
| +// Test that fetching a URL using TLS client auth doesn't crash, hang, or |
| +// prompt. |
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BackgroundXhrTlsClientAuth) { |
|
asargent_no_longer_on_chrome
2015/03/03 00:10:30
Usually ExtensionApiTest tests are for testing ext
davidben
2015/03/05 20:01:52
Done.
|
| + // Install a null ClientCertStore so the client auth prompt isn't bypassed due |
| + // to the system certificate store returning no certificates. |
| + base::RunLoop loop; |
| + content::BrowserThread::PostTaskAndReply( |
| + content::BrowserThread::IO, FROM_HERE, |
| + base::Bind(&InstallNullCertStoreFactoryOnIOThread, |
| + browser()->profile()->GetResourceContext()), |
| + loop.QuitClosure()); |
| + loop.Run(); |
| + |
| + // Launch HTTPS server. |
| + net::SpawnedTestServer::SSLOptions ssl_options; |
| + ssl_options.request_client_certificate = true; |
| + net::SpawnedTestServer https_server( |
| + net::SpawnedTestServer::TYPE_HTTPS, ssl_options, |
| + base::FilePath(FILE_PATH_LITERAL("content/test/data"))); |
| + ASSERT_TRUE(https_server.Start()); |
| + |
| + std::string url = https_server.GetURL("").spec(); |
| + ASSERT_TRUE(RunExtensionSubtestWithArg( |
| + "background_xhr", "test_tls_client_auth.html", url.c_str())) |
| + << message_; |
| +} |
| + |
| +// Test that fetching a URL using HTTP auth doesn't crash, hang, or prompt. |
| +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, BackgroundXhrHttpAuth) { |
| + ASSERT_TRUE(StartSpawnedTestServer()); |
| + ASSERT_TRUE(RunExtensionSubtest("background_xhr", "test_http_auth.html")) |
| + << message_; |
| +} |