Exemplo n.º 1
0
 public void ConstructorTest02()
 {
     using (var script = new ControlTestScript(typeof(VariableView))) {
         var actual = VisualTreeObject.Create(script.Control);
         ViewTreeDump.CompareVisualTrees(_files, actual, "VariableExplorer02");
     }
 }
Exemplo n.º 2
0
        public async Task SortTest01()
        {
            VisualTreeObject actual = null;

            using (var hostScript = new VariableRHostScript()) {
                using (var script = new ControlTestScript(typeof(VariableGridHost))) {
                    await PrepareControl(hostScript, script, "grid.test <- matrix(1:10, 2, 5)");

                    var header = await VisualTreeExtensions.FindChildAsync <HeaderTextVisual>(script.Control);

                    var grid = await VisualTreeExtensions.FindChildAsync <VisualGrid>(script.Control);

                    header.Should().NotBeNull();
                    await UIThreadHelper.Instance.InvokeAsync(() => {
                        grid.ToggleSort(header, false);
                        DoIdle(200);
                        grid.ToggleSort(header, false);
                    });

                    DoIdle(200);
                    actual = VisualTreeObject.Create(script.Control);
                    ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGridSorted01");
                }
            }
        }
Exemplo n.º 3
0
        public async Task SortTest02()
        {
            VisualTreeObject actual = null;

            using (var script = new ControlTestScript(typeof(VariableGridHost))) {
                await PrepareControl(_hostScript, script, "grid.test <- mtcars");

                UIThreadHelper.Instance.Invoke(() => {
                    var grid = VisualTreeTestExtensions.FindFirstVisualChildOfType <VisualGrid>(script.Control);

                    var header = VisualTreeTestExtensions.FindFirstVisualChildOfType <HeaderTextVisual>(script.Control); // mpg
                    header     = VisualTreeTestExtensions.FindNextVisualSiblingOfType <HeaderTextVisual>(header);        // cyl
                    header.Should().NotBeNull();

                    grid.ToggleSort(header, false);
                    DoIdle(200);

                    header = VisualTreeTestExtensions.FindNextVisualSiblingOfType <HeaderTextVisual>(header); // disp
                    header = VisualTreeTestExtensions.FindNextVisualSiblingOfType <HeaderTextVisual>(header); // hp

                    grid.ToggleSort(header, add: true);
                    grid.ToggleSort(header, add: true);
                    DoIdle(200);
                });

                actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGridSorted02");
            }
        }
Exemplo n.º 4
0
        public async Task VariableGrid_ConstructorTest02()
        {
            VisualTreeObject actual = null;

            using (var hostScript = new VariableRHostScript()) {
                using (var script = new ControlTestScript(typeof(VariableGridHost))) {
                    DoIdle(100);

                    var result = await hostScript.EvaluateAsync("grid.test <- matrix(1:10, 2, 5)");

                    EvaluationWrapper wrapper = new EvaluationWrapper(result);

                    DoIdle(2000);

                    wrapper.Should().NotBeNull();

                    UIThreadHelper.Instance.Invoke(() => {
                        var host = (VariableGridHost)script.Control;
                        host.SetEvaluation(wrapper);
                    });

                    DoIdle(1000);

                    actual = VisualTreeObject.Create(script.Control);
                    ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGrid02");
                }
            }
        }
Exemplo n.º 5
0
        public async Task VariableGrid_ConstructorTest()
        {
            VisualTreeObject actual = null;

            using (var hostScript = new VariableRHostScript()) {
                using (var script = new ControlTestScript(typeof(VariableGridHost))) {
                    DoIdle(100);

                    var result = await hostScript.EvaluateAsync("grid.test <- matrix(1:10, 2, 5)");

                    VariableViewModel wrapper = new VariableViewModel(result, VsAppShell.Current.ExportProvider.GetExportedValue <IObjectDetailsViewerAggregator>());

                    DoIdle(2000);

                    wrapper.Should().NotBeNull();

                    UIThreadHelper.Instance.Invoke(() => {
                        var host = (VariableGridHost)script.Control;
                        host.SetEvaluation(wrapper);
                    });

                    DoIdle(1000);

                    actual = VisualTreeObject.Create(script.Control);
                    ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGrid02");
                }
            }
        }
Exemplo n.º 6
0
        public async Task ConstructorTest()
        {
            using (var script = new ControlTestScript(typeof(VariableGridHost), Services)) {
                await PrepareControl(_hostScript, script, "grid.test <- matrix(1:10, 2, 5)");

                var actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGrid02");
            }
        }
Exemplo n.º 7
0
 private Task <bool> WaitForControlReady(ControlTestScript script)
 => Task.Run(async() => {
     var startTime           = DateTime.Now;
     HeaderTextVisual header = null;
     while (header == null && (DateTime.Now - startTime).TotalMilliseconds < 5000)
     {
         DoIdle(200);
         header = await VisualTreeTestExtensions.FindFirstVisualChildOfType <HeaderTextVisual>(script.Control);
     }
     return(header != null);
 });
