Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,9 @@ public void LogicalNameOutsideAppBundle ()
item.SetMetadata ("LocalDefiningProjectFullPath", Path.Combine (tmpdir, "A", "SDK.csproj"));
item.SetMetadata ("LocalMSBuildProjectFullPath", Path.Combine (projDir, "Project.csproj"));
task.BundleResources = [item];
var rv = task.Execute ();

Assert.That (Engine.Logger.ErrorEvents.Count, Is.EqualTo (0), "Errors");

ExecuteTask (task);
Assert.That (Engine.Logger.WarningsEvents.Count, Is.EqualTo (1), "Warnings");
Assert.That (Engine.Logger.WarningsEvents [0].Message, Is.EqualTo ("The path '../B/image.png' would result in a file outside of the app bundle and cannot be used."), "Warning Message");

Assert.That (rv, Is.True, "Execute");
} finally {
Environment.CurrentDirectory = currentDirectory;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,7 @@ public void UnknownImageFormat ()
var task = CreateTask<CollectITunesArtwork> ();
task.ITunesArtwork = new TaskItem [] { new TaskItem (Assembly.GetExecutingAssembly ().Location) };

Assert.IsFalse (task.Execute (), "Execute failure");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task, 1);
Assert.That (Engine.Logger.ErrorEvents [0].Message, Does.Match ("Error loading '.*/Xamarin.MacDev.Tasks.Tests.dll': Unknown image format."), "ErrorMessage");
}

Expand All @@ -27,8 +26,7 @@ public void InexistentFile ()
var task = CreateTask<CollectITunesArtwork> ();
task.ITunesArtwork = new TaskItem [] { new TaskItem ("this-file-does-not-exist.tiff") };

Assert.IsFalse (task.Execute (), "Execute failure");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task, 1);
Assert.That (Engine.Logger.ErrorEvents [0].Message, Does.Match ("'.*/this-file-does-not-exist.tiff' not found."), "ErrorMessage");
}

Expand All @@ -40,8 +38,7 @@ public void InvalidSize (string extension)
var task = CreateTask<CollectITunesArtwork> ();
task.ITunesArtwork = new TaskItem [] { new TaskItem (Path.Combine (AppPath, "Resources", "iTunesArtwork-invalid-size." + extension)) };

Assert.IsFalse (task.Execute (), "Execute failure");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task, 1);
Assert.That (Engine.Logger.ErrorEvents [0].Message, Does.Match ($"Invalid iTunesArtwork dimensions [(]124x124[)] for '.*/iTunesArtwork-invalid-size.{extension}'."), "ErrorMessage");
}

Expand All @@ -56,8 +53,7 @@ public void MultipleSameSize (string size, string dimension)
new TaskItem (Path.Combine (AppPath, "Resources", $"iTunesArtwork{size}.png")),
};

Assert.IsFalse (task.Execute (), "Execute failure");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task, 1);
Assert.That (Engine.Logger.ErrorEvents [0].Message, Does.Match ($"Multiple iTunesArtwork files with the same dimensions detected [(]{dimension}[)] for '.*/Resources/iTunesArtwork{size}.png'."), "ErrorMessage");
}

Expand All @@ -72,8 +68,7 @@ public void Valid (string extension)
new TaskItem (Path.Combine (AppPath, "Resources", $"iTunesArtwork@2x.{extension}")),
};

