Skip to content

[tests] use a "real" Xamarin.Forms app #2304

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Oct 17, 2018

Conversation

jonathanpeppers
Copy link
Member

In the past XamarinFormsAndroidApplicationProject was incomplete:

  1. It was not a "real app", but the resemblance of one that merely
    compiled.
  2. It did not have XAML or import/run Xamarin.Forms MSBuild tasks.
  3. It was not an app that could startup, and render Xamarin.Forms
    content.

So I took the simplest Xamarin.Forms template from Visual Studio 2017
15.8.7, a Blank App:

  • Added various new files as EmbeddedResource in
    Xamarin.ProjectTools.
  • Used most files as-is, adding ${ROOT_NAMESPACE} where appropriate.
  • Included Tabbar.axml, which has a "custom view".
  • Included proper XAML files.
  • Imported Xamarin.Forms.targets, and verified that XamlG and
    XamlC are now both running.
  • Added Xamarin.Android.Support.Vector.Drawable, which avoids a
    crash at runtime.
  • Updated to Xamarin.Forms 3.1.0.

Overall, this should make any of our test cases using
XamarinFormsAndroidApplicationProject much closer to reality.

@jonathanpeppers jonathanpeppers added the do-not-merge PR should not be merged. label Oct 16, 2018
@jonathanpeppers
Copy link
Member Author

Whoops, something broke

In the past `XamarinFormsAndroidApplicationProject` was incomplete:
1. It was not a "real app", but the resemblance of one that merely
   _compiled_.
2. It did not have XAML or import/run Xamarin.Forms MSBuild tasks.
3. It was not an app that could startup, and render Xamarin.Forms
   content.

So I took the simplest Xamarin.Forms template from Visual Studio 2017
15.8.7, a `Blank App`:
- Added various new files as `EmbeddedResource` in
  `Xamarin.ProjectTools`.
- Used most files as-is, adding `${ROOT_NAMESPACE}` where appropriate.
- Included `Tabbar.axml`, which has a "custom view".
- Included proper XAML files.
- Imported `Xamarin.Forms.targets`, and verified that `XamlG` and
  `XamlC` are now both running.
- Added `Xamarin.Android.Support.Vector.Drawable`, which avoids a
  crash at runtime.
- Updated to Xamarin.Forms 3.1.0.

Overall, this should make any of our test cases using
`XamarinFormsAndroidApplicationProject` much closer to reality.
@jonathanpeppers jonathanpeppers removed the do-not-merge PR should not be merged. label Oct 16, 2018
@jonathanpeppers
Copy link
Member Author

This is good now, I had a silly mistake.

@jonpryor jonpryor merged commit d53b1fc into dotnet:master Oct 17, 2018
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 14, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated to no
longer list `Microsoft.CSharp.dll` as an expected file, as with
`Newtonsoft.Json.dll` v13.0.1, our build now consumes the
netstandard2.0-profile version, not the netstandard1.3 version, and
the netstandard 2.0 version doesn't require `Microsoft.CSharp.dll`.
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 15, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
jonpryor added a commit to jonpryor/xamarin-android that referenced this pull request Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (dotnet#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (dotnet#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (dotnet#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (dotnet#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (dotnet#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (dotnet#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (dotnet#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes dotnet#2372 - variable typos (dotnet#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (dotnet#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (dotnet#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (dotnet#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (dotnet#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (dotnet#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (dotnet#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (dotnet#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (dotnet#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (dotnet#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (dotnet#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (dotnet#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (dotnet#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (dotnet#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (dotnet#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
jonpryor added a commit that referenced this pull request Jul 16, 2021
Changes: JamesNK/Newtonsoft.Json@12.0.3...13.0.1

  * JamesNK/Newtonsoft.Json@ae9fe44e: Remove compiler package and update sourcelink (#2498)
  * JamesNK/Newtonsoft.Json@8ef66218: Remove prerelease for 13.0.1
  * JamesNK/Newtonsoft.Json@11331f50: Update SDK to 5.0.200 (#2495)
  * JamesNK/Newtonsoft.Json@c7e8abc0: Update to 13.0.1-beta2
  * JamesNK/Newtonsoft.Json@1745d7c1: Fix JTokenWriter when writing comment to an object (#2493)
  * JamesNK/Newtonsoft.Json@583eb120: Fix missing error when deserializing JToken with a contract type mismatch (#2494)
  * JamesNK/Newtonsoft.Json@b6dc05be: Change MaxDepth default to 64 (#2473)
  * JamesNK/Newtonsoft.Json@15525f1c: Fix JsonWriter.WriteToken to allow null with string token (#2472)
  * JamesNK/Newtonsoft.Json@926d2f0f: Enable embed untracked sources (#2471)
  * JamesNK/Newtonsoft.Json@0a56633b: Fixes #2372 - variable typos (#2465)
  * JamesNK/Newtonsoft.Json@5a35c77d: Update version to 13.0.1 (#2463)
  * JamesNK/Newtonsoft.Json@7e77bbe1: Change JsonReader and JsonSerializer default max depth to 128 (#2462)
  * JamesNK/Newtonsoft.Json@42139ea6: Add JsonSelectSettings and regex timeout
  * JamesNK/Newtonsoft.Json@95a6eb3a: jpath regex timeout support added for a single regex expression, global umbrella for all regex calls, and support for allowing regex calls to get compiled if necessary
  * JamesNK/Newtonsoft.Json@1403f5d3: Fix serializing nullable struct dictionaries (#2452)
  * JamesNK/Newtonsoft.Json@60be32f4: Use naming strategy when deserializing dictionary enum keys (#2448)
  * JamesNK/Newtonsoft.Json@ff5ffb28: Copy annotations when cloning elements (#2442)
  * JamesNK/Newtonsoft.Json@0cf47a46: Missing nullability annotation (#2438)
  * JamesNK/Newtonsoft.Json@6795ca55: Fixed tests to work in Moscow, Russia UTC+3 timezone. (#2416)
  * JamesNK/Newtonsoft.Json@c918ca86: Code Typo Fix: Universial => Universal (#2383)
  * JamesNK/Newtonsoft.Json@c298f3d6: Fix typo in SerializeTypeNameHandling sample (#2428)
  * JamesNK/Newtonsoft.Json@a222c8b6: Update to net50 and fix warnings (#2424)
  * JamesNK/Newtonsoft.Json@666d9760: Fix wrong define is used in StringUtils.ToLower() (#2304)
  * JamesNK/Newtonsoft.Json@a31156e9: Update NullValueHandlingIgnore.aml (#2226)
  * JamesNK/Newtonsoft.Json@936acbf6: Update version to 13.0.1-beta and remove portable builds (#2228)
  * JamesNK/Newtonsoft.Json@9be95e0f: Do not treat ignored field as missing member when deserializing from overriden json constructor (#2224)

The `PackagingTest.NetStandardReferenceTest()` test is updated, as
the list of implicitly referenced assemblies changed:

  * `Microsoft.CSharp.dll` is no longer referenced
  * `System.Data.dll` is now referenced.

It appears that the primary cause of this change is that with
`Newtonsoft.Json` 12.0.3, the .NET Standard 1.3-profile assemblies
were included into the app, while with 13.0.1, the .NET Standard-2.0
profile assemblies are instead used.
@github-actions github-actions bot locked and limited conversation to collaborators Feb 2, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants