Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "chrome/browser/net/certificate_error_reporter.h" | |
| 6 | |
| 7 #include "base/files/file_util.h" | |
| 8 #include "chrome/browser/net/cert_logger.pb.h" | |
| 9 #include "content/public/test/test_browser_thread.h" | |
| 10 #include "net/base/test_data_directory.h" | |
| 11 #include "net/test/cert_test_util.h" | |
| 12 #include "testing/gtest/include/gtest/gtest.h" | |
| 13 | |
| 14 using content::BrowserThread; | |
| 15 using net::SSLInfo; | |
| 16 | |
| 17 namespace chrome_browser_net { | |
| 18 | |
| 19 const std::string kHostname = "test.mail.google.com"; | |
|
Ryan Sleevi
2015/03/06 19:23:13
You should put all of these (including the test) i
estark
2015/03/06 19:52:06
If I put the test in an unnamed namespace, I can't
estark
2015/03/06 20:10:02
Done, except for the test for above reason.
Ryan Sleevi
2015/03/06 21:32:46
Ah, right, because the test is friended you can't.
| |
| 20 | |
| 21 static SSLInfo GetSSLInfo() { | |
|
Ryan Sleevi
2015/03/06 19:23:13
/static/ is not needed here (and perversely, undes
estark
2015/03/06 20:10:02
Done.
| |
| 22 SSLInfo info; | |
| 23 info.cert = net::ImportCertFromFile(net::GetTestCertsDirectory(), | |
| 24 "test_mail_google_com.pem"); | |
| 25 info.is_issued_by_known_root = true; | |
| 26 info.pinning_failure_log = "dummy failure log"; | |
| 27 return info; | |
| 28 } | |
| 29 | |
| 30 static std::string GetPEMEncodedChain() { | |
| 31 base::FilePath cert_path = | |
| 32 net::GetTestCertsDirectory().AppendASCII("test_mail_google_com.pem"); | |
| 33 std::string cert_data; | |
| 34 EXPECT_TRUE(base::ReadFileToString(cert_path, &cert_data)); | |
| 35 return cert_data; | |
| 36 } | |
| 37 | |
| 38 // Test that a built report has the correct data. | |
| 39 TEST(CertificateErrorReporterTest, ReportIsBuiltCorrectly) { | |
|
Ryan Sleevi
2015/03/06 19:23:13
This test is mostly testing the implementation det
estark
2015/03/06 19:28:18
I had a question about writing those kinds of test
| |
| 40 SSLInfo info = GetSSLInfo(); | |
| 41 CertLoggerRequest request; | |
| 42 CertificateErrorReporter::BuildReport(kHostname, info, request); | |
| 43 | |
| 44 EXPECT_EQ(request.hostname(), kHostname); | |
| 45 EXPECT_EQ(request.cert_chain(), GetPEMEncodedChain()); | |
| 46 EXPECT_EQ(request.pin().size(), 1); | |
| 47 EXPECT_EQ(request.pin().Get(0), "dummy failure log"); | |
| 48 } | |
| 49 | |
| 50 } // namespace chrome_browser_net | |
| OLD | NEW |