1// Copyright 2013 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 "net/cert/signed_certificate_timestamp.h"
6
7#include <string>
8
9#include "base/pickle.h"
10#include "net/test/ct_test_util.h"
11#include "testing/gtest/include/gtest/gtest.h"
12
13namespace net {
14
15namespace ct {
16
17namespace {
18
19const char kLogDescription[] = "somelog";
20
21class SignedCertificateTimestampTest : public ::testing::Test {
22 public:
23  virtual void SetUp() OVERRIDE {
24    GetX509CertSCT(&sample_sct_);
25    sample_sct_->origin = SignedCertificateTimestamp::SCT_FROM_OCSP_RESPONSE;
26    sample_sct_->log_description = kLogDescription;
27  }
28
29 protected:
30  scoped_refptr<SignedCertificateTimestamp> sample_sct_;
31};
32
33TEST_F(SignedCertificateTimestampTest, PicklesAndUnpickles) {
34  Pickle pickle;
35
36  sample_sct_->Persist(&pickle);
37  PickleIterator iter(pickle);
38
39  scoped_refptr<SignedCertificateTimestamp> unpickled_sct(
40      SignedCertificateTimestamp::CreateFromPickle(&iter));
41
42  SignedCertificateTimestamp::LessThan less_than;
43
44  ASSERT_FALSE(less_than(sample_sct_, unpickled_sct));
45  ASSERT_FALSE(less_than(unpickled_sct, sample_sct_));
46  ASSERT_EQ(sample_sct_->origin, unpickled_sct->origin);
47  ASSERT_EQ(sample_sct_->log_description, unpickled_sct->log_description);
48}
49
50}  // namespace
51
52}  // namespace ct
53
54}  // namespace net
55