blob: ed6c36f1a2decdde05a03b1bf705ea6349dc28b5 [file] [log] [blame]
// Copyright 2014 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 "base/test/opaque_ref_counted.h"
#include "base/macros.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace base {
class OpaqueRefCounted : public RefCounted<OpaqueRefCounted> {
public:
OpaqueRefCounted() {}
int Return42() { return 42; }
private:
virtual ~OpaqueRefCounted() {}
friend RefCounted<OpaqueRefCounted>;
DISALLOW_COPY_AND_ASSIGN(OpaqueRefCounted);
};
scoped_refptr<OpaqueRefCounted> MakeOpaqueRefCounted() {
return new OpaqueRefCounted();
}
void TestOpaqueRefCounted(scoped_refptr<OpaqueRefCounted> p) {
EXPECT_EQ(42, p->Return42());
}
} // namespace base
template class scoped_refptr<base::OpaqueRefCounted>;