public void setSelectedCloudProject(CloudProject cloudProject) { projectSelector.setSelectedProject(cloudProject); }
private void selectInProgressProject() { String projectName = "unknownProject"; projectSelector.setSelectedProject( CloudProject.create(projectName, projectName, null, "some-user-id")); }
@Test public void setNullProject_acceptsAndUpdatesUi() { projectSelector.setSelectedProject(TEST_PROJECT); projectSelector.setSelectedProject(null); verifyUiStateForProject(null); }
@SuppressWarnings("unchecked") private void selectEmptyProject() { String projectName = "emptyProject"; projectSelector.setSelectedProject( CloudProject.create(projectName, projectName, null, "some-user-id")); targetSelector.removeAllItems(); targetSelector.setEnabled(false); targetSelector.addItem(NO_MODULES_FOUND_WARNING); }
@Test public void setProject_doesNotTriggerListeners() { projectSelector.setSelectedProject(TEST_PROJECT); verifyNoMoreInteractions(projectSelectionListener); }
/** * Loads active {@link CloudProject}, if IDE {@link Project} has been specified. This should be * called when project selector and the related UI are completely initialized. Calls listeners to * notify on new project selection. */ public void loadActiveCloudProject() { Optional<CloudProject> projectOptional = Optional.ofNullable(ideProject) .map(p -> ActiveCloudProjectManager.getInstance().getActiveCloudProject(p)); projectOptional.ifPresent( activeCloudProject -> { // do not preset and notify on active project if not signed in to avoid misleading client // code to assume project selection is made with an active account. if (Services.getLoginService().isLoggedIn()) { setSelectedProject(activeCloudProject); notifyProjectSelectionListeners(); } }); }
@VisibleForTesting void handleOpenProjectSelectionDialog() { ProjectSelectionDialog projectSelectionDialog = createProjectSelectionDialog(this); CloudProject newSelection = projectSelectionDialog.showDialog(cloudProject); // if null, it means no change or user cancelled selection dialog - no update required. if (newSelection != null) { setSelectedProject(newSelection); notifyProjectSelectionListeners(); // keep as last active project if IDE project has been specified. if (ideProject != null) { ActiveCloudProjectManager.getInstance().setActiveCloudProject(newSelection, ideProject); } } }
public void setInputState(@Nullable CloudDebugProcessState inputState) { this.inputState = inputState; if (this.inputState != null && !Strings.isNullOrEmpty(this.inputState.getProjectName()) && !Strings.isNullOrEmpty(this.inputState.getUserEmail())) { Long projectNumber = null; if (!Strings.isNullOrEmpty(this.inputState.getProjectNumber())) { projectNumber = Long.parseLong(this.inputState.getProjectNumber()); } projectSelector.setSelectedProject( CloudProject.create( this.inputState.getProjectName(), // TODO(ivanporty) add separate project name/ID this.inputState.getProjectName(), projectNumber, this.inputState.getUserEmail())); // update the state here as well refreshDebugTargetList(projectSelector.getSelectedProject()); } }
@Test public void setProject_updatesUi() { projectSelector.setSelectedProject(TEST_PROJECT); verifyUiStateForProject(TEST_PROJECT); }
@SuppressWarnings("unchecked") private void selectProjectWithDebuggableModules() { String projectName = "projectWithDebuggableModules"; projectSelector.setSelectedProject( CloudProject.create(projectName, projectName, null, "some-user-id")); targetSelector.removeAllItems(); targetSelector.setEnabled(true); DebugTarget debugTarget = new DebugTarget(new Debuggee(), projectName); targetSelector.addItem(debugTarget); }
@Test public void setEmptyProject_acceptsAndUpdatesUi() { projectSelector.setSelectedProject(CloudProject.create("", "", "")); verifyUiStateForProject(null); }
/** * Shared implementation of {@link * com.intellij.openapi.options.SettingsEditor#resetEditorFrom(Object)}. To be invoked by users of * this panel in the overriden method. */ public void resetEditorFrom(@NotNull AppEngineDeploymentConfiguration configuration) { promoteCheckbox.setSelected(configuration.isPromote()); versionIdField.setText(configuration.getVersion()); stopPreviousVersionCheckbox.setSelected(configuration.isStopPreviousVersion()); deployAllConfigsCheckbox.setSelected(configuration.isDeployAllConfigs()); if (configuration.getEnvironment() != null) { environmentLabel.setText(configuration.getEnvironment().localizedLabel()); } // TODO(ivanporty) add project name to configuration and then use separate project ID field. if (configuration.getCloudProjectName() != null && configuration.getGoogleUsername() != null) { CloudProject cloudProject = CloudProject.create( configuration.getCloudProjectName(), configuration.getCloudProjectName(), configuration.getGoogleUsername()); projectSelector.setSelectedProject(cloudProject); } else { // unset project, load default active cloud project (if available for this IDE project) projectSelector.loadActiveCloudProject(); } refreshApplicationInfoPanel(projectSelector.getSelectedProject()); }
@Test public void resetEditorFrom_doesSet_matchingCloudProject() { String projectId = "some-project"; configuration.setCloudProjectName(projectId); configuration.setGoogleUsername(EMAIL); editor.resetEditorFrom(configuration); CloudProject expectedProject = CloudProject.create(projectId, projectId, EMAIL); verify(projectSelector).setSelectedProject(expectedProject); } }
@Test public void resetEditorFrom_withCloudProjectName_doesSetCloudProjectName() { String projectName = "some-project"; configuration.setCloudProjectName(projectName); configuration.setGoogleUsername(EMAIL); editor.resetEditorFrom(configuration); CloudProject expectedProject = CloudProject.create(projectName, projectName, EMAIL); verify(projectSelector).setSelectedProject(expectedProject); }
@Test public void loadActiveProject_withoutIdeProject_doesNotChangeSelection() { projectSelector.setSelectedProject(TEST_PROJECT); projectSelector.loadActiveCloudProject(); assertThat(projectSelector.getSelectedProject()).isEqualTo(TEST_PROJECT); verifyUiStateForProject(TEST_PROJECT); }
@Test public void validProject_no_LoggedInUsers_showLoginPrompt() { when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.setSelectedProject(TEST_PROJECT); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.message( "cloud.project.selector.not.signed.in", TEST_PROJECT.googleUsername())); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); }
@Test public void validProject_newLogIn_changesTo_AccountInformation() { when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.setSelectedProject(TEST_PROJECT); // log in now, fire event mockUserLoggedIn(TEST_PROJECT.googleUsername()); projectSelector.googleLoginListener.statusChanged(); // drain UI events. ApplicationManager.getApplication().invokeAndWait(() -> {}); verifyUiStateForProject(TEST_PROJECT); }
@Test public void validProject_logOut_changesTo_loginPrompt() { projectSelector.setSelectedProject(TEST_PROJECT); // log out all users, notify login listeners. when(mockLoginService.isLoggedIn()).thenReturn(false); projectSelector.googleLoginListener.statusChanged(); // drain UI events. ApplicationManager.getApplication().invokeAndWait(() -> {}); assertThat(projectSelector.getAccountInfoLabel().getHyperlinkText()) .isEqualTo( GoogleCloudCoreMessageBundle.message( "cloud.project.selector.not.signed.in", TEST_PROJECT.googleUsername())); assertThat(projectSelector.getAccountInfoLabel().getIcon()).isNull(); }
@Test public void getManagementUI_withLibraryAndProjectSelected_isEnabled() { CloudLibrary library = LIBRARY_1.toCloudLibrary(); GoogleCloudApiSelectorPanel panel = new GoogleCloudApiSelectorPanel(ImmutableList.of(library), testFixture.getProject()); JTable table = panel.getCloudLibrariesTable(); checkAddLibraryCheckbox(table, 0); panel.getDetailsPanel().setCloudLibrary(library, panel.getApiManagementMap().get(library)); CloudProject cloudProject = CloudProject.create("name", "id", "user"); ProjectSelector projectSelector = panel.getProjectSelector(); projectSelector.setSelectedProject(cloudProject); projectSelector .getProjectSelectionListeners() .forEach(listener -> listener.projectSelected(cloudProject)); assertThat(panel.getDetailsPanel().getEnableApiCheckbox().isEnabled()).isTrue(); assertThat(panel.getDetailsPanel().getManagementInfoPanel().isVisible()).isFalse(); }