| Index: chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc
|
| diff --git a/chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc b/chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc
|
| index b5de15266d0b1d3417cfa686cc9d08de1444f2ee..90a7dac037517378b7caf4f14ddde5e9ef156916 100644
|
| --- a/chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc
|
| +++ b/chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc
|
| @@ -3,8 +3,10 @@
|
| // found in the LICENSE file.
|
|
|
| #include "base/bind.h"
|
| +#include "base/command_line.h"
|
| #include "base/message_loop/message_loop.h"
|
| #include "chrome/browser/chromeos/attestation/attestation_ca_client.h"
|
| +#include "chromeos/chromeos_switches.h"
|
| #include "content/public/test/test_browser_thread.h"
|
| #include "net/base/net_errors.h"
|
| #include "net/http/http_status_code.h"
|
| @@ -26,23 +28,38 @@ class AttestationCAClientTest : public ::testing::Test {
|
|
|
| ~AttestationCAClientTest() override {}
|
|
|
| - void DataCallback (bool result, const std::string& data) {
|
| + void DataCallback(bool result, const std::string& data) {
|
| ++num_invocations_;
|
| result_ = result;
|
| data_ = data;
|
| }
|
|
|
| - void DeleteClientDataCallback (AttestationCAClient* client,
|
| - bool result,
|
| - const std::string& data) {
|
| + void DeleteClientDataCallback(AttestationCAClient* client,
|
| + bool result,
|
| + const std::string& data) {
|
| delete client;
|
| DataCallback(result, data);
|
| }
|
|
|
| protected:
|
| + void CheckURLAndSendResponse(GURL expected_url,
|
| + net::Error error,
|
| + int response_code) {
|
| + net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
|
| + CHECK(fetcher);
|
| + EXPECT_EQ(expected_url, fetcher->GetOriginalURL());
|
| + SendFetcherResponse(fetcher, error, response_code);
|
| + }
|
| +
|
| void SendResponse(net::Error error, int response_code) {
|
| net::TestURLFetcher* fetcher = url_fetcher_factory_.GetFetcherByID(0);
|
| CHECK(fetcher);
|
| + SendFetcherResponse(fetcher, error, response_code);
|
| + }
|
| +
|
| + void SendFetcherResponse(net::TestURLFetcher* fetcher,
|
| + net::Error error,
|
| + int response_code) {
|
| fetcher->set_status(net::URLRequestStatus::FromError(error));
|
| fetcher->set_response_code(response_code);
|
| fetcher->SetResponseString(fetcher->upload_data() + "_response");
|
| @@ -65,7 +82,8 @@ TEST_F(AttestationCAClientTest, EnrollRequest) {
|
| "enroll",
|
| base::Bind(&AttestationCAClientTest::DataCallback,
|
| base::Unretained(this)));
|
| - SendResponse(net::OK, net::HTTP_OK);
|
| + CheckURLAndSendResponse(GURL("https://chromeos-ca.gstatic.com/enroll"),
|
| + net::OK, net::HTTP_OK);
|
|
|
| EXPECT_EQ(1, num_invocations_);
|
| EXPECT_TRUE(result_);
|
| @@ -78,7 +96,8 @@ TEST_F(AttestationCAClientTest, CertificateRequest) {
|
| "certificate",
|
| base::Bind(&AttestationCAClientTest::DataCallback,
|
| base::Unretained(this)));
|
| - SendResponse(net::OK, net::HTTP_OK);
|
| + CheckURLAndSendResponse(GURL("https://chromeos-ca.gstatic.com/sign"), net::OK,
|
| + net::HTTP_OK);
|
|
|
| EXPECT_EQ(1, num_invocations_);
|
| EXPECT_TRUE(result_);
|
| @@ -125,5 +144,68 @@ TEST_F(AttestationCAClientTest, DeleteOnCallback) {
|
| EXPECT_EQ("certificate_response", data_);
|
| }
|
|
|
| +class AttestationCAClientAttestationServerTest
|
| + : public AttestationCAClientTest {};
|
| +
|
| +TEST_F(AttestationCAClientAttestationServerTest, DefaultEnrollRequest) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + chromeos::switches::kAttestationServer, "default");
|
| + AttestationCAClient client;
|
| + client.SendEnrollRequest("enroll",
|
| + base::Bind(&AttestationCAClientTest::DataCallback,
|
| + base::Unretained(this)));
|
| + CheckURLAndSendResponse(GURL("https://chromeos-ca.gstatic.com/enroll"),
|
| + net::OK, net::HTTP_OK);
|
| +
|
| + EXPECT_EQ(1, num_invocations_);
|
| + EXPECT_TRUE(result_);
|
| + EXPECT_EQ("enroll_response", data_);
|
| +}
|
| +
|
| +TEST_F(AttestationCAClientAttestationServerTest, DefaultCertificateRequest) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + chromeos::switches::kAttestationServer, "default");
|
| + AttestationCAClient client;
|
| + client.SendCertificateRequest(
|
| + "certificate", base::Bind(&AttestationCAClientTest::DataCallback,
|
| + base::Unretained(this)));
|
| + CheckURLAndSendResponse(GURL("https://chromeos-ca.gstatic.com/sign"), net::OK,
|
| + net::HTTP_OK);
|
| +
|
| + EXPECT_EQ(1, num_invocations_);
|
| + EXPECT_TRUE(result_);
|
| + EXPECT_EQ("certificate_response", data_);
|
| +}
|
| +
|
| +TEST_F(AttestationCAClientAttestationServerTest, TestEnrollRequest) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + chromeos::switches::kAttestationServer, "test");
|
| + AttestationCAClient client;
|
| + client.SendEnrollRequest("enroll",
|
| + base::Bind(&AttestationCAClientTest::DataCallback,
|
| + base::Unretained(this)));
|
| + CheckURLAndSendResponse(GURL("https://asbestos-qa.corp.google.com/enroll"),
|
| + net::OK, net::HTTP_OK);
|
| +
|
| + EXPECT_EQ(1, num_invocations_);
|
| + EXPECT_TRUE(result_);
|
| + EXPECT_EQ("enroll_response", data_);
|
| +}
|
| +
|
| +TEST_F(AttestationCAClientAttestationServerTest, TestCertificateRequest) {
|
| + base::CommandLine::ForCurrentProcess()->AppendSwitchASCII(
|
| + chromeos::switches::kAttestationServer, "test");
|
| + AttestationCAClient client;
|
| + client.SendCertificateRequest(
|
| + "certificate", base::Bind(&AttestationCAClientTest::DataCallback,
|
| + base::Unretained(this)));
|
| + CheckURLAndSendResponse(GURL("https://asbestos-qa.corp.google.com/sign"),
|
| + net::OK, net::HTTP_OK);
|
| +
|
| + EXPECT_EQ(1, num_invocations_);
|
| + EXPECT_TRUE(result_);
|
| + EXPECT_EQ("certificate_response", data_);
|
| +}
|
| +
|
| } // namespace attestation
|
| } // namespace chromeos
|
|
|