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)14TEST(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)23TEST(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