Home | History | Annotate | Download | only in test
      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 "base/test/opaque_ref_counted.h"
      6 
      7 #include "base/macros.h"
      8 #include "testing/gtest/include/gtest/gtest.h"
      9 
     10 namespace base {
     11 
     12 class OpaqueRefCounted : public RefCounted<OpaqueRefCounted> {
     13  public:
     14   OpaqueRefCounted() {}
     15 
     16   int Return42() { return 42; }
     17 
     18  private:
     19   virtual ~OpaqueRefCounted() {}
     20 
     21   friend RefCounted<OpaqueRefCounted>;
     22   DISALLOW_COPY_AND_ASSIGN(OpaqueRefCounted);
     23 };
     24 
     25 scoped_refptr<OpaqueRefCounted> MakeOpaqueRefCounted() {
     26   return new OpaqueRefCounted();
     27 }
     28 
     29 void TestOpaqueRefCounted(scoped_refptr<OpaqueRefCounted> p) {
     30   EXPECT_EQ(42, p->Return42());
     31 }
     32 
     33 }  // namespace base
     34 
     35 template class scoped_refptr<base::OpaqueRefCounted>;
     36