// 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 "wtf/RefPtr.h" #include "testing/gtest/include/gtest/gtest.h" #include "wtf/RefCounted.h" #include "wtf/text/StringImpl.h" namespace WTF { TEST(RefPtrTest, Basic) { RefPtr string; EXPECT_TRUE(!string); string = StringImpl::create("test"); EXPECT_TRUE(!!string); string.clear(); EXPECT_TRUE(!string); } TEST(RefPtrTest, MoveAssignmentOperator) { RefPtr a = StringImpl::create("a"); RefPtr b = StringImpl::create("b"); b = std::move(a); EXPECT_TRUE(!!b); EXPECT_TRUE(!a); } class RefCountedClass : public RefCounted { }; TEST(RefPtrTest, ConstObject) { // This test is only to ensure we force the compilation of a const RefCounted // object to ensure the generated code compiles. RefPtr ptrToConst = adoptRef(new RefCountedClass()); } } // namespace WTF