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

Unified Diff: chrome/browser/chromeos/attestation/attestation_ca_client_unittest.cc

Issue 2464333002: Support different Google attestation (Privacy CA) servers. (Closed)
Patch Set: Fixed memory issues. Created 4 years, 1 month 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 side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « chrome/browser/chromeos/attestation/attestation_ca_client.cc ('k') | chromeos/attestation/attestation_constants.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698