Skip to content
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

Styles and Xaml resources compatibility #1766

Merged
merged 218 commits into from Jun 3, 2020
Merged

Conversation

davidjohnoliver
Copy link
Contributor

@davidjohnoliver davidjohnoliver commented Oct 8, 2019

GitHub Issue (If applicable): fixes #119 , fixes #1335, fixes #55, fixes #49, fixes #55, fixes #96, fixes #371, fixes #833, fixes #1427, fixes #3216, fixes #1420, fixes #2404

Related: #2744

PR Type

  • Bugfix
  • Feature

What kind of change does this PR introduce?

What is the current behavior?

  • Uno only supports global-level resources, including implicit styles

What is the new behavior?

Numerous compatibility fixes:

  • Resources can be defined at any level of the visual tree
  • Resources are resolved by scope, including implicit styles
  • default (framework) styles are additive with implicit/explicit styles
  • Resources property is now correctly populated, resources can be accessed/modified from code-behind
  • theme resources can be dynamically updated when theme changes
  • DefaultStyleKey is now respected
  • custom subclasses will now use the default style of the parent framework control unless DefaultStyleKey is overridden

PR Checklist

Please check if your PR fulfills the following requirements:

  • Tested code with current supported SDKs
  • Docs have been added/updated which fit documentation template (for bug fixes / features)
  • Unit Tests and/or UI Tests for the changes have been added (for bug fixes / features) (if applicable)
  • Wasm UI Tests are not showing unexpected any differences. Validate PR Screenshots Compare Test Run results.
  • Contains NO breaking changes
  • Updated the Release Notes
  • Associated with an issue (GitHub or internal)

Other information

Internal Issue (If applicable):