Assert.IsTrue (task.Execute (), "Execute");
Assert.AreEqual (0, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task);
Assert.AreEqual (2, task.ITunesArtworkWithLogicalNames.Length, "ITunesArtworkWithLogicalNames.Count");
for (var i = 0; i < task.ITunesArtworkWithLogicalNames.Length; i++) {
Assert.AreEqual (Path.GetFileNameWithoutExtension (task.ITunesArtwork [i].GetMetadata ("FullPath")), task.ITunesArtworkWithLogicalNames [i].GetMetadata ("LogicalName"), $"LogicalName #{i}");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ public void Compute (ApplePlatform platform)
task.GenerateDSymItems = generateDSymItems.ToArray ();
task.NativeStripItems = nativeStripItems.ToArray ();
task.TargetFrameworkMoniker = TargetFramework.GetTargetFramework (platform).ToString ();
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
Assert.AreEqual (0, Engine.Logger.WarningsEvents.Count, "Warning Count");

VerifyCodesigningResults (infos, task.OutputCodesignItems, platform);
Expand Down Expand Up @@ -412,7 +412,7 @@ public void Symlinks (ApplePlatform platform)
task.CodesignBundle = codesignBundle.ToArray ();
task.CodesignStampPath = "codesign-stamp-path/";
task.TargetFrameworkMoniker = TargetFramework.GetTargetFramework (platform).ToString ();
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
Assert.AreEqual (0, Engine.Logger.WarningsEvents.Count, "Warning Count");

VerifyCodesigningResults (infos, task.OutputCodesignItems, platform);
Expand Down Expand Up @@ -493,7 +493,7 @@ public void SkipDirectories (ApplePlatform platform)
task.CodesignBundle = codesignBundle.ToArray ();
task.CodesignStampPath = "codesign-stamp-path/";
task.TargetFrameworkMoniker = TargetFramework.GetTargetFramework (platform).ToString ();
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
Assert.AreEqual (0, Engine.Logger.WarningsEvents.Count, "Warning Count");

VerifyCodesigningResults (infos, task.OutputCodesignItems, platform);
Expand Down Expand Up @@ -556,7 +556,7 @@ public void Duplicated (ApplePlatform platform)
task.CodesignItems = codesignItems.ToArray ();
task.CodesignStampPath = "codesign-stamp-path/";
task.TargetFrameworkMoniker = TargetFramework.GetTargetFramework (platform).ToString ();
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
Assert.AreEqual (0, Engine.Logger.WarningsEvents.Count, "Warning Count");

VerifyCodesigningResults (infos, task.OutputCodesignItems, platform);
Expand Down Expand Up @@ -630,7 +630,7 @@ public void DuplicatedWithDifferentMetadata (ApplePlatform platform)
task.CodesignItems = codesignItems.ToArray ();
task.CodesignStampPath = "codesign-stamp-path/";
task.TargetFrameworkMoniker = TargetFramework.GetTargetFramework (platform).ToString ();
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
Assert.AreEqual (3, Engine.Logger.WarningsEvents.Count, "Warning Count");
Assert.AreEqual ("Code signing has been requested multiple times for 'Bundle.app/Contents/MonoBundle/createdump', with different metadata. The metadata 'OnlyIn1=true' has been set for one item, but not the other.", Engine.Logger.WarningsEvents [0].Message, "Message #0");
Assert.AreEqual ("Code signing has been requested multiple times for 'Bundle.app/Contents/MonoBundle/createdump', with different metadata. The metadata 'InOneAndTwoWithDifferentValues' has different values for each item (once it's '1', another time it's '2').", Engine.Logger.WarningsEvents [1].Message, "Message #1");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CreateBindingResourcePackage ExecuteTask (string compress, bool symlinks, out st
var currentDir = Environment.CurrentDirectory;
try {
Environment.CurrentDirectory = tmpdir;
Assert.IsTrue (task.Execute (), "Execute");
ExecuteTask (task);
} finally {
Environment.CurrentDirectory = currentDir;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ public void InvalidXamarinSdkRoot ()
var task = CreateTask<DetectSdkLocations> ();
task.XamarinSdkRoot = "XYZ";
task.TargetFrameworkMoniker = TargetFramework.DotNet_iOS_String;
task.Execute ();
ExecuteTask (task, 1);

Assert.AreEqual ("XYZ", task.XamarinSdkRoot, "#1");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@ public class GetBundleNameTaskTests : TestBase {
public void GetBundleName_MissingName ()
{
var task = CreateTask<GenerateBundleName> ();
Assert.IsFalse (task.Execute (), "#1");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "#2");
ExecuteTask (task, 1);
}

[Test]
Expand All @@ -21,9 +20,8 @@ public void GetBundleName ()
var task = CreateTask<GenerateBundleName> ();
task.ProjectName = "!@£///Hello_World%£";

Assert.IsTrue (task.Execute (), "#1");
ExecuteTask (task);
Assert.AreEqual ("Hello_World", task.BundleName, "#2");
Assert.AreEqual (0, Engine.Logger.ErrorEvents.Count, "#3");
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ void TestExecuteTask (string property, string expected)
task.Property = property;

if (expected is null) {
Assert.IsFalse (task.Execute (), "Task was expected to fail.");
ExecuteTask (task, 1);
return;
}

Assert.IsTrue (task.Execute (), "Task was expected to execute successfully.");
ExecuteTask (task);

Assert.AreEqual (expected, task.Value, "Task produced the incorrect plist output.");
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,7 @@ public void AllSupportedTranslations (string culture, string errorMessage)
var task = CreateTask<CollectITunesArtwork> ();
task.ITunesArtwork = new TaskItem [] { new TaskItem (Assembly.GetExecutingAssembly ().Location) };

Assert.IsFalse (task.Execute (), "Execute failure");
Assert.AreEqual (1, Engine.Logger.ErrorEvents.Count, "ErrorCount");
ExecuteTask (task, 1);
bool isTranslated = Engine.Logger.ErrorEvents [0].Message.Contains (errorMessage);
Assert.IsTrue (isTranslated, $"Should contain \"{errorMessage}\", but instead has value: \"{Engine.Logger.ErrorEvents [0].Message}\"");
} finally {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ public void TestPEAssembly ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundles);
Assert.IsTrue (task.Execute (), "Task execution");
ExecuteTask (task);

// The bundle should have all the files
Assert.AreEqual (complexFiles.Length, Directory.GetFileSystemEntries (outputBundle).Length, "Files in bundle");
Expand All @@ -151,8 +151,7 @@ public void TestDifferentOtherFiles ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundles);
Assert.IsFalse (task.Execute (), "Task execution");
Assert.AreEqual (3, Engine.Logger.ErrorEvents.Count, "Errors:\n\t" + string.Join ("\n\t", Engine.Logger.ErrorEvents.Select ((v) => v.Message).ToArray ()));
ExecuteTask (task, 3);
Assert.AreEqual ("Unable to merge the file 'Something.txt', it's different between the input app bundles.", Engine.Logger.ErrorEvents [0].Message, "Error message");
Assert.That (Engine.Logger.ErrorEvents [1].Message, Does.Match ("App bundle file #1: .*/MergeMe.app/Something.txt"), "Error message 2");
Assert.That (Engine.Logger.ErrorEvents [2].Message, Does.Match ("App bundle file #2: .*/MergeMe.app/Something.txt"), "Error message 3");
Expand All @@ -177,7 +176,7 @@ public void TestSymlinks ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundleA, bundleB);
Assert.IsTrue (task.Execute (), "Task execution");
ExecuteTask (task);
Assert.IsTrue (PathUtils.IsSymlink (Path.Combine (outputBundle, "B.txt")), "IsSymlink");
}

