Arquivos
chromium/base/ref_counted_unittest.cc
tommi@chromium.org 6b86b32550 Changing access to scoped_refptr member variables from private to protected.
This is required to be able to extend the functionality of the class where existing public functionality does not offer sufficient access.

Review URL: http://codereview.chromium.org/17464

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@7851 0039d316-1c4b-4281-b951-d872f2087c98
2009-01-10 00:53:13 +00:00

34 linhas
851 B
C++

// Copyright (c) 2006-2008 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 "testing/gtest/include/gtest/gtest.h"
#include "base/ref_counted.h"
namespace {
class SelfAssign : public base::RefCounted<SelfAssign> {
};
class CheckDerivedMemberAccess : public scoped_refptr<SelfAssign> {
public:
CheckDerivedMemberAccess() {
// This shouldn't compile if we don't have access to the member variable.
SelfAssign** pptr = &ptr_;
EXPECT_EQ(*pptr, ptr_);
}
};
} // end namespace
TEST(RefCountedUnitTest, TestSelfAssignment) {
SelfAssign* p = new SelfAssign;
scoped_refptr<SelfAssign> var = p;
var = var;
EXPECT_EQ(var.get(), p);
}
TEST(RefCountedUnitTest, ScopedRefPtrMemberAccess) {
CheckDerivedMemberAccess check;
}