@ghuntley ghuntley added platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform kind/enhancement New feature or request area/xf-wasm-renderers Categorizes an issue or PR as relevant to WebAssembly Renderers for Xamarin Forms kind/bug Something isn't working labels Oct 17, 2019
src/Uno.UI/FeatureConfiguration.cs Show resolved Hide resolved
src/Uno.UI/UI/Xaml/Application.cs Outdated Show resolved Hide resolved
@@ -59,10 +60,10 @@ private int PageSize
}
else
{
if (ScrollViewer?.Style == Uno.UI.GlobalStaticResources.ListViewBaseScrollViewerStyle)
if (ScrollViewer?.Style != null && ScrollViewer.Style == ResourceResolver.GetSystemResource<Style>("ListViewBaseScrollViewerStyle")) //TODO: this, too, properly
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Todo in this PR ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Depends if I end up adjusting the timing of template application to the Measure phase. I'd rather push that particular change back, but it depends on what regressions come up in testing.

Once templates are materialized on Measure, it'll be trivially easy to give ScrollViewers inside virtualized lists a 'fake' ScrollContentPresenter without any user intervention.

@github-actions github-actions bot added area/automation Categorizes an issue or PR as relevant to project automation area/code-generation Categorizes an issue or PR as relevant to code generation labels Oct 18, 2019
@davidjohnoliver davidjohnoliver added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Oct 30, 2019
@davidjohnoliver davidjohnoliver force-pushed the feature/styles-compat branch 2 times, most recently from f6c8ef9 to a5ae9a8 Compare October 31, 2019 19:18
src/SamplesApp/SamplesApp.Shared/App.xaml.cs Show resolved Hide resolved
Comment on lines 35 to 36
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file may clash with generated code on CI for versionning. You should consider using a SDK-style project.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I initially tried to make it an SDK-style project and ran into weird issues, I'll circle around and try again before I complete the PR.

@carldebilly
Copy link
Member

Codacy Here is an overview of what got changed by this pull request:

Issues
======
+ Solved 33
- Added 155
           

Complexity increasing per file
==============================
- src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileParser.cs  5
- src/Uno.UI/UI/Xaml/FrameworkElement.iOS.cs  1
- src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/Button/Button_UseUWPDefaultStyles.xaml.cs  2
- src/Uno.UI.Tests/App/Views/MyDependencyObject.cs  1
- src/Uno.UI/UI/Xaml/Controls/MediaPlayer/MediaPlayerElement.net.cs  1
- src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlCodeGeneration.cs  2
- src/Uno.UI/UI/Xaml/Controls/WebView/NativeWebView.Android.cs  1
- src/Uno.UI.Tests/Windows_UI_Xaml/Given_Implicit_Style.cs  1
- src/Uno.UI.Tests/Windows_UI_Xaml/Given_ResourceDictionary.cs  1
- src/Uno.UI.Tests/App/Views/MyControl.cs  1
- src/SamplesApp/SamplesApp.UITests/Windows_UI_Xaml_Controls/ButtonTests/Button_Tests.cs  1
- src/Uno.UI.Tests/App/Xaml/Test_Page.xaml.cs  1
- src/Uno.UI/UI/Xaml/Controls/Primitives/PivotHeaderItem.cs  1
- src/Uno.UWP/Media/Playback/MediaPlayer.net.cs  1
- src/Uno.UI.Tests/Helpers/AssertEx.cs  1
- src/Uno.UI/Mock/ViewExtensions.net.cs  2
- src/Uno.UI.Tests.ViewLibrary/MyExtControl.cs  1
- src/Uno.UI/UI/Xaml/DependencyObjectStore.cs  1
- src/Uno.UI/UI/Xaml/Style/Style.cs  7
- src/Uno.UI/UI/Xaml/Application.cs  5
- src/Uno.UI/UI/Xaml/UIElementCollection.net.cs  1
- src/Uno.UI.Tests/Windows_UI_Xaml/Given_ThemeResource.cs  1
- src/Uno.UI/UI/Xaml/Controls/GridView/GridViewHeaderItem.cs  1
- src/Uno.UI.Tests/App/Views/BooleanToBrushConverter.cs  3
- src/Uno.UI/UI/Xaml/FrameworkElement.wasm.cs  2
- src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlGlobalStaticResourcesMap.cs  2
- src/Uno.UI/Extensions/ViewExtensions.wasm.cs  6
- src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileDefinition.cs  1
- src/Uno.UI/UI/Xaml/Controls/FlipView/NativeFlipView.iOS.cs  1
- src/SourceGenerators/Uno.UI.SourceGenerators/ApiInformation.cs  1
- src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/BackingFieldDefinition.cs  3
- src/Uno.UI/UI/Xaml/ResourceResolver.cs  7
- src/Uno.UI.Tests/App/Views/SpiffyItemsControl.cs  1
- src/Uno.UI.Tests/App/Views/MyPoco.cs  1
- src/Uno.UI/UI/Xaml/Controls/UserControl/UserControl.cs  1
- src/Uno.UI/UI/Xaml/XamlScope.cs  1
- src/Uno.Foundation/Metadata/ApiInformation.shared.cs  2
- src/Uno.UI.Tests/Windows_UI_Xaml/Given_Explicit_Style.cs  1
- src/Uno.UI.Tests/Windows_UI_Xaml/Given_Conditional_Xaml.cs  1
- src/Uno.UI.Tests/App/Views/ResourceTestControl.cs  1
- src/Uno.UI/UI/Xaml/Data/ResourceBinding.cs  1
- src/Uno.UI.Tests/Windows_UI_XAML_Controls/TextBlockTests/Given_TextBlock.cs  1
- src/Uno.UI.Tests/App/Views/MyBehavior.cs  1
- src/Uno.UI.Tests/App/Views/StylesTestControl.cs  1
         

Complexity decreasing per file
==============================
+ src/Uno.UI/UI/Xaml/Controls/ContentControl/ContentControl.macOS.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Underline.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Run.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Bold.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Span.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Inline.cs  -1
+ src/Uno.UI/UI/Xaml/FrameworkElement.cs  -1
+ src/Uno.UI/UI/Xaml/Documents/Italic.cs  -1
+ src/Uno.UI.Tests/Windows_UI_Xaml_Markup/XamlReaderTests/Given_XamlReader.cs  -2
+ src/Uno.UI/UI/Xaml/ResourceDictionary.cs  -2
         

See the complete overview on Codacy

@pkar70
Copy link
Contributor

pkar70 commented Feb 24, 2020

So, after this PR be accepted, I would need to add DefaultStyleKey = typeof(CalendarDatePicker); to constructor of CalendarDatePicker, in my PR2079?

@davidjohnoliver
Copy link
Contributor Author

So, after this PR be accepted, I would need to add DefaultStyleKey = typeof(CalendarDatePicker); to constructor of CalendarDatePicker, in my PR2079?

@pkar70 Yes, indeed you should add it right now, currently it just won't do anything.

return null;
}