Expand Down Expand Up @@ -205,8 +204,7 @@ public void TestSymlinksWithDifferentTargets ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundleA, bundleB);
Assert.IsFalse (task.Execute (), "Task execution");
Assert.AreEqual (3, Engine.Logger.ErrorEvents.Count, "Errors:\n\t" + string.Join ("\n\t", Engine.Logger.ErrorEvents.Select ((v) => v.Message).ToArray ()));
ExecuteTask (task, 3);
Assert.AreEqual ("Can't merge the symlink 'B.txt', it has different targets.", Engine.Logger.ErrorEvents [0].Message, "Error message");
Assert.That (Engine.Logger.ErrorEvents [1].Message, Does.Match ("App bundle file #1: .*/MergeMe.app/B.txt"), "Error message 2");
Assert.That (Engine.Logger.ErrorEvents [2].Message, Does.Match ("App bundle file #2: .*/MergeMe.app/B.txt"), "Error message 3");
Expand Down Expand Up @@ -239,7 +237,7 @@ public void TestDirectories ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundleA, bundleB);
Assert.IsTrue (task.Execute (), "Task execution");
ExecuteTask (task);
Assert.That (Path.Combine (outputBundle, onlyA), Does.Exist, "onlyA");
Assert.That (Path.Combine (outputBundle, onlyB), Does.Exist, "onlyB");
Assert.That (Path.Combine (outputBundle, bothAB), Does.Exist, "bothAB");
Expand All @@ -261,7 +259,7 @@ public void TestSingleInput ()
var bundle = CreateAppBundle (Path.GetDirectoryName (fileA), Path.GetFileName (fileA));
var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundle);
Assert.IsTrue (task.Execute (), "Task execution");
ExecuteTask (task);

// The bundle should only contain a single file.
Assert.AreEqual (1, Directory.GetFileSystemEntries (outputBundle).Length, "Files in bundle");
Expand Down Expand Up @@ -294,7 +292,7 @@ public void TestDirectoriesAsSymlinks ()

var outputBundle = Path.Combine (Cache.CreateTemporaryDirectory (), "Merged.app");
var task = CreateTask (outputBundle, bundleA, bundleB);
Assert.IsTrue (task.Execute (), "Task execution");
ExecuteTask (task);
Assert.IsTrue (PathUtils.IsSymlink (Path.Combine (outputBundle, "B")), "IsSymlink");
Assert.IsFalse (PathUtils.IsSymlink (Path.Combine (outputBundle, "A", "A.txt")), "IsSymlink");
Assert.IsFalse (PathUtils.IsSymlink (Path.Combine (outputBundle, "B", "A.txt")), "IsSymlink");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ class CustomParseBundlerArguments : ParseBundlerArguments { }
public void NoExtraArgs ()
{
var task = CreateTask<CustomParseBundlerArguments> ();
Assert.IsTrue (task.Execute (), "execute");
ExecuteTask (task);
Assert.AreEqual ("false", task.NoSymbolStrip, "nosymbolstrip");
Assert.AreEqual ("false", task.NoDSymUtil, "nodsymutil");

task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = string.Empty;
Assert.IsTrue (task.Execute (), "execute");
ExecuteTask (task);
Assert.AreEqual ("false", task.NoSymbolStrip, "nosymbolstrip");
Assert.AreEqual ("false", task.NoDSymUtil, "nodsymutil");
}
Expand All @@ -47,15 +47,15 @@ public void NoSymbolStrip ()
foreach (var variation in false_variations) {
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = variation;
Assert.IsTrue (task.Execute (), "execute: " + variation);
ExecuteTask (task, message: "execute: " + variation);
Assert.AreEqual ("false", task.NoSymbolStrip, "nosymbolstrip: " + variation);
Assert.AreEqual ("false", task.NoDSymUtil, "nodsymutil: " + variation);
}

