Beispiel #1
0
        public void TestEnsureAnalyticsOptInSkipsPrompt()
        {
            _analyticsOptions.DialogShown = true;
            _analyticsOptions.OptIn       = false;

            EventsReporterWrapper.EnsureAnalyticsOptIn();

            _promptAnalyticsMock.Verify(f => f(), Times.Never);
            Assert.IsTrue(_analyticsOptions.DialogShown);
            Assert.IsFalse(_analyticsOptions.OptIn);
        }
        public void TestEnsureAnalyticsOptIn_ShowsPromptWhenDialogNotShown()
        {
            _generalOptions.DialogShown = false;
            _generalOptions.OptIn       = false;
            PackageMock.Setup(p => p.UserPromptService.PromptUser(It.IsAny <AnalyticsOptInWindowContent>()))
            .Returns(true);

            EventsReporterWrapper.EnsureAnalyticsOptIn();

            Assert.IsTrue(_generalOptions.OptIn);
            Assert.IsTrue(_generalOptions.DialogShown);
        }
Beispiel #3
0
        public void TestEnsureAnalyticsOptInShowsPrompt()
        {
            _analyticsOptions.DialogShown = false;
            _analyticsOptions.OptIn       = false;
            _promptAnalyticsMock.Setup(f => f()).Returns(true);

            EventsReporterWrapper.EnsureAnalyticsOptIn();

            _promptAnalyticsMock.Verify(f => f(), Times.Once);
            Assert.IsTrue(_analyticsOptions.OptIn);
            Assert.IsTrue(_analyticsOptions.DialogShown);
        }
        public ManageAccountsViewModel()
        {
            _userAccountsList = LoadUserCredentialsViewModel();

            CurrentAccountName = CredentialsStore.Default.CurrentAccount?.AccountName;

            SetAsCurrentAccountCommand = new ProtectedCommand(OnSetAsCurrentAccountCommand, canExecuteCommand: false);
            DeleteAccountCommand       = new ProtectedCommand(OnDeleteAccountCommand);
            AddAccountCommand          = new ProtectedAsyncCommand(OnAddAccountCommandAsync);

            EventsReporterWrapper.EnsureAnalyticsOptIn();
        }
        public void TestEnsureAnalyticsOptIn_SkipsPromptWhenDialogShown()
        {
            _generalOptions.DialogShown = true;
            _generalOptions.OptIn       = false;

            EventsReporterWrapper.EnsureAnalyticsOptIn();

            PackageMock.Verify(
                p => p.UserPromptService.PromptUser(It.IsAny <AnalyticsOptInWindowContent>()),
                Times.Never);
            Assert.IsTrue(_generalOptions.DialogShown);
            Assert.IsFalse(_generalOptions.OptIn);
        }
Beispiel #6
0
        /// <summary>
        /// Initializes the singleton instance of the command.
        /// </summary>
        /// <param name="package">Owner package, not null.</param>
        /// <param name="token">The cancellation token.</param>
        public static async Task InitializeAsync(IGoogleCloudExtensionPackage package, CancellationToken token)
        {
            object menuCommandService = await package.GetServiceAsync(typeof(IMenuCommandService));

            await package.JoinableTaskFactory.SwitchToMainThreadAsync(token);

            if (menuCommandService is OleMenuCommandService commandService)
            {
                var menuCommandID = new CommandID(s_commandSet, CommandId);
                var menuItem      = new MenuCommand(ShowToolWindow, menuCommandID);
                commandService.AddCommand(menuItem);
            }

            // <summary>
            // Shows the tool window when the menu item is clicked.
            // </summary>
            // <param name="sender">The event sender.</param>
            // <param name="e">The event args.</param>
            void ShowToolWindow(object sender, EventArgs e)
            {
                EventsReporterWrapper.EnsureAnalyticsOptIn();

                ErrorHandlerUtils.HandleExceptionsAsync(ShowToolWindowAsync);
            }

            async Task ShowToolWindowAsync()
            {
                // Get the instance number 0 of this tool window. This window is single instance so this instance
                // is actually the only one.
                // The last flag is set to true so that if the tool window does not exists it will be created.
                var window = package.FindToolWindow <CloudExplorerToolWindow>(true);

                if (window?.Frame == null)
                {
                    throw new NotSupportedException("Cannot create tool window");
                }

                await package.JoinableTaskFactory.SwitchToMainThreadAsync();

                var windowFrame = (IVsWindowFrame)window.Frame;

                Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());
            }
        }
        /// <summary>
        /// Shows the tool window when the menu item is clicked.
        /// </summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event args.</param>
        private void ShowToolWindow(object sender, EventArgs e)
        {
            EventsReporterWrapper.EnsureAnalyticsOptIn();

            ErrorHandlerUtils.HandleExceptions(() =>
            {
                // Get the instance number 0 of this tool window. This window is single instance so this instance
                // is actually the only one.
                // The last flag is set to true so that if the tool window does not exists it will be created.
                ToolWindowPane window = _package.FindToolWindow(typeof(CloudExplorerToolWindow), 0, true);
                if (window?.Frame == null)
                {
                    throw new NotSupportedException("Cannot create tool window");
                }

                IVsWindowFrame windowFrame = (IVsWindowFrame)window.Frame;
                Microsoft.VisualStudio.ErrorHandler.ThrowOnFailure(windowFrame.Show());
            });
        }
        /// <summary>
        /// Shows the tool window when the menu item is clicked.
        /// </summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event args.</param>
        private void ShowToolWindow(object sender, EventArgs e)
        {
            EventsReporterWrapper.EnsureAnalyticsOptIn();

            ManageAccountsWindow.PromptUser();
        }