summaryrefslogtreecommitdiffstats
path: root/sync/internal_api/test/test_user_share.cc
diff options
context:
space:
mode:
Diffstat (limited to 'sync/internal_api/test/test_user_share.cc')
-rw-r--r--sync/internal_api/test/test_user_share.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/sync/internal_api/test/test_user_share.cc b/sync/internal_api/test/test_user_share.cc
new file mode 100644
index 0000000..c028d66
--- /dev/null
+++ b/sync/internal_api/test/test_user_share.cc
@@ -0,0 +1,41 @@
+// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "sync/internal_api/public/test/test_user_share.h"
+
+#include "base/compiler_specific.h"
+#include "sync/test/engine/test_directory_setter_upper.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace browser_sync {
+
+TestUserShare::TestUserShare() : dir_maker_(new TestDirectorySetterUpper()) {}
+
+TestUserShare::~TestUserShare() {
+ if (user_share_.get())
+ ADD_FAILURE() << "Should have called TestUserShare::TearDown()";
+}
+
+void TestUserShare::SetUp() {
+ user_share_.reset(new sync_api::UserShare());
+ dir_maker_->SetUp();
+
+ // The pointer is owned by dir_maker_, we should not be storing it in a
+ // scoped_ptr. We must be careful to ensure the scoped_ptr never deletes it.
+ user_share_->directory.reset(dir_maker_->directory());
+}
+
+void TestUserShare::TearDown() {
+ // Ensure the scoped_ptr doesn't delete the memory we don't own.
+ ignore_result(user_share_->directory.release());
+
+ user_share_.reset();
+ dir_maker_->TearDown();
+}
+
+sync_api::UserShare* TestUserShare::user_share() {
+ return user_share_.get();
+}
+
+} // namespace browser_sync