foreach (var variation in true_variations) {
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = variation;
Assert.IsTrue (task.Execute (), "execute: " + variation);
ExecuteTask (task, message: "execute: " + variation);
Assert.AreEqual ("true", task.NoSymbolStrip, "nosymbolstrip: " + variation);
Assert.AreEqual ("false", task.NoDSymUtil, "nodsymutil: " + variation);
}
Expand Down Expand Up @@ -85,15 +85,15 @@ public void NoDSymUtil ()
foreach (var variation in false_variations) {
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = variation;
Assert.IsTrue (task.Execute (), "execute: " + variation);
ExecuteTask (task, message: "execute: " + variation);
Assert.AreEqual ("false", task.NoSymbolStrip, "nosymbolstrip: " + variation);
Assert.AreEqual ("false", task.NoDSymUtil, "nodsymutil: " + variation);
}

foreach (var variation in true_variations) {
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = variation;
Assert.IsTrue (task.Execute (), "execute: " + variation);
ExecuteTask (task, message: "execute: " + variation);
Assert.AreEqual ("false", task.NoSymbolStrip, "nosymbolstrip: " + variation);
Assert.AreEqual ("true", task.NoDSymUtil, "nodsymutil: " + variation);
}
Expand All @@ -116,7 +116,7 @@ public void MarshalManagedExceptionMode (string input, string output, string exi
var task = CreateTask<CustomParseBundlerArguments> ();
task.MarshalManagedExceptionMode = existingValue;
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.MarshalManagedExceptionMode, output);
}

Expand All @@ -137,7 +137,7 @@ public void MarshalObjetiveCExceptionMode (string input, string output, string e
var task = CreateTask<CustomParseBundlerArguments> ();
task.MarshalObjectiveCExceptionMode = existingValue;
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.MarshalObjectiveCExceptionMode, output);
}

Expand All @@ -155,7 +155,7 @@ public void Optimize (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.Optimize, output);
}

Expand All @@ -171,7 +171,7 @@ public void Registrar (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.Registrar, output);
}

Expand All @@ -197,7 +197,7 @@ void XmlDefinitionsTest (string input, string existing, string output)
if (existing is not null)
task.XmlDefinitions = existing.Split (new char [] { ';' }, StringSplitOptions.RemoveEmptyEntries).Select (v => new TaskItem (v)).ToArray ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, string.Join (";", task.XmlDefinitions.Select (v => v.ItemSpec).ToArray ()), output);
}

Expand All @@ -218,7 +218,7 @@ public void CustomBundleName (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.CustomBundleName, output);
}

Expand All @@ -235,7 +235,7 @@ public void CustomLinkFlags (string input, string [] output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
CollectionAssert.AreEquivalent (output, task.CustomLinkFlags.Select (v => v.ItemSpec).ToArray (), string.Join (" ", output));
}

Expand All @@ -249,7 +249,7 @@ public void Verbosity (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.Verbosity, "Equality");
}

Expand All @@ -263,7 +263,7 @@ public void NoWarn (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.NoWarn, output);
}

Expand All @@ -277,7 +277,7 @@ public void WarnAsError (string input, string output)
{
var task = CreateTask<CustomParseBundlerArguments> ();
task.ExtraArgs = input;
Assert.IsTrue (task.Execute (), input);
ExecuteTask (task, message: input);
Assert.AreEqual (output, task.WarnAsError, output);
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -82,11 +82,11 @@ void TestExecuteTask (string propertyList, PropertyListEditorAction action, stri
task.Value = value;

if (expected is null) {
Assert.IsFalse (task.Execute (), "Task was expected to fail.");
ExecuteTask (task, 1);
return;
}

Assert.IsTrue (task.Execute (), "Task was expected to execute successfully.");
ExecuteTask (task);

var output = PObject.FromFile (task.PropertyList);

Expand Down
Loading
Loading