private void notifyLoginStatusChange() { GoogleLoginListener publisher = ApplicationManager.getApplication() .getMessageBus() .syncPublisher(GoogleLoginListener.GOOGLE_LOGIN_LISTENER_TOPIC); publisher.statusChanged(); } }
@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(); }