core/src/windows_sandbox_tests.rs
117 lines
use super::*;use codex_config::types::WindowsToml;use codex_features::Features;use codex_features::FeaturesToml;use pretty_assertions::assert_eq;use std::collections::BTreeMap;#[test]fn elevated_flag_works_by_itself() { let mut features = Features::with_defaults(); features.enable(Feature::WindowsSandboxElevated); assert_eq!( WindowsSandboxLevel::from_features(&features), WindowsSandboxLevel::Elevated );}#[test]fn restricted_token_flag_works_by_itself() { let mut features = Features::with_defaults(); features.enable(Feature::WindowsSandbox); assert_eq!( WindowsSandboxLevel::from_features(&features), WindowsSandboxLevel::RestrictedToken );}#[test]fn no_flags_means_no_sandbox() { let features = Features::with_defaults(); assert_eq!( WindowsSandboxLevel::from_features(&features), WindowsSandboxLevel::Disabled );}#[test]fn elevated_wins_when_both_flags_are_enabled() { let mut features = Features::with_defaults(); features.enable(Feature::WindowsSandbox); features.enable(Feature::WindowsSandboxElevated); assert_eq!( WindowsSandboxLevel::from_features(&features), WindowsSandboxLevel::Elevated );}#[test]fn legacy_mode_prefers_elevated() { let mut entries = BTreeMap::new(); entries.insert( "experimental_windows_sandbox".to_string(), /*value*/ true, ); entries.insert("elevated_windows_sandbox".to_string(), /*value*/ true); assert_eq!( legacy_windows_sandbox_mode_from_entries(&entries), Some(WindowsSandboxModeToml::Elevated) );}#[test]fn legacy_mode_supports_alias_key() { let mut entries = BTreeMap::new(); entries.insert( "enable_experimental_windows_sandbox".to_string(), /*value*/ true, ); assert_eq!( legacy_windows_sandbox_mode_from_entries(&entries), Some(WindowsSandboxModeToml::Unelevated) );}#[test]fn resolve_windows_sandbox_mode_falls_back_to_legacy_keys() { let mut entries = BTreeMap::new(); entries.insert( "experimental_windows_sandbox".to_string(), /*value*/ true, ); let cfg = ConfigToml { features: Some(FeaturesToml::from(entries)), ..Default::default() }; assert_eq!( resolve_windows_sandbox_mode(&cfg), Some(WindowsSandboxModeToml::Unelevated) );}#[test]fn resolve_windows_sandbox_private_desktop_defaults_to_true() { assert!(resolve_windows_sandbox_private_desktop( &ConfigToml::default() ));}#[test]fn resolve_windows_sandbox_private_desktop_respects_explicit_cfg_value() { let cfg = ConfigToml { windows: Some(WindowsToml { sandbox_private_desktop: Some(false), ..Default::default() }), ..Default::default() }; assert!(!resolve_windows_sandbox_private_desktop(&cfg));}