Example #1
0
 public void NullInfoProviderDoesNotCrash()
 {
     RunOnUIThread.Execute(() =>
     {
         RefreshVisualizer refreshVisualizer = new RefreshVisualizer();
         Compositor compositor = ElementCompositionPreview.GetElementVisual(refreshVisualizer).Compositor;
         RefreshInfoProviderImpl refreshInfoProviderImpl             = new RefreshInfoProviderImpl(compositor);
         ((IRefreshVisualizerPrivate)refreshVisualizer).InfoProvider = refreshInfoProviderImpl;
         refreshVisualizer.RequestRefresh();
         ((IRefreshVisualizerPrivate)refreshVisualizer).InfoProvider = null;
         refreshVisualizer.RequestRefresh();
     });
 }
Example #2
0
 public void RefreshPropagatesToInfoProvider()
 {
     RunOnUIThread.Execute(() =>
     {
         RefreshVisualizer refreshVisualizer = new RefreshVisualizer();
         Compositor compositor = ElementCompositionPreview.GetElementVisual(refreshVisualizer).Compositor;
         RefreshInfoProviderImpl refreshInfoProviderImpl             = new RefreshInfoProviderImpl(compositor);
         ((IRefreshVisualizerPrivate)refreshVisualizer).InfoProvider = refreshInfoProviderImpl;
         Verify.AreEqual <int>(0, refreshInfoProviderImpl.OnRefreshStartedCalls);
         Verify.AreEqual <int>(0, refreshInfoProviderImpl.OnRefreshCompletedCalls);
         refreshVisualizer.RequestRefresh();
         Verify.AreEqual <int>(1, refreshInfoProviderImpl.OnRefreshStartedCalls);
         Verify.AreEqual <int>(1, refreshInfoProviderImpl.OnRefreshCompletedCalls);
     });
 }
Example #3
0
        public void RefreshCompletedDeferralCompletedOffUIThread()
        {
            RunOnUIThread.Execute(() =>
            {
                RefreshVisualizer refreshVisualizer = new RefreshVisualizer();
                Compositor compositor = ElementCompositionPreview.GetElementVisual(refreshVisualizer).Compositor;
                RefreshInfoProviderImpl refreshInfoProviderImpl             = new RefreshInfoProviderImpl(compositor);
                ((IRefreshVisualizerPrivate)refreshVisualizer).InfoProvider = refreshInfoProviderImpl;
                refreshVisualizer.RefreshRequested += (RefreshVisualizer sender, RefreshRequestedEventArgs args) =>
                {
                    Deferral def = args.GetDeferral();

                    Windows.System.Threading.ThreadPool.RunAsync(
                        (IAsyncAction action) =>
                    {
                        Log.Comment("RefreshVisualizer.RefreshRequested event handler");
                        def.Complete();
                    }).AsTask().Wait();
                };

                Verify.AreEqual <int>(0, refreshInfoProviderImpl.OnRefreshStartedCalls);
                Verify.AreEqual <int>(0, refreshInfoProviderImpl.OnRefreshCompletedCalls);

                MUXControlsTestApp.App.TestContentRoot = refreshVisualizer;

                refreshVisualizer.RequestRefresh();
            });

            IdleSynchronizer.Wait();

            RunOnUIThread.Execute(() =>
            {
                RefreshVisualizer refreshVisualizer             = (RefreshVisualizer)MUXControlsTestApp.App.TestContentRoot;
                RefreshInfoProviderImpl refreshInfoProviderImpl = ((RefreshInfoProviderImpl)((IRefreshVisualizerPrivate)refreshVisualizer).InfoProvider);

                Verify.AreEqual <int>(1, refreshInfoProviderImpl.OnRefreshStartedCalls);
                //Since we are completing the deferral off the UI thread the refresh never completed.
                Verify.AreEqual <int>(0, refreshInfoProviderImpl.OnRefreshCompletedCalls);
            });
        }