Exemplo n.º 8
0
        public async Task SimpleFunctionTest()
        {
            using (var script = new ControlTestScript(typeof(VariableView), Services)) {
                DoIdle(100);
                await HostScript.Session.ExecuteAsync("x <- lm");

                DoIdle(1000);
                var actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, "VariableExplorer04");
            }
        }
Exemplo n.º 9
0
        public async Task SimpleDataTest()
        {
            VisualTreeObject actual = null;

            using (var script = new ControlTestScript(typeof(VariableView))) {
                DoIdle(100);
                await HostScript.Session.ExecuteAsync("x <- c(1:10)");

                DoIdle(1000);
                actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, "VariableExplorer03");
            }
        }
Exemplo n.º 10
0
        public void SimpleFunctionTest()
        {
            VisualTreeObject actual = null;

            using (var script = new ControlTestScript(typeof(VariableView))) {
                DoIdle(100);
                Task.Run(async() => {
                    await HostScript.Session.ExecuteAsync("x <- lm");
                }).Wait();

                DoIdle(1000);
                actual = VisualTreeObject.Create(script.Control);
            }
            ViewTreeDump.CompareVisualTrees(_files, actual, "VariableExplorer04");
        }
Exemplo n.º 11
0
        private async Task PrepareControl(VariableRHostScript hostScript, ControlTestScript script, string expression)
        {
            DoIdle(100);

            var result = await hostScript.EvaluateAsync(expression);

            VariableViewModel wrapper = new VariableViewModel(result, VsAppShell.Current.Services);

            DoIdle(2000);
            wrapper.Should().NotBeNull();

            UIThreadHelper.Instance.Invoke(() => {
                var host = (VariableGridHost)script.Control;
                host.SetEvaluation(wrapper);
            });

            DoIdle(1000);
        }
Exemplo n.º 12
0
        public void VariableExplorer_SimpleDataTest()
        {
            VisualTreeObject actual = null;

            using (var hostScript = new VsRHostScript()) {
                using (var script = new ControlTestScript(typeof(VariableView))) {
                    DoIdle(100);
                    Task.Run(async() => {
                        using (var eval = await hostScript.Session.BeginEvaluationAsync()) {
                            await eval.EvaluateAsync("x <- c(1:10)", REvaluationKind.Mutating);
                        }
                    }).Wait();

                    DoIdle(2000);
                    actual = VisualTreeObject.Create(script.Control);
                }
            }
            ViewTreeDump.CompareVisualTrees(_files, actual, "VariableExplorer03");
        }
Exemplo n.º 13
0
        public void HelpTest()
        {
            var clientApp = new RHostClientHelpTestApp();

            using (var hostScript = new VsRHostScript(clientApp)) {
                using (var script = new ControlTestScript(typeof(HelpWindowVisualComponent))) {
                    DoIdle(100);

                    var component = ControlWindow.Component as IHelpWindowVisualComponent;
                    component.Should().NotBeNull();

                    component.VisualTheme = "Dark.css";
                    clientApp.Component   = component;

                    ShowHelp("?plot\n", hostScript, clientApp);
                    clientApp.Uri.IsLoopback.Should().Be(true);
                    clientApp.Uri.PathAndQuery.Should().Be("/library/graphics/html/plot.html");

                    GetBackgroundColor(component.Browser).Should().Be(darkThemeCssColor);

                    UIThreadHelper.Instance.Invoke(() => {
                        component.Browser.Refresh();
                        WaitForDocumentComplete(component.Browser);
                    });
                    GetBackgroundColor(component.Browser).Should().Be(darkThemeCssColor);

                    component.VisualTheme = "Light.css";
                    ShowHelp("?lm\n", hostScript, clientApp);
                    clientApp.Uri.PathAndQuery.Should().Be("/library/stats/html/lm.html");

                    GetBackgroundColor(component.Browser).Should().Be("white");

                    ExecCommand(clientApp, RPackageCommandId.icmdHelpPrevious);
                    clientApp.Uri.PathAndQuery.Should().Be("/library/graphics/html/plot.html");

                    ExecCommand(clientApp, RPackageCommandId.icmdHelpNext);
                    clientApp.Uri.PathAndQuery.Should().Be("/library/stats/html/lm.html");

                    ExecCommand(clientApp, RPackageCommandId.icmdHelpHome);
                    clientApp.Uri.PathAndQuery.Should().Be("/doc/html/index.html");
                }
            }
        }
