blob: e912663690cfa33b8b54b0bd5e9d48fff5f9d981 [file] [log] [blame]
// Copyright 2016 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/PassRefPtr.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "wtf/RefCounted.h"
namespace WTF {
class RefCountedClass : public RefCounted<RefCountedClass> {};
TEST(PassRefPtrTest, MoveConstructor) {
PassRefPtr<RefCountedClass> oldPassRefPtr = adoptRef(new RefCountedClass());
RefCountedClass* rawPtr = oldPassRefPtr.get();
EXPECT_EQ(rawPtr->refCount(), 1);
PassRefPtr<RefCountedClass> newPassRefPtr(std::move(oldPassRefPtr));
EXPECT_EQ(oldPassRefPtr.get(), nullptr);
EXPECT_EQ(newPassRefPtr.get(), rawPtr);
EXPECT_EQ(rawPtr->refCount(), 1);
}
} // namespace WTF