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 }