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

Unified Diff: components/cronet/ios/test/cronet_test_base.h

Issue 2928653002: [Cronet-iOS] Public-Key-Pinning Tests (Closed)
Patch Set: Fixed DEPS Created 3 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/cronet/ios/test/cronet_pkp_test.mm ('k') | components/cronet/ios/test/cronet_test_base.mm » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/cronet/ios/test/cronet_test_base.h
diff --git a/components/cronet/ios/test/cronet_test_base.h b/components/cronet/ios/test/cronet_test_base.h
new file mode 100644
index 0000000000000000000000000000000000000000..770b980b32c851c27176f09f456d512d60630631
--- /dev/null
+++ b/components/cronet/ios/test/cronet_test_base.h
@@ -0,0 +1,73 @@
+// Copyright 2017 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.
+
+#ifndef COMPONENTS_CRONET_IOS_TEST_CRONET_TEST_BASE_H_
+#define COMPONENTS_CRONET_IOS_TEST_CRONET_TEST_BASE_H_
+
+#include <Cronet/Cronet.h>
+#include "net/cert/cert_verifier.h"
+#include "net/cert/x509_certificate.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+#pragma mark
+
+// Exposes private test-only methods of the Cronet class.
+@interface Cronet (ExposedForTesting)
++ (void)shutdownForTesting;
++ (void)setMockCertVerifierForTesting:
+ (std::unique_ptr<net::CertVerifier>)certVerifier;
+@end
+
+// NSURLSessionDataDelegate delegate implementation used by the tests to
+// wait for a response and check its status.
+@interface TestDelegate : NSObject<NSURLSessionDataDelegate>
+
+// Error the request this delegate is attached to failed with, if any.
+@property(retain, atomic) NSError* error;
+
+// Contains total amount of received data.
+@property(readonly) long totalBytesReceived;
+
+// Resets the delegate, so it can be used again for another request.
+- (void)reset;
+
+// Contains the response body.
+- (NSString*)responseBody;
+
+/// Waits for request to complete.
+
+/// @return |NO| if the request didn't complete and the method timed-out.
+- (BOOL)waitForDone;
+
+@end
+
+// Forward declaration.
+namespace net {
+class MockCertVerifier;
+}
+
+namespace cronet {
+
+// A base class that should be extended by all other Cronet tests.
+// The class automatically starts and stops the test QUIC server.
+class CronetTestBase : public ::testing::Test {
+ protected:
+ static bool CalculatePublicKeySha256(const net::X509Certificate& cert,
+ net::HashValue* out_hash_value);
+
+ void SetUp() override;
+ void TearDown() override;
+ void StartDataTaskAndWaitForCompletion(NSURLSessionDataTask* task);
+ std::unique_ptr<net::MockCertVerifier> CreateMockCertVerifier(
+ const std::vector<std::string>& certs,
+ bool known_root);
+
+ ::testing::AssertionResult IsResponseSuccessful();
+
+ TestDelegate* delegate_;
+}; // class CronetTestBase
+
+} // namespace cronet
+
+#endif // COMPONENTS_CRONET_IOS_TEST_CRONET_TEST_BASE_H_
« no previous file with comments | « components/cronet/ios/test/cronet_pkp_test.mm ('k') | components/cronet/ios/test/cronet_test_base.mm » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698