1 // Copyright 2017 The Chromium Authors 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/win/scoped_hstring.h" 6 7 #include <winstring.h> 8 9 #include <string> 10 #include <string_view> 11 12 #include "base/strings/utf_string_conversions.h" 13 #include "testing/gtest/include/gtest/gtest.h" 14 15 namespace base::win { 16 17 namespace { 18 19 constexpr wchar_t kTestString1[] = L"123"; 20 constexpr wchar_t kTestString2[] = L"456789"; 21 22 } // namespace 23 TEST(ScopedHStringTest,Init)24TEST(ScopedHStringTest, Init) { 25 ScopedHString hstring = ScopedHString::Create(kTestString1); 26 std::string buffer = hstring.GetAsUTF8(); 27 EXPECT_EQ(kTestString1, UTF8ToWide(buffer)); 28 std::wstring_view contents = hstring.Get(); 29 EXPECT_EQ(kTestString1, contents); 30 31 hstring.reset(); 32 EXPECT_TRUE(hstring == nullptr); 33 EXPECT_EQ(nullptr, hstring.get()); 34 35 hstring = ScopedHString::Create(kTestString2); 36 37 buffer = hstring.GetAsUTF8(); 38 EXPECT_EQ(kTestString2, UTF8ToWide(buffer)); 39 contents = hstring.Get(); 40 EXPECT_EQ(kTestString2, contents); 41 } 42 43 } // namespace base::win 44