spdy_test_utils.h revision 03b57e008b61dfcb1fbad3aea950ae0e001748b0
1// Copyright (c) 2012 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#ifndef NET_SPDY_TEST_UTILS_H_
6#define NET_SPDY_TEST_UTILS_H_
7
8#include <stdint.h>
9
10#include <string>
11
12#include "net/spdy/spdy_protocol.h"
13
14namespace net {
15
16class HashValue;
17class TransportSecurityState;
18
19namespace test {
20
21std::string HexDumpWithMarks(const unsigned char* data, int length,
22                             const bool* marks, int mark_length);
23
24void CompareCharArraysWithHexError(
25    const std::string& description,
26    const unsigned char* actual,
27    const int actual_len,
28    const unsigned char* expected,
29    const int expected_len);
30
31void SetFrameFlags(SpdyFrame* frame,
32                   uint8 flags,
33                   SpdyMajorVersion spdy_version);
34
35void SetFrameLength(SpdyFrame* frame,
36                    size_t length,
37                    SpdyMajorVersion spdy_version);
38
39std::string a2b_hex(const char* hex_data);
40
41// Returns a SHA1 HashValue in which each byte has the value |label|.
42HashValue GetTestHashValue(uint8_t label);
43
44// Returns SHA1 pinning header for the of the base64 encoding of
45// GetTestHashValue(|label|).
46std::string GetTestPin(uint8_t label);
47
48// Adds a pin for |host| to |state|.
49void AddPin(TransportSecurityState* state,
50            const std::string& host,
51            uint8_t primary_label,
52            uint8_t backup_label);
53
54}  // namespace test
55
56}  // namespace net
57
58#endif  // NET_SPDY_TEST_UTILS_H_
59