@@ -102,11 +102,9 @@ public static void IsOSPlatformVersionAtLeast_InvalidArgs_Throws()
102102 public static void TestIsOSVersionAtLeast_Android_21 ( ) => Assert . True ( OperatingSystem . IsAndroidVersionAtLeast ( 21 ) ) ; // 21 is our min supported version
103103
104104 [ Fact , PlatformSpecific ( TestPlatforms . iOS ) ]
105- [ ActiveIssue ( "https://github.com/dotnet/runtime/issues/56084" , TestPlatforms . MacCatalyst ) ]
106105 public static void TestIsOSPlatform_IOS ( ) => TestIsOSPlatform ( "iOS" , OperatingSystem . IsIOS ) ;
107106
108107 [ Fact , PlatformSpecific ( TestPlatforms . iOS ) ]
109- [ ActiveIssue ( "https://github.com/dotnet/runtime/issues/56084" , TestPlatforms . MacCatalyst ) ]
110108 public static void TestIsOSVersionAtLeast_IOS ( ) => TestIsOSVersionAtLeast ( "iOS" ) ;
111109
112110 [ Fact , PlatformSpecific ( TestPlatforms . OSX ) ]
@@ -129,11 +127,9 @@ public static void OSX_Is_Treated_as_macOS()
129127 }
130128
131129 [ Fact , PlatformSpecific ( TestPlatforms . MacCatalyst ) ]
132- [ ActiveIssue ( "https://github.com/dotnet/runtime/issues/56084" , TestPlatforms . MacCatalyst ) ]
133130 public static void TestIsOSPlatform_MacCatalyst ( ) => TestIsOSPlatform ( "MacCatalyst" , OperatingSystem . IsMacCatalyst ) ;
134131
135132 [ Fact , PlatformSpecific ( TestPlatforms . MacCatalyst ) ]
136- [ ActiveIssue ( "https://github.com/dotnet/runtime/issues/56084" , TestPlatforms . MacCatalyst ) ]
137133 public static void TestIsOSVersionAtLeast_MacCatalyst ( ) => TestIsOSVersionAtLeast ( "MacCatalyst" ) ;
138134
139135 [ Fact , PlatformSpecific ( TestPlatforms . MacCatalyst ) ]
@@ -147,7 +143,6 @@ public static void MacCatalyst_Is_Also_iOS()
147143 }
148144
149145 [ Fact , PlatformSpecific ( TestPlatforms . iOS ) ]
150- [ ActiveIssue ( "https://github.com/dotnet/runtime/issues/56084" , TestPlatforms . MacCatalyst ) ]
151146 public static void IOS_Is_Not_Also_MacCatalyst ( )
152147 {
153148 Assert . False ( OperatingSystem . IsOSPlatform ( "MacCatalyst" ) ) ;
@@ -172,6 +167,12 @@ private static void TestIsOSPlatform(string currentOSName, Func<bool> currentOSC
172167 {
173168 bool expected = currentOSName . Equals ( platformName , StringComparison . OrdinalIgnoreCase ) ;
174169
170+ // MacCatalyst is a special case since it also returns true for iOS
171+ if ( currentOSName == "MacCatalyst" && platformName == "iOS" )
172+ {
173+ expected = true ;
174+ }
175+
175176 Assert . Equal ( expected , OperatingSystem . IsOSPlatform ( platformName ) ) ;
176177 Assert . Equal ( expected , OperatingSystem . IsOSPlatform ( platformName . ToUpper ( ) ) ) ;
177178 Assert . Equal ( expected , OperatingSystem . IsOSPlatform ( platformName . ToLower ( ) ) ) ;
@@ -186,14 +187,32 @@ private static void TestIsOSPlatform(string currentOSName, Func<bool> currentOSC
186187 OperatingSystem . IsFreeBSD ( ) ,
187188 OperatingSystem . IsAndroid ( ) ,
188189 OperatingSystem . IsIOS ( ) ,
189- OperatingSystem . IsMacOS ( ) ,
190190 OperatingSystem . IsMacCatalyst ( ) ,
191+ OperatingSystem . IsMacOS ( ) ,
191192 OperatingSystem . IsTvOS ( ) ,
192193 OperatingSystem . IsWatchOS ( ) ,
193194 OperatingSystem . IsWindows ( )
194195 } ;
195196
196- Assert . Single ( allResults , true ) ;
197+ // MacCatalyst is a special case since it also returns true for iOS
198+ if ( currentOSName == "MacCatalyst" )
199+ {
200+ Assert . Equal ( 10 , allResults . Length ) ;
201+ Assert . False ( allResults [ 0 ] ) ; // IsBrowser()
202+ Assert . False ( allResults [ 1 ] ) ; // IsLinux()
203+ Assert . False ( allResults [ 2 ] ) ; // IsFreeBSD()
204+ Assert . False ( allResults [ 3 ] ) ; // IsAndroid()
205+ Assert . True ( allResults [ 4 ] ) ; // IsIOS()
206+ Assert . True ( allResults [ 5 ] ) ; // IsMacCatalyst()
207+ Assert . False ( allResults [ 6 ] ) ; // IsMacOS()
208+ Assert . False ( allResults [ 7 ] ) ; // IsTvOS()
209+ Assert . False ( allResults [ 8 ] ) ; // IsWatchOS()
210+ Assert . False ( allResults [ 9 ] ) ; // IsWindows()
211+ }
212+ else
213+ {
214+ Assert . Single ( allResults , true ) ;
215+ }
197216 }
198217
199218 private static void TestIsOSVersionAtLeast ( string currentOSName )
@@ -202,13 +221,19 @@ private static void TestIsOSVersionAtLeast(string currentOSName)
202221 {
203222 bool isCurrentOS = currentOSName . Equals ( platformName , StringComparison . OrdinalIgnoreCase ) ;
204223
224+ // MacCatalyst is a special case since it also returns true for iOS
225+ if ( currentOSName == "MacCatalyst" && platformName == "iOS" )
226+ {
227+ isCurrentOS = true ;
228+ }
229+
205230 AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName , major , minor , build , revision ) ) ;
206231 AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName . ToLower ( ) , major , minor , build , revision ) ) ;
207232 AssertVersionChecks ( isCurrentOS , ( major , minor , build , revision ) => OperatingSystem . IsOSPlatformVersionAtLeast ( platformName . ToUpper ( ) , major , minor , build , revision ) ) ;
208233 }
209234
210235 AssertVersionChecks ( currentOSName . Equals ( "Android" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsAndroidVersionAtLeast ) ;
211- AssertVersionChecks ( currentOSName . Equals ( "iOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsIOSVersionAtLeast ) ;
236+ AssertVersionChecks ( currentOSName == "MacCatalyst" || currentOSName . Equals ( "iOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsIOSVersionAtLeast ) ;
212237 AssertVersionChecks ( currentOSName . Equals ( "macOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsMacOSVersionAtLeast ) ;
213238 AssertVersionChecks ( currentOSName . Equals ( "MacCatalyst" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsMacCatalystVersionAtLeast ) ;
214239 AssertVersionChecks ( currentOSName . Equals ( "tvOS" , StringComparison . OrdinalIgnoreCase ) , OperatingSystem . IsTvOSVersionAtLeast ) ;
0 commit comments