OLD | NEW |
(Empty) | |
| 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. |
| 4 |
| 5 #include "sync/api/attachments/fake_attachment_uploader.h" |
| 6 |
| 7 #include "base/bind.h" |
| 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/ref_counted_memory.h" |
| 10 #include "base/message_loop/message_loop.h" |
| 11 #include "sync/api/attachments/attachment.h" |
| 12 #include "testing/gtest/include/gtest/gtest.h" |
| 13 |
| 14 namespace syncer { |
| 15 |
| 16 namespace { |
| 17 |
| 18 const char kAttachmentData[] = "some data"; |
| 19 |
| 20 } // namespace |
| 21 |
| 22 class FakeAttachmentUploaderTest : public testing::Test { |
| 23 protected: |
| 24 virtual void SetUp() { |
| 25 upload_callback_count = 0; |
| 26 upload_callback = base::Bind(&FakeAttachmentUploaderTest::Increment, |
| 27 base::Unretained(this), |
| 28 &upload_callback_count); |
| 29 } |
| 30 base::MessageLoop message_loop; |
| 31 FakeAttachmentUploader uploader; |
| 32 int upload_callback_count; |
| 33 AttachmentUploader::UploadCallback upload_callback; |
| 34 |
| 35 private: |
| 36 void Increment(int* success_count, |
| 37 const AttachmentUploader::UploadResult& result, |
| 38 const AttachmentId& ignored) { |
| 39 if (result == AttachmentUploader::UPLOAD_SUCCESS) { |
| 40 ++(*success_count); |
| 41 } |
| 42 } |
| 43 }; |
| 44 |
| 45 // Call upload attachment several times, see that the supplied callback is |
| 46 // invoked the same number of times with a result of SUCCESS. |
| 47 TEST_F(FakeAttachmentUploaderTest, UploadAttachment) { |
| 48 scoped_refptr<base::RefCountedString> some_data(new base::RefCountedString); |
| 49 some_data->data() = kAttachmentData; |
| 50 Attachment attachment1 = Attachment::Create(some_data); |
| 51 Attachment attachment2 = Attachment::Create(some_data); |
| 52 Attachment attachment3 = Attachment::Create(some_data); |
| 53 uploader.UploadAttachment(attachment1, upload_callback); |
| 54 uploader.UploadAttachment(attachment2, upload_callback); |
| 55 uploader.UploadAttachment(attachment3, upload_callback); |
| 56 message_loop.RunUntilIdle(); |
| 57 EXPECT_EQ(upload_callback_count, 3); |
| 58 } |
| 59 |
| 60 } // namespace syncer |
OLD | NEW |