/** * After the test is finished, revoke the permission to the app so the login dialog appears again * on the next login when running the test See * https://developers.facebook.com/docs/facebook-login/permissions/v2.1#revokelogin */ @After public void shutdown() { final FacebookAuthUser authUser = (FacebookAuthUser) (MyTestUserServicePlugin.getLastAuthUser()); if (authUser == null) { // in case the test failed, we don't have an authUser return; } final String url = getConfig().getString("userInfoUrl") + "/permissions"; WS.url(url) .setQueryParameter( OAuth2AuthProvider.Constants.ACCESS_TOKEN, authUser.getOAuth2AuthInfo().getAccessToken()) .setQueryParameter("format", "json") .setQueryParameter("method", "delete") .get() .get(10, TimeUnit.SECONDS); }
@Test public void itShouldBePossibleToSignUp() throws InterruptedException { signupUser(); // Make sure the redirect from localhost to fb happened already (and that {@link // MyUserServicePlugin#save()} gets called) Thread.sleep(3000); assertThat(browser.url()).isEqualTo("/#_=_"); final FacebookAuthUser authUser = (FacebookAuthUser) (MyTestUserServicePlugin.getLastAuthUser()); assertThat(authUser.getProfileLink()).contains(FACEBOOK_USER_ID); assertThat(authUser.getId()).isEqualTo(FACEBOOK_USER_ID); assertThat(authUser.getGender()).isEqualTo("female"); final User user = User.findByEmail(FACEBOOK_USER_EMAIL); assertThat(user).isNotNull(); assertThat(user.firstName).isEqualTo("Mary"); assertThat(user.lastName).isEqualTo("Fallerman"); assertThat(user.name).isEqualTo("Mary Ameafigjhhdb Fallerman"); }