@Test
 @UseUnstablePageLoadStrategy
 public void signUpWithFacebook() {
   new RemoveFacebookPageObject(driver)
       .removeWikiaApps(user.getEmail(), user.getPassword())
       .logOutFB();
   WikiBasePageObject base = new WikiBasePageObject(driver);
   base.openWikiPage(wikiURL);
   FacebookMainPageObject fbLogin = base.openFacebookMainPage();
   FacebookUserPageObject userFB;
   userFB = fbLogin.login(user.getEmail(), user.getPassword());
   userFB.verifyPageLogo();
   SignUpPageObject signUp = userFB.navigateToSpecialSignUpPage(wikiURL);
   FacebookSignupModalComponentObject fbModal = signUp.clickFacebookSignUp();
   fbModal.acceptWikiaAppPolicy();
   String userName = "******" + DateTime.now().getMillis();
   String password = "******" + DateTime.now().getMillis();
   fbModal.typeUserName(userName);
   fbModal.typePassword(password);
   fbModal.createAccount();
   base.openWikiPage(wikiURL);
   base.appendToUrl("noads=1");
   base.verifyUserLoggedIn(userName);
   base.logOut(wikiURL);
 }
  @Test
  @UseUnstablePageLoadStrategy
  public void connectUsingUserPreferences() {
    new RemoveFacebookPageObject(driver)
        .removeWikiaApps(user.getEmail(), user.getPassword())
        .logOutFB();

    PreferencesPageObject prefsPage = new PreferencesPageObject(driver).open();
    prefsPage.loginAs(User.USER);
    prefsPage.selectTab(PreferencesPageObject.tabNames.FACEBOOK);
    prefsPage.connectFacebook(user.getEmail(), user.getPassword());
    prefsPage.verifyFBButtonVisible();
    prefsPage.logOut(wikiURL);
    SignUpPageObject signUp = new SignUpPageObject(driver).open();
    signUp.clickFacebookSignUp();
    prefsPage.verifyUserLoggedIn(credentials.userName);
  }
  /**
   *
   *
   * <ol>
   *   <li>Log in to facebook
   *   <li>Click facebook login on signup page
   *   <li>Deny permission to user's facebook email address
   *   <li>>manually enter email address and create account
   *   <li>confirm account and login
   *   <li>Verify user can login via facebook
   * </ol>
   */
  @Test
  @UseUnstablePageLoadStrategy
  public void linkWithNewAccountNoEmailPermission() {
    new RemoveFacebookPageObject(driver).removeWikiaApps(user.getEmail(), user.getPassword());

    SignUpPageObject signUp = new SignUpPageObject(driver).open();
    FacebookSignupModalComponentObject fbModal = signUp.clickFacebookSignUp();

    String userName = "******" + signUp.getTimeStamp();
    String password = "******" + signUp.getTimeStamp();
    String email = credentials.emailQaart2;
    String emailPassword = credentials.emailPasswordQaart2;
    fbModal.createAccountNoEmail(email, emailPassword, userName, password);

    AlmostTherePageObject almostThere = new AlmostTherePageObject(driver);
    almostThere.confirmAccountAndLogin(email, emailPassword, userName, password, wikiURL);
  }
  /**
   * 1. Click facebook login in dropdown menu 2. Enter existing wikia credentials to link facebook
   * and wikia accounts 3. login 4. Verify user can login via wikia username/pwd 5. Disconnect
   * facebook via prefs for cleanup
   */
  @Test
  @UseUnstablePageLoadStrategy
  public void linkWithExistingWikiaAccount() {
    new RemoveFacebookPageObject(driver)
        .removeWikiaApps(user.getEmail(), user.getPassword())
        .logOutFB();

    DropDownComponentObject dropDown = new DropDownComponentObject(driver);
    dropDown.openWikiPage(wikiURL);
    dropDown.appendToUrl("noads=1");
    dropDown.openDropDown();
    dropDown.logInViaFacebook(user.getEmail(), user.getPassword());

    FacebookSignupModalComponentObject fbModal = new FacebookSignupModalComponentObject(driver);
    fbModal.acceptWikiaAppPolicy();
    fbModal.loginExistingAccount(credentials.userName13, credentials.password13);
    dropDown.verifyUserLoggedIn(credentials.userName13);
  }