public static observeSystemTheme() {
if (!this.dispatchThemeChange) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public bool Remove(KeyValuePair<object, object> key) => _values.Remove(key.Key.ToString());
public bool Remove(KeyValuePair<object, object> key) => _values.Remove(key.Key);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

.GetTypeInfo()
.GetDeclaredProperty("DefaultStyleKey");
#else
.GetProperty("DefaultStyleKey", BindingFlags.NonPublic | BindingFlags.Instance);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

return absoluteTargetPath.Replace('\\', '/');
}

internal static bool IsAbsolutePath(string relativeTargetPath) => relativeTargetPath.StartsWith(AppXIdentifier)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public static observeSystemTheme() {
if (!this.dispatchThemeChange) {
this.dispatchThemeChange = (<any>Module).mono_bind_static_method("[Uno] Windows.UI.Xaml.Application:DispatchSystemThemeChange");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

_isParsing = value;
if (_isParsing)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

? childLevelLimit.Value
: Int32.MaxValue;

return (T)view.EnumerateAllChildren(childSelector, maxDepth).FirstOrDefault();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
if (value is bool b)
{
return b ? TrueValue
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public static void SetNoDPProperty(FrameworkElement obj, double value)
{
obj.Tag = value;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public static void SetBulbousness(DependencyObject obj, double value)
{
obj.SetValue(BulbousnessProperty, value);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

// Set initial value based on statically-available top-level resources.
if (TryStaticRetrieval(resourceKey, context, out var value))
{
owner.SetValue(property, BindingPropertyHelper.Convert(() => property.Type, value));
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.


public static double GetNoDPProperty(FrameworkElement obj)
{
if (obj.Tag is double value)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

public static T FindFirstChild<T>(this ViewGroup view, int? childLevelLimit = null, bool includeCurrent = true)
where T : View
{
return view.FindFirstChild<T>(null, childLevelLimit, includeCurrent);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@@ -36,6 +36,7 @@ internal partial class XamlFileGenerator
private string[] _clrNamespaces;
private readonly static Func<INamedTypeSymbol, IPropertySymbol> _findContentProperty;
private readonly static Func<INamedTypeSymbol, string, bool> _isAttachedProperty;
private readonly static Func<INamedTypeSymbol, string, INamedTypeSymbol> _getAttachedPropertyType;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
Assert.IsNotNull(resources);

AssertHasColor(resources[key] as Brush, expected);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

{
var textDarkStaticMarkup = control.TemplateFromResourceControl.TextBlock5.Text;
Assert.AreEqual("ApplicationLevelLight", textDarkStaticMarkup); //StaticResource markup doesn't change
;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

}

_isParsing = value;
if (_isParsing)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nventive-devops
Copy link
Contributor

The build 16049 found UI Test snapshots differences.

  • android-28: 235 changed over 392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Affect_Measurement_polygon_PolygonPage_-_ChangeShape-After_clear
    • Affect_Measurement_polyline_PolylinePage_-_ChangeShape-After_clear
    • Affect_Measurement_polyline_SamplesApp_Windows_UI_Xaml_Shapes_PolylinePage
    • BasicNavigationView_SamplesApp_Samples_Windows_UI_Xaml_Controls_NavigationViewTests_NavigationView_Pane_Automated
    • BitmapSource_PixelSize_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_ImageSource_PixelSize
    • Change_Manipulation_Property_After_property_change
    • Change_Manipulation_Property_Before_property_change
    • Change_Manipulation_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Check_Bound_Color_Complete
    • Check_Bound_Color_UITests_Shared_Windows_UI_Xaml_Shapes_Rectangle_Color_Bound
    • Check_CornerRadius_Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Check_ListView_Swallows_Measure_after_scroll
    • ComboBoxTests_Fullscreen_Popup_Generic_Closed
    • ComboBoxTests_Kidnapping_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ComboBoxItem_Selection
    • ComboBoxTests_ToggleDisabled_UITests_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ToggleDisabled
    • ComboBoxTests_VisibleBounds_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_VisibleBounds
    • ContentControl_Changing_ContentTemplate_Uno_UI_Samples_Content_UITests_ContentControlTestsControl_ContentControl_Changing_ContentTemplate
    • ContentDialog_Auto_Closing_UITests_Shared_Windows_UI_Xaml_Controls_ContentDialogTests_ContentDialog_Closing
    • ContentDialog_Closing_Result_UITests_Shared_Windows_UI_Xaml_Controls_ContentDialogTests_ContentDialog_Closing
    • DismissablaPopups_ForwardOrder_Validation_UITests_Shared_Windows_UI_Xaml_Controls_Popup_Popup_LightDismiss
  • android-28-Snap: 366 changed over 720

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations_DoubleAnimationTestsControl_Uno_UI_Samples_Content_UITests_DoubleAnimationTestsControl
    • Animations_DoubleAnimation_BeginTime_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_BeginTime
    • Animations_DoubleAnimation_opacity_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Opacity
    • Animations_DoubleAnimation_transforms_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Transforms
    • Animations_DoubleAnimation_VisualStates_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_VisualStates
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill
    • Automation_AutomationProperties_AutomationId_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_AutomationId
    • AutoSuggestBox_BasicAutoSuggestBox_UITests_Shared_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_BasicAutoSuggestBox
    • Border_BorderRightwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderRightwithmargins
    • Border_Border_CornerRadius_Binding_Uno_UI_Samples_UITests_BorderTestsControl_Border_CornerRadius_Binding
    • Border_Border_Simple_No_Background_With_TextBox_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_No_Background_With_TextBox
    • Border_Border_Simple_with_non_Uniform_Thickness_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_non_Uniform_Thickness
    • Border_Border_Simple_with_Opacity_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_Opacity
    • Border_OnepxThicknessandRadiusAndTextBlock_Uno_UI_Samples_UITests_BorderTestsControl_OnepxThicknessandRadiusAndTextBlock
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • ButtonTestsControl_AppBar_KeyBoard_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBar_KeyBoard
    • Button_AppBarButtonTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonTest
    • Button_AppBarButtonWithIconTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonWithIconTest
  • ios: 65 changed over 198

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BitmapSource_PixelSize_ImageSource_PixelSize_-_Result
    • BitmapSource_PixelSize_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_ImageSource_PixelSize
    • Button_Events_UITests_Shared_Windows_UI_Xaml_Controls_Button_Button_Events
    • Button_OverlappedButtons_UITests_Shared_Windows_UI_Xaml_Controls_Button_Overlapped_Buttons
    • Change_Manipulation_Property_After_property_change
    • Change_Manipulation_Property_Before_property_change
    • Change_Manipulation_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Check_CornerRadius_Border_CornerRadius=5
    • Check_CornerRadius_Border_No_CornerRadius
    • Check_CornerRadius_Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Check_ListView_Swallows_Measure_after_scroll
    • Check_ListView_Swallows_Measure_before_scroll
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ComboBoxTests_Kidnapping_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ComboBoxItem_Selection
    • ComboBoxTests_PickerDefaultValue_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_Picker
    • ComboBoxTests_ToggleDisabled_ComboBox_Disabled
    • ComboBoxTests_ToggleDisabled_ComboBox_Enabled
    • ComboBoxTests_ToggleDisabled_UITests_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ToggleDisabled
    • ContentPresenter_Changing_ContentTemplate_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Changing_ContentTemplate
    • ContentPresenter_Template_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Template
  • ios-Snap: 372 changed over 711

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations_DoubleAnimation_BeginTime_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_BeginTime
    • Animations_DoubleAnimation_opacity_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Opacity
    • Animations_DoubleAnimation_transforms_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Transforms
    • Animations_DoubleAnimation_VisualStates_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_VisualStates
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill
    • Border_BorderRightwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderRightwithmargins
    • Border_Border_Simple_No_Background_With_TextBox_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_No_Background_With_TextBox
    • Border_Border_Simple_with_Opacity_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_Opacity
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Border_ZeroThickness_Uno_UI_Samples_UITests_BorderTestsControl_ZeroThickness
    • Button_AppBarButtonTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonTest
    • Button_AppBarButtonWithIconTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonWithIconTest
    • Button_CheckBox_Button_Uno_UI_Samples_Content_UITests_ButtonTestsControl_CheckBox_Button
    • Button_ComboBox_Simple_Uno_UI_Samples_Content_UITests_ButtonTestsControl_ComboBox_Simple
    • Button_Overlapped_Buttons_UITests_Shared_Windows_UI_Xaml_Controls_Button_Overlapped_Buttons
    • Button_RadioButton_Multiple_Unnamed_Groups_Uno_UI_Samples_Content_UITests_ButtonTestsControl_RadioButton_Multiple_Unnamed_Groups
    • CheckBox_UITests_Shared_Windows_UI_Xaml_Controls_CheckBoxTests_CheckBox_Automated_UITests_Shared_Windows_UI_Xaml_Controls_CheckBoxTests_CheckBox_Automated
    • Clipping_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControl_SamplesApp_Windows_UI_Xaml_Clipping_ButtonClippingTestsControl
    • Clipping_SamplesApp_Windows_UI_Xaml_Clipping_DoubleAnimationClipping_SamplesApp_Windows_UI_Xaml_Clipping_DoubleAnimationClipping
  • wasm: 48 changed over 721

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • initial_state
    • nVentive.Umbrella.Views.UI.Samples.Content.UITests.ButtonTestsControl.Hyperlink_CanExecute_False
    • nVentive.Umbrella.Views.UI.Samples.Content.UITests.ButtonTestsControl.Hyperlink_Disabled
    • SamplesApp.Samples.NavigationViewSample.NavigationViewSample
    • SamplesApp.Windows_UI_Xaml_Controls.PivotTests.Basics
    • SamplesApp.Windows_UI_Xaml_Shapes.PathTestsControl.Path_Dynamic
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRingPage
    • UITests.Microsoft_UI_Xaml_Controls.SplitButtonTests.SplitButtonPage
    • UITests.Shared.Microsoft_UI_Xaml_Controls.TwoPaneViewTests.TwoPaneViewPage
    • UITests.Shared.Toolkit.Elevation
    • UITests.Shared.Windows_UI_Xaml.FrameworkElementTests.ItemsControl_Loaded
    • UITests.Shared.Windows_UI_Xaml_Controls.BitmapIconTests.BitmapIcon_Generic
    • UITests.Shared.Windows_UI_Xaml_Controls.Buttons_Native
    • UITests.Shared.Windows_UI_Xaml_Controls.CommandBar.CommandBar_Xaml_Automated
    • UITests.Shared.Windows_UI_Xaml_Controls.ContentPresenter.ContentPresenter_ImplicitContent
    • UITests.Shared.Windows_UI_Xaml_Controls.ControlTests.Control_IsEnabled_Inheritance
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePickerFlyout_Unloaded
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePickerSample
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePicker_SampleContent
    • UITests.Shared.Windows_UI_Xaml_Controls.ListView.ListView_DataContext_Propagation
  • wasm-automated: 38 changed over 442

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • CommandTest_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonPage
    • Compact again
    • Disabled_MenuFlyoutItem_AfterSuccess
    • Disabled_MenuFlyoutItem_disabledItem
    • Disabled_MenuFlyoutItem_fileMenu
    • Dismiss_MenuFlyout_fileMenu
    • FocusManager_GetFocusedElement_ListViewItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ListViewItem_-_2_-_Click_outside
    • ItemsControl_LoadCount_UITests_Shared_Windows_UI_Xaml_FrameworkElementTests_ItemsControl_Loaded
    • ListView_Weird_Measure_During_Arrange_after_layout
    • ListView_Weird_Measure_During_Arrange_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Weird_Measure
    • MenuFlyoutItem_ClickTest_AfterSuccess
    • MenuFlyoutItem_ClickTest_Initial
    • MenuFlyoutItem_ClickTest_menuShown
    • MenuFlyoutItem_ClickTest_UITests_Shared_Windows_UI_Xaml_Controls_MenuFlyoutTests_MenuFlyoutItem_Click
    • NoToolTip_On_Open_opened-tooltip
    • Pivot_Non_PivotItemChange_Validation_UITests_Shared_Windows_UI_Xaml_Controls_Pivot_Pivot_CustomContent_Automated
    • Pivot_Non_PivotItem_Items_UITests_Shared_Windows_UI_Xaml_Controls_Pivot_Pivot_CustomContent_Automated
    • ScrollBar_Vertical_UITests_Windows_UI_Xaml_Controls_ScrollBar_ScrollBar_Simple
    • SequentialAnimations_SamplesApp_Windows_UI_Xaml_Media_Animation_SequentialAnimationsPage
    • Simple_MenuFlyout_exitMenu

@nventive-devops
Copy link
Contributor

The build 16049 found UI Test snapshots differences.

  • android-28: 235 changed over 392

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Affect_Measurement_polygon_PolygonPage_-_ChangeShape-After_clear
    • Affect_Measurement_polygon_PolygonPage_-_ClearShape
    • Affect_Measurement_polygon_SamplesApp_Windows_UI_Xaml_Shapes_PolygonPage
    • Affect_Measurement_polyline_PolylinePage_-_ChangeShape-After_clear
    • Affect_Measurement_polyline_PolylinePage_-_ClearShape
    • Affect_Measurement_polyline_SamplesApp_Windows_UI_Xaml_Shapes_PolylinePage
    • BasicNavigationView_SamplesApp_Samples_Windows_UI_Xaml_Controls_NavigationViewTests_NavigationView_Pane_Automated
    • BitmapSource_PixelSize_ImageSource_PixelSize_-_Result
    • BitmapSource_PixelSize_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_ImageSource_PixelSize
    • Button_Events_UITests_Shared_Windows_UI_Xaml_Controls_Button_Button_Events
    • Button_OverlappedButtons_UITests_Shared_Windows_UI_Xaml_Controls_Button_Overlapped_Buttons
    • Change_Manipulation_Property_After_property_change
    • Change_Manipulation_Property_Before_property_change
    • Change_Manipulation_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Check_Bound_Color_Complete
    • Check_Bound_Color_UITests_Shared_Windows_UI_Xaml_Shapes_Rectangle_Color_Bound
    • Check_CornerRadius_Border_CornerRadius=5
    • Check_CornerRadius_Border_No_CornerRadius
    • Check_CornerRadius_Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Check_ListView_Swallows_Measure_after_scroll
  • android-28-Snap: 366 changed over 720

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations_DoubleAnimationTestsControl_Uno_UI_Samples_Content_UITests_DoubleAnimationTestsControl
    • Animations_DoubleAnimation_BeginTime_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_BeginTime
    • Animations_DoubleAnimation_opacity_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Opacity
    • Animations_DoubleAnimation_transforms_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Transforms
    • Animations_DoubleAnimation_VisualStates_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_VisualStates
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill
    • Automation_AutomationProperties_AutomationId_UITests_Shared_Windows_UI_Xaml_Automation_AutomationProperties_AutomationId
    • AutoSuggestBox_BasicAutoSuggestBox_UITests_Shared_Windows_UI_Xaml_Controls_AutoSuggestBoxTests_BasicAutoSuggestBox
    • Border_BorderRightwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderRightwithmargins
    • Border_Border_CornerRadius_Binding_Uno_UI_Samples_UITests_BorderTestsControl_Border_CornerRadius_Binding
    • Border_Border_Simple_No_Background_With_TextBox_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_No_Background_With_TextBox
    • Border_Border_Simple_with_non_Uniform_Thickness_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_non_Uniform_Thickness
    • Border_Border_Simple_with_Opacity_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_Opacity
    • Border_OnepxThicknessandRadiusAndTextBlock_Uno_UI_Samples_UITests_BorderTestsControl_OnepxThicknessandRadiusAndTextBlock
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • ButtonTestsControl_AppBar_KeyBoard_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBar_KeyBoard
    • Button_AppBarButtonTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonTest
    • Button_AppBarButtonWithIconTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonWithIconTest
  • ios: 89 changed over 198

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • BitmapSource_PixelSize_ImageSource_PixelSize_-_Result
    • BitmapSource_PixelSize_UITests_Shared_Windows_UI_Xaml_Controls_ImageTests_Image_ImageSource_PixelSize
    • Button_Events_UITests_Shared_Windows_UI_Xaml_Controls_Button_Button_Events
    • Button_OverlappedButtons_UITests_Shared_Windows_UI_Xaml_Controls_Button_Overlapped_Buttons
    • Change_Manipulation_Property_After_property_change
    • Change_Manipulation_Property_Before_property_change
    • Change_Manipulation_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Check_CornerRadius_Border_CornerRadius=5
    • Check_CornerRadius_Border_No_CornerRadius
    • Check_CornerRadius_Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Check_ListView_Swallows_Measure_before_scroll
    • Check_ListView_Swallows_Measure_after_scroll
    • Check_ListView_Swallows_Measure_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_With_ListViews_Count_Measure
    • ComboBoxTests_Kidnapping_UITests_Shared_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ComboBoxItem_Selection
    • ComboBoxTests_PickerDefaultValue_SamplesApp_Wasm_Windows_UI_Xaml_Controls_ComboBox_ComboBox_Picker
    • ComboBoxTests_ToggleDisabled_ComboBox_Disabled
    • ComboBoxTests_ToggleDisabled_ComboBox_Enabled
    • ComboBoxTests_ToggleDisabled_UITests_Windows_UI_Xaml_Controls_ComboBox_ComboBox_ToggleDisabled
    • ContentPresenter_Changing_ContentTemplate_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Changing_ContentTemplate
    • ContentPresenter_Template_Uno_UI_Samples_Content_UITests_ContentPresenter_ContentPresenter_Template
  • ios-Snap: 372 changed over 711

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Animations_DoubleAnimation_BeginTime_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_BeginTime
    • Animations_DoubleAnimation_opacity_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Opacity
    • Animations_DoubleAnimation_transforms_final_state_UITests_Windows_UI_Xaml_Media_Animation_DoubleAnimation_FinalState_Transforms
    • Animations_DoubleAnimation_VisualStates_Uno_UI_Samples_Content_UITests_Animations_DoubleAnimation_VisualStates
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Background
    • Animations_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill_UITests_Windows_UI_Xaml_Media_Animation_ColorAnimation_Fill
    • Border_BorderRightwithmargins_Uno_UI_Samples_UITests_BorderTestsControl_BorderRightwithmargins
    • Border_Border_CornerRadius_Binding_Uno_UI_Samples_UITests_BorderTestsControl_Border_CornerRadius_Binding
    • Border_Border_Simple_No_Background_With_TextBox_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_No_Background_With_TextBox
    • Border_Border_Simple_with_non_Uniform_Thickness_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_non_Uniform_Thickness
    • Border_Border_Simple_with_Opacity_Uno_UI_Samples_UITests_BorderTestsControl_Border_Simple_with_Opacity
    • Border_OnepxThicknessandRadiusAndTextBlock_Uno_UI_Samples_UITests_BorderTestsControl_OnepxThicknessandRadiusAndTextBlock
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_Clipped_Change_Property
    • Border_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle_UITests_Shared_Windows_UI_Xaml_Controls_BorderTests_Border_CornerRadius_Toggle
    • Border_ZeroThickness_Uno_UI_Samples_UITests_BorderTestsControl_ZeroThickness
    • ButtonTestsControl_AppBar_KeyBoard_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBar_KeyBoard
    • ButtonTestsControl_HyperlinkButton_IsEnabled_Automated_Uno_UI_Samples_Content_UITests_ButtonTestsControl_HyperlinkButton_IsEnabled_Automated
    • Button_AppBarButtonTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonTest
    • Button_AppBarButtonWithIconTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarButtonWithIconTest
    • Button_AppBarToggleButtonTest_Uno_UI_Samples_Content_UITests_ButtonTestsControl_AppBarToggleButtonTest
  • wasm: 48 changed over 721

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • initial_state
    • nVentive.Umbrella.Views.UI.Samples.Content.UITests.ButtonTestsControl.Hyperlink_CanExecute_False
    • nVentive.Umbrella.Views.UI.Samples.Content.UITests.ButtonTestsControl.Hyperlink_Disabled
    • SamplesApp.Samples.NavigationViewSample.NavigationViewSample
    • SamplesApp.Windows_UI_Xaml_Controls.PivotTests.Basics
    • SamplesApp.Windows_UI_Xaml_Shapes.PathTestsControl.Path_Dynamic
    • UITests.Microsoft_UI_Xaml_Controls.ProgressRing.WinUIProgressRingPage
    • UITests.Microsoft_UI_Xaml_Controls.SplitButtonTests.SplitButtonPage
    • UITests.Shared.Microsoft_UI_Xaml_Controls.TwoPaneViewTests.TwoPaneViewPage
    • UITests.Shared.Toolkit.Elevation
    • UITests.Shared.Windows_UI_Xaml.FrameworkElementTests.ItemsControl_Loaded
    • UITests.Shared.Windows_UI_Xaml_Controls.BitmapIconTests.BitmapIcon_Generic
    • UITests.Shared.Windows_UI_Xaml_Controls.Buttons_Native
    • UITests.Shared.Windows_UI_Xaml_Controls.CommandBar.CommandBar_Xaml_Automated
    • UITests.Shared.Windows_UI_Xaml_Controls.ContentPresenter.ContentPresenter_ImplicitContent
    • UITests.Shared.Windows_UI_Xaml_Controls.ControlTests.Control_IsEnabled_Inheritance
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePickerFlyout_Unloaded
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePickerSample
    • UITests.Shared.Windows_UI_Xaml_Controls.DatePicker.DatePicker_SampleContent
    • UITests.Shared.Windows_UI_Xaml_Controls.ListView.ListView_DataContext_Propagation
  • wasm-automated: 38 changed over 442

    🚨🚨 Comparison Details (first 20) 🚨🚨
    • Disabled_MenuFlyoutItem_AfterSuccess
    • Disabled_MenuFlyoutItem_disabledItem
    • Disabled_MenuFlyoutItem_fileMenu
    • FocusManager_GetFocusedElement_ListViewItem_LostFocus_Validation_FocusManager_-_LostFocus_-_ListViewItem_-_2_-_Click_outside
    • CommandTest_UITests_Microsoft_UI_Xaml_Controls_SplitButtonTests_SplitButtonPage
    • Compact again
    • Dismiss_MenuFlyout_fileMenu
    • ListView_Weird_Measure_During_Arrange_after_layout
    • ListView_Weird_Measure_During_Arrange_UITests_Shared_Windows_UI_Xaml_Controls_ListView_ListView_Weird_Measure
    • MenuFlyoutItem_ClickTest_AfterSuccess
    • MenuFlyoutItem_ClickTest_Initial
    • Pivot_Non_PivotItemChange_Validation_UITests_Shared_Windows_UI_Xaml_Controls_Pivot_Pivot_CustomContent_Automated
    • Pivot_Non_PivotItem_Items_UITests_Shared_Windows_UI_Xaml_Controls_Pivot_Pivot_CustomContent_Automated
    • ItemsControl_LoadCount_UITests_Shared_Windows_UI_Xaml_FrameworkElementTests_ItemsControl_Loaded
    • MenuFlyoutItem_ClickTest_menuShown
    • MenuFlyoutItem_ClickTest_UITests_Shared_Windows_UI_Xaml_Controls_MenuFlyoutTests_MenuFlyoutItem_Click
    • NoToolTip_On_Open_opened-tooltip
    • ToolTip_Large_Text_Lower_ToolTip
    • ToolTip_Large_Text_Upper_ToolTip
    • When_IsEnabled_Initially_False_And_Inherited_UITests_Shared_Windows_UI_Xaml_Controls_ControlTests_Control_IsEnabled_Inheritance

@davidjohnoliver davidjohnoliver merged commit 34fbc75 into master Jun 3, 2020
@MartinZikmund
Copy link
Member

No way! 🎉🎉🎉🎉🎉🎉🎉

@MartinZikmund
Copy link
Member

giphy

@robloo
Copy link
Contributor

robloo commented Jun 4, 2020

@davidjohnoliver Really nice work! One more not-insignificant roadblock in compatibility is gone!!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/automation Categorizes an issue or PR as relevant to project automation area/code-generation Categorizes an issue or PR as relevant to code generation area/xf-wasm-renderers Categorizes an issue or PR as relevant to WebAssembly Renderers for Xamarin Forms kind/bug Something isn't working kind/enhancement New feature or request platform/android 🤖 Categorizes an issue or PR as relevant to the Android platform platform/ios 🍎 Categorizes an issue or PR as relevant to the iOS platform platform/wasm 🌐 Categorizes an issue or PR as relevant to the WebAssembly platform
Projects
None yet
9 participants