scoped_winrt_initializer_unittest.cc 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // Copyright 2017 The Chromium Authors. All rights reserved.
  2. // Use of this source code is governed by a BSD-style license that can be
  3. // found in the LICENSE file.
  4. #include "base/win/scoped_winrt_initializer.h"
  5. #include "base/test/gtest_util.h"
  6. #include "base/win/com_init_util.h"
  7. #include "base/win/scoped_com_initializer.h"
  8. #include "base/win/windows_version.h"
  9. #include "testing/gtest/include/gtest/gtest.h"
  10. namespace base {
  11. namespace win {
  12. TEST(ScopedWinrtInitializer, BasicFunctionality) {
  13. if (GetVersion() < Version::WIN8)
  14. return;
  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. if (GetVersion() < Version::WIN8)
  24. return;
  25. ScopedCOMInitializer com_initializer;
  26. // ScopedCOMInitializer initialized an STA and the following should be a
  27. // failed request for an MTA.
  28. EXPECT_DCHECK_DEATH({ ScopedWinrtInitializer scoped_winrt_initializer; });
  29. }
  30. TEST(ScopedWinrtInitializer, VersionCheck) {
  31. if (GetVersion() >= Version::WIN8)
  32. return;
  33. // ScopedWinrtInitializer is unsupported on versions prior to Windows 8.
  34. EXPECT_DCHECK_DEATH({ ScopedWinrtInitializer scoped_winrt_initializer; });
  35. }
  36. } // namespace win
  37. } // namespace base