public void CanInstantiate()
 {
     RunOnUIThread.Execute(() =>
     {
         ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
     });
 }
        public void AdaptOnSVWithoutWaitingForLoaded()
        {
            var objects = new Dictionary <string, WeakReference>();

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv    = new ScrollViewer();
                objects["sv"]      = new WeakReference(sv);
                sv.Content         = new Button();
                var adapter        = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                objects["adapter"] = new WeakReference(adapter);
                adapter.Adapt(sv, new Size(1.0, 1.0));
                Content = sv;
                Content.UpdateLayout();

                adapter = null;
                Content = null;
            });

            IdleSynchronizer.Wait();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            RunOnUIThread.Execute(() => CheckLeaks(objects));
        }
示例#3
0
        public void AdaptOnSVWithoutWaitingForLoaded()
        {
            var objects    = new Dictionary <string, WeakReference>();
            var resetEvent = new AutoResetEvent(false);
            ScrollViewerIRefreshInfoProviderAdapter adapter;

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv    = new ScrollViewer();
                objects["sv"]      = new WeakReference(sv);
                sv.Content         = new Button();
                sv.Loaded         += (object sender, RoutedEventArgs e) => { resetEvent.Set(); };
                adapter            = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                objects["adapter"] = new WeakReference(adapter);
                adapter.Adapt(sv, new Size(1.0, 1.0));
                MUXControlsTestApp.App.TestContentRoot = sv;
            });

            IdleSynchronizer.Wait();
            resetEvent.WaitOne();

            RunOnUIThread.Execute(() =>
            {
                adapter = null;
                MUXControlsTestApp.App.TestContentRoot = null;
            });

            IdleSynchronizer.Wait();
            GC.Collect();
            GC.WaitForPendingFinalizers();
            GC.Collect();

            RunOnUIThread.Execute(() => CheckLeaks(objects));
        }
 public void AdaptOnNullThrows()
 {
     RunOnUIThread.Execute(() =>
     {
         ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
         Verify.IsNotNull(adapter);
         Verify.Throws <ArgumentException>(() => { adapter.Adapt(null, new Size(1.0, 1.0)); });
     });
 }
示例#5
0
        private void AdaptOnSVWithoutWaitingForLoaded_Click(object sender, RoutedEventArgs e)
        {
            ScrollViewer sv = new ScrollViewer();

            objects["sv"] = new WeakReference(sv);
            sv.Content    = new Button();
            ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);

            adapter.Adapt(sv, new Size(1.0, 1.0));
            this.TestRoot.Children.Add(sv);
        }
 public void AdaptOnSVWithNonUIElementContentThrows()
 {
     RunOnUIThread.Execute(() =>
     {
         ScrollViewer sv = new ScrollViewer();
         sv.Content      = 1;
         Content         = sv;
         Content.UpdateLayout();
         ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
         Verify.IsNotNull(adapter);
         Verify.Throws <ArgumentException>(() => { adapter.Adapt(sv, new Size(1.0, 1.0)); });
     });
 }
        public void AdaptOnSV()
        {
            var resetEvent = new AutoResetEvent(false);

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = new ScrollViewer();
                sv.Content      = new Button();
                sv.Loaded      += (object sender, RoutedEventArgs e) => { resetEvent.Set(); };

                Content = sv;
                Content.UpdateLayout();
                ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                adapter.Adapt(sv, new Size(1.0, 1.0));
            });
        }
        public void AdaptOnSVWithoutContentThrows()
        {
            var resetEvent = new AutoResetEvent(false);

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = new ScrollViewer();
                sv.Loaded      += (object sender, RoutedEventArgs e) => { resetEvent.Set(); };
                Content         = sv;
                Content.UpdateLayout();
                Verify.IsNull(sv.Content);
                ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                Verify.IsNotNull(adapter);
                Verify.Throws <ArgumentException>(() => { adapter.Adapt(sv, new Size(1.0, 1.0)); });
            });
        }
示例#9
0
        public void AdaptOnSVWithNonUIElementContentThrows()
        {
            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = new ScrollViewer();
                sv.Content      = 1;
                MUXControlsTestApp.App.TestContentRoot = sv;
            });

            IdleSynchronizer.Wait();

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = (ScrollViewer)MUXControlsTestApp.App.TestContentRoot;
                ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                Verify.IsNotNull(adapter);
                Verify.Throws <ArgumentException>(() => { adapter.Adapt(sv, new Size(1.0, 1.0)); });
            });
        }
示例#10
0
        public void AdaptOnSV()
        {
            var resetEvent = new AutoResetEvent(false);

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = new ScrollViewer();
                sv.Content      = new Button();
                sv.Loaded      += (object sender, RoutedEventArgs e) => { resetEvent.Set(); };

                MUXControlsTestApp.App.TestContentRoot = sv;
            });

            IdleSynchronizer.Wait();
            resetEvent.WaitOne();

            RunOnUIThread.Execute(() =>
            {
                ScrollViewer sv = (ScrollViewer)MUXControlsTestApp.App.TestContentRoot;
                ScrollViewerIRefreshInfoProviderAdapter adapter = new ScrollViewerIRefreshInfoProviderAdapter(RefreshPullDirection.TopToBottom, null);
                adapter.Adapt(sv, new Size(1.0, 1.0));
            });
        }