| Index: net/cert/internal/test_helpers.h
|
| diff --git a/net/cert/internal/test_helpers.h b/net/cert/internal/test_helpers.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..99405ba8e5f3bdcea3ad8c802e5ec86b807f0c3b
|
| --- /dev/null
|
| +++ b/net/cert/internal/test_helpers.h
|
| @@ -0,0 +1,64 @@
|
| +// 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.
|
| +
|
| +#ifndef NET_CERT_INTERNAL_TEST_HELPERS_H_
|
| +#define NET_CERT_INTERNAL_TEST_HELPERS_H_
|
| +
|
| +#include <string>
|
| +#include <vector>
|
| +
|
| +#include "net/der/input.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +
|
| +namespace net {
|
| +
|
| +// Creates a der::Input from an std::string. The lifetimes are a bit subtle
|
| +// when using this function:
|
| +//
|
| +// The returned der::Input() is only valid so long as the input string is alive
|
| +// and is not mutated.
|
| +//
|
| +// Note that the input parameter has been made a pointer to prevent callers
|
| +// from accidentally passing an r-value.
|
| +der::Input InputFromString(const std::string* s);
|
| +
|
| +// Helper structure that maps a PEM block header (for instance "CERTIFICATE") to
|
| +// the destination where the value for that block should be written.
|
| +struct PemBlockMapping {
|
| + const char* block_name;
|
| + std::string* value;
|
| +};
|
| +
|
| +// ReadTestDataFromPemFile() is a helper function that reads a PEM test file
|
| +// rooted in the "src/" directory.
|
| +//
|
| +// * file_path_ascii:
|
| +// The path to the PEM file, relative to src. For instance
|
| +// "net/data/verify_signed_data_unittest/foopy.pem"
|
| +//
|
| +// * mappings:
|
| +// An array of length |mappings_length| which maps the expected PEM
|
| +// headers to the destination to write its data.
|
| +//
|
| +// The function ensures that each of the chosen mappings is satisfied exactly
|
| +// once. In other words, the header must be present, have valid data, and
|
| +// appear no more than once.
|
| +::testing::AssertionResult ReadTestDataFromPemFile(
|
| + const std::string& file_path_ascii,
|
| + const PemBlockMapping* mappings,
|
| + size_t mappings_length);
|
| +
|
| +// This is the same as the variant above, however it uses template magic so an
|
| +// mappings array can be passed in directly (and the correct length is
|
| +// inferred).
|
| +template <size_t N>
|
| +::testing::AssertionResult ReadTestDataFromPemFile(
|
| + const std::string& file_path_ascii,
|
| + const PemBlockMapping(&mappings)[N]) {
|
| + return ReadTestDataFromPemFile(file_path_ascii, mappings, N);
|
| +}
|
| +
|
| +} // namespace net
|
| +
|
| +#endif // NET_CERT_INTERNAL_TEST_HELPERS_H_
|
|
|