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