xref: /aosp_15_r20/external/cronet/base/win/scoped_winrt_initializer_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_winrt_initializer.h"
6 
7 #include "base/test/gtest_util.h"
8 #include "base/win/com_init_util.h"
9 #include "base/win/scoped_com_initializer.h"
10 #include "testing/gtest/include/gtest/gtest.h"
11 
12 namespace base::win {
13 
TEST(ScopedWinrtInitializer,BasicFunctionality)14 TEST(ScopedWinrtInitializer, BasicFunctionality) {
15   AssertComApartmentType(ComApartmentType::NONE);
16   {
17     ScopedWinrtInitializer scoped_winrt_initializer;
18     AssertComApartmentType(ComApartmentType::MTA);
19   }
20   AssertComApartmentType(ComApartmentType::NONE);
21 }
22 
TEST(ScopedWinrtInitializer,ApartmentChangeCheck)23 TEST(ScopedWinrtInitializer, ApartmentChangeCheck) {
24   ScopedCOMInitializer com_initializer;
25   // ScopedCOMInitializer initialized an STA and the following should be a
26   // failed request for an MTA.
27   EXPECT_DCHECK_DEATH({ ScopedWinrtInitializer scoped_winrt_initializer; });
28 }
29 
30 }  // namespace base::win
31