Exemplo n.º 14
0
        public async Task HelpTest()
        {
            var clientApp = new RHostClientHelpTestApp();
            await HostScript.InitializeAsync(clientApp);

            using (var script = new ControlTestScript(typeof(HelpVisualComponent))) {
                DoIdle(100);

                var component = ControlWindow.Component as IHelpVisualComponent;
                component.Should().NotBeNull();

                component.VisualTheme = "Dark.css";
                await UIThreadHelper.Instance.InvokeAsync(() => {
                    clientApp.Component = component;
                });

                await ShowHelpAsync("plot", HostScript, clientApp);

                clientApp.Uri.IsLoopback.Should().Be(true);
                clientApp.Uri.PathAndQuery.Should().Be("/library/graphics/html/plot.html");
                (await GetBackgroundColorAsync(component, clientApp)).Should().Be(darkThemeCssColor);

                component.VisualTheme = "Light.css";
                await ShowHelpAsync("lm", HostScript, clientApp);

                clientApp.Uri.PathAndQuery.Should().Be("/library/stats/html/lm.html");

                (await GetBackgroundColorAsync(component, clientApp)).Should().Be("white");

                await ExecCommandAsync(clientApp, RPackageCommandId.icmdHelpPrevious);

                clientApp.Uri.PathAndQuery.Should().Be("/library/graphics/html/plot.html");

                await ExecCommandAsync(clientApp, RPackageCommandId.icmdHelpNext);

                clientApp.Uri.PathAndQuery.Should().Be("/library/stats/html/lm.html");

                await ExecCommandAsync(clientApp, RPackageCommandId.icmdHelpHome);

                clientApp.Uri.PathAndQuery.Should().Be("/doc/html/index.html");
            }
        }
Exemplo n.º 15
0
        public void HelpTest()
        {
            var clientApp       = new RHostClientHelpTestApp();
            var historyProvider = RHistoryProviderStubFactory.CreateDefault();

            using (var hostScript = new VsRHostScript(clientApp)) {
                using (var script = new ControlTestScript(typeof(HelpWindowVisualComponent))) {
                    DoIdle(100);

                    var activeViewTrackerMock       = new ActiveTextViewTrackerMock("  plot", RContentTypeDefinition.ContentType);
                    var activeReplTrackerMock       = new ActiveRInteractiveWindowTrackerMock();
                    var sessionProvider             = VsAppShell.Current.ExportProvider.GetExportedValue <IRSessionProvider>();
                    var interactiveWorkflowProvider = TestRInteractiveWorkflowProviderFactory.Create(sessionProvider, activeTextViewTracker: activeViewTrackerMock);
                    var interactiveWorkflow         = interactiveWorkflowProvider.GetOrCreate();

                    var component = ControlWindow.Component as IHelpWindowVisualComponent;
                    component.Should().NotBeNull();

                    component.VisualTheme = "Light.css";
                    clientApp.Component   = component;

                    var view = activeViewTrackerMock.GetLastActiveTextView(RContentTypeDefinition.ContentType);

                    var cmd = new ShowHelpOnCurrentCommand(interactiveWorkflow, activeViewTrackerMock, activeReplTrackerMock);

                    cmd.Should().BeVisibleAndDisabled();
                    view.Caret.MoveTo(new SnapshotPoint(view.TextBuffer.CurrentSnapshot, 3));

                    cmd.Should().BeVisibleAndEnabled();
                    cmd.Text.Should().EndWith("plot");

                    cmd.Invoke();
                    WaitForAppReady(clientApp);

                    clientApp.Uri.IsLoopback.Should().Be(true);
                    clientApp.Uri.PathAndQuery.Should().Be("/library/graphics/html/plot.html");

                    DoIdle(500);
                }
            }
        }
Exemplo n.º 16
0
        public async Task EvalModeTest(bool dynamicMode, string baselineName)
        {
            using (var script = new ControlTestScript(typeof(VariableGridHost), Services)) {
                using (var inter = await _hostScript.Session.BeginInteractionAsync()) {
                    await inter.RespondAsync("grid.test <- matrix(1:10)");
                }
                await PrepareControl(_hostScript, script, "grid.test");

                Services.GetService <IRSettings>().GridDynamicEvaluation = dynamicMode;
                using (var inter = await _hostScript.Session.BeginInteractionAsync()) {
                    await inter.RespondAsync("grid.test <- matrix(1:20)");
                }

                await UIThreadHelper.Instance.InvokeAsync(() => {
                    DoIdle(500);
                });

                var actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, baselineName);
            }
        }
Exemplo n.º 17
0
        public async Task SortTest01()
        {
            using (var script = new ControlTestScript(typeof(VariableGridHost), Services)) {
                await PrepareControl(_hostScript, script, "grid.test <- matrix(1:10, 2, 5)");

                var header = await VisualTreeTestExtensions.FindFirstVisualChildOfType <HeaderTextVisual>(script.Control);

                header.Should().NotBeNull();

                var grid = await VisualTreeTestExtensions.FindFirstVisualChildOfType <VisualGrid>(script.Control);

                await UIThreadHelper.Instance.InvokeAsync(() => {
                    grid.ToggleSort(new GridIndex(0, header.ColumnIndex), false);
                    DoIdle(200);
                    grid.ToggleSort(new GridIndex(0, header.ColumnIndex), false);
                });

                DoIdle(200);

                var actual = VisualTreeObject.Create(script.Control);
                ViewTreeDump.CompareVisualTrees(_files, actual, "VariableGridSorted01");
            }
        }