Skip to content

Commit 2d3ad72

Browse files
authored
Reenable a few OperatingSystem tests on MacCatalyst (dotnet#58428)
dotnet#56084 was fixed.
1 parent 6f68bbd commit 2d3ad72

File tree

1 file changed

+33
-8
lines changed

1 file changed

+33
-8
lines changed

src/libraries/System.Runtime.Extensions/tests/System/OperatingSystemTests.cs

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)