Ejemplo n.º 1
0
 void LogAcrylicRecipeVersion(ResultsLogger logger)
 {
     if (PlatformConfiguration.IsOsVersionGreaterThanOrEqual(OSVersion.NineteenH1))
     {
         // Color change expected on 19H1
         logger.LogMessage("Using Luminosity-based recipe (19H1)... ");
     }
     else
     {
         // No color change expected on RS5 and lower
         logger.LogMessage("Using legacy Acrylic recipe (RS5 and lower)... ");
     }
 }
        private void AnotherListViewItem_Holding(object sender, Windows.UI.Xaml.Input.HoldingRoutedEventArgs e)
        {
            if (!ValidateEffectsPresent())
            {
                return;
            }

            using (var logger = new ResultsLogger("BorderLight_TapAndHold", TestResult))
            {
                if (FallbackToLocalLight())
                {
                    bool shouldBorderLightBeOn = ShouldBorderLightBeOn();
                    logger.Verify(shouldBorderLightBeOn == true, "ShouldBorderLightBeOn: " + shouldBorderLightBeOn);
                }
                else if (SharedLight() != null)
                {
                    CompositionLight sharedLight = SharedLight();
                    logger.Verify(sharedLight != null, "Shared Light Exists: " + sharedLight);
                }
                else
                {
                    logger.LogMessage("Neither shared nor local lights exist.");
                }
            }
        }
        private void HoverLightPositionValuesValidationHelper(System.Numerics.Vector3 positionExpected, string testName, string targetName)
        {
            if (!ValidateEffectsPresent())
            {
                return;
            }

            WaitHandle[] valueValidationEvents = new WaitHandle[1];

            Control target = FindName(targetName) as Control;
            var     lights = GetElementForHoverLight(target).Lights;

            var hoverLight = _revealTestApi.GetAsRevealHoverLight(lights[0]);

            _hoverSpotlight = _revealTestApi.GetSpotLight(hoverLight as Windows.UI.Xaml.Media.XamlLight);

            valueValidationEvents[0] = _compositionPropertyLogger.RegisterProperty(_hoverSpotlight, "Offset", CompositionPropertyLogger.LoggableType.Vector3, new System.Numerics.Vector3(0F, 0F, 0F), positionExpected, offsetCoordinateTolerance);

            // Off-thread validation waits until each registered property hits its expected value
            Task.Run(() =>
            {
                bool result = WaitHandle.WaitAll(valueValidationEvents, 10000);
                RunOnUIThread.Execute(() =>
                {
                    using (var logger = new ResultsLogger(testName, TestResult))
                    {
                        var positionValues = _compositionPropertyLogger.GetValues(_hoverSpotlight, "Offset");
                        logger.LogMessage("Offset: " + string.Join(", ", positionValues));

                        _compositionPropertyLogger.UnregisterProperty(_hoverSpotlight, "Offset", CompositionPropertyLogger.LoggableType.Vector3);
                        Array.Clear(valueValidationEvents, 0, 1);

                        logger.Verify(result, "PositionValidationResult: error occured");
                    }
                });
            });
        }
        private void HoverLightStateValuesValidationHelper(
            float hoverLight_InnerConeIntensityExpected, float hoverLight_outerConeIntensityExpected, float hoverLight_outerConeAngleExpected,
            float pressLight_InnerConeIntensityExpected, float pressLight_outerConeIntensityExpected, float pressLight_outerConeAngleExpected,
            string testName,
            string targetName)
        {
            if (!ValidateEffectsPresent())
            {
                return;
            }

            WaitHandle[] hoverLight_ValueValidationEvents = new WaitHandle[3];
            WaitHandle[] pressLight_ValueValidationEvents = new WaitHandle[3];

            Control target = FindName(targetName) as Control;
            var     lights = GetElementForHoverLight(target).Lights;

            var hoverLight = _revealTestApi.GetAsRevealHoverLight(lights[0]);
            var pressLight = _revealTestApi.GetAsRevealHoverLight(lights[1]);

            _hoverSpotlight = _revealTestApi.GetSpotLight(hoverLight as Windows.UI.Xaml.Media.XamlLight);
            _pressSpotlight = _revealTestApi.GetSpotLight(pressLight as Windows.UI.Xaml.Media.XamlLight);

            hoverLight_ValueValidationEvents[0] = _compositionPropertyLogger.RegisterProperty(_hoverSpotlight, "InnerConeIntensity", CompositionPropertyLogger.LoggableType.Float, 0.0f, hoverLight_InnerConeIntensityExpected, coneIntensityTolerance);
            hoverLight_ValueValidationEvents[1] = _compositionPropertyLogger.RegisterProperty(_hoverSpotlight, "OuterConeIntensity", CompositionPropertyLogger.LoggableType.Float, 0.0f, hoverLight_outerConeIntensityExpected, coneIntensityTolerance);
            hoverLight_ValueValidationEvents[2] = _compositionPropertyLogger.RegisterProperty(_hoverSpotlight, "OuterConeAngle", CompositionPropertyLogger.LoggableType.Float, 0.0f, hoverLight_outerConeAngleExpected, coneAngleTolerance);

            pressLight_ValueValidationEvents[0] = _compositionPropertyLogger.RegisterProperty(_pressSpotlight, "InnerConeIntensity", CompositionPropertyLogger.LoggableType.Float, 0.0f, pressLight_InnerConeIntensityExpected, coneIntensityTolerance);
            pressLight_ValueValidationEvents[1] = _compositionPropertyLogger.RegisterProperty(_pressSpotlight, "OuterConeIntensity", CompositionPropertyLogger.LoggableType.Float, 0.0f, pressLight_outerConeIntensityExpected, coneIntensityTolerance);
            pressLight_ValueValidationEvents[2] = _compositionPropertyLogger.RegisterProperty(_pressSpotlight, "OuterConeAngle", CompositionPropertyLogger.LoggableType.Float, 0.0f, pressLight_outerConeAngleExpected, coneAngleTolerance);


            // Off-thread validation waits until each registered property hits its expected value
            Task.Run(() =>
            {
                var combined           = hoverLight_ValueValidationEvents.Concat(pressLight_ValueValidationEvents).ToArray();
                bool hoverLight_Result = WaitHandle.WaitAll(hoverLight_ValueValidationEvents, 10000);
                bool pressLight_Result = WaitHandle.WaitAll(pressLight_ValueValidationEvents, 10000);
                RunOnUIThread.Execute(() =>
                {
                    using (var logger = new ResultsLogger(testName, TestResult))
                    {
                        var hoverLight_InnerConeIntensityValues = _compositionPropertyLogger.GetValues(_hoverSpotlight, "InnerConeIntensity");
                        var hoverLight_OuterConeIntensityValues = _compositionPropertyLogger.GetValues(_hoverSpotlight, "OuterConeIntensity");
                        var hoverLight_OuterConeAngleValues     = _compositionPropertyLogger.GetValues(_hoverSpotlight, "OuterConeAngle");

                        logger.LogMessage("HoverLight - InnerConeIntensity: " + string.Join(", ", hoverLight_InnerConeIntensityValues));
                        logger.LogMessage("HoverLight - OuterConeIntensity: " + string.Join(", ", hoverLight_OuterConeIntensityValues));
                        logger.LogMessage("HoverLight - OuterConeAngle: " + string.Join(", ", hoverLight_OuterConeAngleValues));

                        var pressLight_InnerConeIntensityValues = _compositionPropertyLogger.GetValues(_pressSpotlight, "InnerConeIntensity");
                        var pressLight_OuterConeIntensityValues = _compositionPropertyLogger.GetValues(_pressSpotlight, "OuterConeIntensity");
                        var pressLight_OuterConeAngleValues     = _compositionPropertyLogger.GetValues(_pressSpotlight, "OuterConeAngle");

                        logger.LogMessage("PressLight - InnerConeIntensity: " + string.Join(", ", pressLight_InnerConeIntensityValues));
                        logger.LogMessage("PressLight - OuterConeIntensity: " + string.Join(", ", pressLight_OuterConeIntensityValues));
                        logger.LogMessage("PressLight - OuterConeAngle: " + string.Join(", ", pressLight_OuterConeAngleValues));

                        _compositionPropertyLogger.UnregisterProperty(_hoverSpotlight, "InnerConeIntensity", CompositionPropertyLogger.LoggableType.Float);
                        _compositionPropertyLogger.UnregisterProperty(_hoverSpotlight, "OuterConeIntensity", CompositionPropertyLogger.LoggableType.Float);
                        _compositionPropertyLogger.UnregisterProperty(_hoverSpotlight, "OuterConeAngle", CompositionPropertyLogger.LoggableType.Float);
                        Array.Clear(hoverLight_ValueValidationEvents, 0, 3);

                        _compositionPropertyLogger.UnregisterProperty(_pressSpotlight, "InnerConeIntensity", CompositionPropertyLogger.LoggableType.Float);
                        _compositionPropertyLogger.UnregisterProperty(_pressSpotlight, "OuterConeIntensity", CompositionPropertyLogger.LoggableType.Float);
                        _compositionPropertyLogger.UnregisterProperty(_pressSpotlight, "OuterConeAngle", CompositionPropertyLogger.LoggableType.Float);
                        Array.Clear(pressLight_ValueValidationEvents, 0, 3);

                        logger.Verify(hoverLight_Result && hoverLight_Result, "StateValidationResult: error occured");
                    }
                });
            });
        }