xref: /aosp_15_r20/external/cronet/base/win/scoped_hstring_unittest.cc (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
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)24 TEST(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