[msbuild/tests] Add ValidateAppBundleTaskTests
Includes regression test for bug #38673: https://bugzilla.xamarin.com/show_bug.cgi?id=38673 Description: "Validate that CFBundleVersion and CFBundleShortVersionString match across main app and all extensions".
This commit is contained in:
Родитель
0dc4cd2413
Коммит
af283be95d
|
@ -8,6 +8,8 @@ namespace Xamarin.iOS.Tasks
|
|||
public string BundlePath;
|
||||
public string Platform;
|
||||
|
||||
public ExtensionTestBase () { }
|
||||
|
||||
public ExtensionTestBase (string platform) {
|
||||
Platform = platform;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,76 @@
|
|||
using System.IO;
|
||||
using NUnit.Framework;
|
||||
using Xamarin.MacDev;
|
||||
|
||||
namespace Xamarin.iOS.Tasks
|
||||
{
|
||||
[TestFixture]
|
||||
public class ValidateAppBundleTaskTests : ExtensionTestBase
|
||||
{
|
||||
ValidateAppBundleTask task;
|
||||
|
||||
string extensionBundlePath;
|
||||
|
||||
string mainAppPlistPath;
|
||||
string extensionPlistPath;
|
||||
|
||||
PDictionary sourcePlist;
|
||||
|
||||
public override void Setup ()
|
||||
{
|
||||
base.Setup ();
|
||||
|
||||
var extensionName = "MyActionExtension";
|
||||
BuildExtension ("MyTabbedApplication", extensionName, "iPhoneSimulator");
|
||||
|
||||
task = CreateTask<ValidateAppBundleTask> ();
|
||||
task.AppBundlePath = AppBundlePath;
|
||||
task.SdkIsSimulator = true;
|
||||
task.TargetFrameworkIdentifier = "Xamarin.iOS";
|
||||
|
||||
extensionBundlePath = Path.Combine (AppBundlePath, "PlugIns", extensionName + ".appex");
|
||||
|
||||
mainAppPlistPath = Path.Combine (AppBundlePath, "Info.plist");
|
||||
extensionPlistPath = Path.Combine (extensionBundlePath, "Info.plist");
|
||||
|
||||
sourcePlist = PDictionary.FromFile (mainAppPlistPath);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MissingPlist_MainApp ()
|
||||
{
|
||||
File.Delete (mainAppPlistPath);
|
||||
Assert.IsFalse (task.Execute (), "#1");
|
||||
Assert.IsTrue (Engine.Logger.ErrorEvents.Count > 0, "#2");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void MissingPlist_Extension ()
|
||||
{
|
||||
File.Delete (extensionPlistPath);
|
||||
Assert.IsFalse (task.Execute (), "#1");
|
||||
Assert.IsTrue (Engine.Logger.ErrorEvents.Count > 0, "#2");
|
||||
}
|
||||
|
||||
[Test (Description = "Xambug #38673")]
|
||||
public void NotMatching_VersionBuildNumbers ()
|
||||
{
|
||||
var warningCount = Engine.Logger.WarningsEvents.Count;
|
||||
|
||||
// Warning: The App Extension has a CFBundleShortVersionString
|
||||
// that does not match the main app bundle's CFBundleShortVersionString.
|
||||
sourcePlist.SetCFBundleShortVersionString ("1");
|
||||
warningCount++;
|
||||
|
||||
// Warning: The App Extension has a CFBundleVersion
|
||||
// that does not match the main app bundle's CFBundleVersion.
|
||||
sourcePlist.SetCFBundleVersion ("1");
|
||||
warningCount++;
|
||||
|
||||
sourcePlist.Save (mainAppPlistPath);
|
||||
Assert.True (task.Execute (), "#1"); // No build error.
|
||||
Assert.AreEqual (warningCount, Engine.Logger.WarningsEvents.Count, "#2");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -99,6 +99,7 @@
|
|||
<Compile Include="TaskTests\GeneratePlistTaskTests\GeneratePlistTaskTests_watchOS_WatchKitApp.cs" />
|
||||
<Compile Include="TaskTests\GeneratePlistTaskTests\GeneratePlistTaskTests_tvOS.cs" />
|
||||
<Compile Include="TaskTests\SymbolStripTaskTests.cs" />
|
||||
<Compile Include="TaskTests\ValidateAppBundleTaskTests.cs" />
|
||||
</ItemGroup>
|
||||
<ItemGroup />
|
||||
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
|
||||
|
|
Загрузка…
Ссылка в новой задаче