1 // Copyright 2014 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.
5 #include "sync/api/attachments/attachment.h"
9 #include "base/memory/ref_counted.h"
10 #include "base/memory/ref_counted_memory.h"
11 #include "sync/protocol/sync.pb.h"
12 #include "testing/gtest/include/gtest/gtest.h"
18 const char kAttachmentData
[] = "some data";
22 class AttachmentTest
: public testing::Test
{};
24 TEST_F(AttachmentTest
, Create_UniqueIdIsUnique
) {
25 scoped_refptr
<base::RefCountedString
> some_data(new base::RefCountedString
);
26 some_data
->data() = kAttachmentData
;
27 Attachment a1
= Attachment::Create(some_data
);
28 Attachment a2
= Attachment::Create(some_data
);
29 EXPECT_NE(a1
.GetId(), a2
.GetId());
30 EXPECT_EQ(a1
.GetData(), a2
.GetData());
33 TEST_F(AttachmentTest
, Create_WithEmptyData
) {
34 scoped_refptr
<base::RefCountedString
> empty_data(new base::RefCountedString
);
35 Attachment a
= Attachment::Create(empty_data
);
36 EXPECT_EQ(empty_data
, a
.GetData());
39 TEST_F(AttachmentTest
, CreateWithId_HappyCase
) {
40 AttachmentId id
= AttachmentId::Create();
41 scoped_refptr
<base::RefCountedString
> some_data(new base::RefCountedString
);
42 some_data
->data() = kAttachmentData
;
43 Attachment a
= Attachment::CreateWithId(id
, some_data
);
44 EXPECT_EQ(id
, a
.GetId());
45 EXPECT_EQ(some_data
, a
.GetData());