1*6777b538SAndroid Build Coastguard Worker // Copyright 2017 The Chromium Authors 2*6777b538SAndroid Build Coastguard Worker // Use of this source code is governed by a BSD-style license that can be 3*6777b538SAndroid Build Coastguard Worker // found in the LICENSE file. 4*6777b538SAndroid Build Coastguard Worker 5*6777b538SAndroid Build Coastguard Worker #include "base/win/scoped_hstring.h" 6*6777b538SAndroid Build Coastguard Worker 7*6777b538SAndroid Build Coastguard Worker #include <winstring.h> 8*6777b538SAndroid Build Coastguard Worker 9*6777b538SAndroid Build Coastguard Worker #include <string> 10*6777b538SAndroid Build Coastguard Worker #include <string_view> 11*6777b538SAndroid Build Coastguard Worker 12*6777b538SAndroid Build Coastguard Worker #include "base/strings/utf_string_conversions.h" 13*6777b538SAndroid Build Coastguard Worker #include "testing/gtest/include/gtest/gtest.h" 14*6777b538SAndroid Build Coastguard Worker 15*6777b538SAndroid Build Coastguard Worker namespace base::win { 16*6777b538SAndroid Build Coastguard Worker 17*6777b538SAndroid Build Coastguard Worker namespace { 18*6777b538SAndroid Build Coastguard Worker 19*6777b538SAndroid Build Coastguard Worker constexpr wchar_t kTestString1[] = L"123"; 20*6777b538SAndroid Build Coastguard Worker constexpr wchar_t kTestString2[] = L"456789"; 21*6777b538SAndroid Build Coastguard Worker 22*6777b538SAndroid Build Coastguard Worker } // namespace 23*6777b538SAndroid Build Coastguard Worker TEST(ScopedHStringTest,Init)24*6777b538SAndroid Build Coastguard WorkerTEST(ScopedHStringTest, Init) { 25*6777b538SAndroid Build Coastguard Worker ScopedHString hstring = ScopedHString::Create(kTestString1); 26*6777b538SAndroid Build Coastguard Worker std::string buffer = hstring.GetAsUTF8(); 27*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(kTestString1, UTF8ToWide(buffer)); 28*6777b538SAndroid Build Coastguard Worker std::wstring_view contents = hstring.Get(); 29*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(kTestString1, contents); 30*6777b538SAndroid Build Coastguard Worker 31*6777b538SAndroid Build Coastguard Worker hstring.reset(); 32*6777b538SAndroid Build Coastguard Worker EXPECT_TRUE(hstring == nullptr); 33*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(nullptr, hstring.get()); 34*6777b538SAndroid Build Coastguard Worker 35*6777b538SAndroid Build Coastguard Worker hstring = ScopedHString::Create(kTestString2); 36*6777b538SAndroid Build Coastguard Worker 37*6777b538SAndroid Build Coastguard Worker buffer = hstring.GetAsUTF8(); 38*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(kTestString2, UTF8ToWide(buffer)); 39*6777b538SAndroid Build Coastguard Worker contents = hstring.Get(); 40*6777b538SAndroid Build Coastguard Worker EXPECT_EQ(kTestString2, contents); 41*6777b538SAndroid Build Coastguard Worker } 42*6777b538SAndroid Build Coastguard Worker 43*6777b538SAndroid Build Coastguard Worker } // namespace base::win 44