tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

TestUtilityProcessSandboxing.cpp (2495B)


      1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this
      4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
      5 
      6 #include "gtest/gtest.h"
      7 
      8 #include "mozilla/gtest/MozHelpers.h"
      9 #include "mozilla/ipc/UtilityProcessSandboxing.h"
     10 
     11 using namespace mozilla;
     12 using namespace mozilla::ipc;
     13 
     14 TEST(UtilityProcessSandboxing, ParseNoEnvVar)
     15 {
     16  EXPECT_TRUE(IsUtilitySandboxEnabled("", SandboxingKind::COUNT));
     17 }
     18 
     19 TEST(UtilityProcessSandboxing, ParseEnvVar_DisableAll)
     20 {
     21  EXPECT_FALSE(IsUtilitySandboxEnabled("1", SandboxingKind::COUNT));
     22 }
     23 
     24 TEST(UtilityProcessSandboxing, ParseEnvVar_DontDisableAll)
     25 {
     26  EXPECT_TRUE(IsUtilitySandboxEnabled("0", SandboxingKind::COUNT));
     27 }
     28 
     29 TEST(UtilityProcessSandboxing, ParseEnvVar_DisableGenericOnly)
     30 {
     31  EXPECT_FALSE(
     32      IsUtilitySandboxEnabled("utility:0", SandboxingKind::GENERIC_UTILITY));
     33  EXPECT_TRUE(IsUtilitySandboxEnabled("utility:0", SandboxingKind::COUNT));
     34 }
     35 
     36 #if defined(XP_DARWIN)
     37 TEST(UtilityProcessSandboxing, ParseEnvVar_DisableAppleAudioOnly)
     38 {
     39 #  if defined(MOZ_APPLEMEDIA)
     40  EXPECT_FALSE(IsUtilitySandboxEnabled(
     41      "utility:1", SandboxingKind::UTILITY_AUDIO_DECODING_APPLE_MEDIA));
     42 #  endif
     43  EXPECT_TRUE(
     44      IsUtilitySandboxEnabled("utility:1", SandboxingKind::GENERIC_UTILITY));
     45 }
     46 #endif  // defined(XP_DARWIN)
     47 
     48 #if defined(XP_WIN)
     49 TEST(UtilityProcessSandboxing, ParseEnvVar_DisableWMFOnly)
     50 {
     51  EXPECT_FALSE(IsUtilitySandboxEnabled(
     52      "utility:1", SandboxingKind::UTILITY_AUDIO_DECODING_WMF));
     53  EXPECT_TRUE(
     54      IsUtilitySandboxEnabled("utility:1", SandboxingKind::GENERIC_UTILITY));
     55 }
     56 #endif  // defined(XP_WIN)
     57 
     58 TEST(UtilityProcessSandboxing, ParseEnvVar_DisableGenericOnly_Multiples)
     59 {
     60  EXPECT_FALSE(IsUtilitySandboxEnabled("utility:1,utility:0,utility:2",
     61                                       SandboxingKind::GENERIC_UTILITY));
     62 #if defined(MOZ_APPLEMEDIA)
     63  EXPECT_FALSE(IsUtilitySandboxEnabled(
     64      "utility:1,utility:0,utility:2",
     65      SandboxingKind::UTILITY_AUDIO_DECODING_APPLE_MEDIA));
     66 #endif  // MOZ_APPLEMEDIA
     67 #if defined(XP_WIN)
     68  EXPECT_FALSE(
     69      IsUtilitySandboxEnabled("utility:1,utility:0,utility:2",
     70                              SandboxingKind::UTILITY_AUDIO_DECODING_WMF));
     71 #endif  // XP_WIN
     72  EXPECT_TRUE(IsUtilitySandboxEnabled("utility:8,utility:0,utility:6",
     73                                      SandboxingKind::COUNT));
     74 }