blob: 0a0a5d56dcf2077fc709f6c2d18729b3851e3931 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License") + you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.openmeetings.test.selenium;
import java.util.Date;
import org.junit.Test;
import org.openqa.selenium.Alert;
import org.openqa.selenium.WebElement;
import com.googlecode.wicket.jquery.ui.widget.dialog.DialogButtons;
public class TestSignUp extends AbstractTestDefaults {
String pass = "pass";
@Override
public boolean getDoTearDownAfterTest() {
return false;
}
@Test
public void testSignUp() throws Exception {
try {
driver.get(getBASE_URL());
String currentRandomCounter = "" + ((new Date().getTime())/1000);
String userName = "seba" + currentRandomCounter;
String email = "hans." + currentRandomCounter + "@openmeetings.apache.org";
super.testIsInstalledAndDoInstallation();
WebElement signUpButton = SeleniumUtils.findElement(driver,
"//button[span[contains(text(), '" + getString(123) + "')]]", true, true);
signUpButton.click();
// ##################################
// Test validation message for passwords to be identical
// ##################################
doSignUp("Hans","Muster", userName, "pw", "pw2", email);
//Find Error label-id 232 "Please enter two identical passwords"
SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(232) + "')]", true, true);
// ##################################
// Sign up with user and sign in
// ##################################
doSignUp("Hans","Muster", userName, pass, pass, email);
//Check for popup with success message and email to check
//Labelid 674
SeleniumUtils.findElement(driver, "//span[contains(text(), '" + getString(674) + "')]", true, true);
//click button to close popup
WebElement signUpSucessPopUpOkButton = SeleniumUtils.findElement(driver,
"//button[span[contains(text(), '" + DialogButtons.OK.toString() + "')]]", true, true);
signUpSucessPopUpOkButton.click();
//Login with user
SeleniumUtils.inputText(driver, "login", userName);
SeleniumUtils.inputText(driver, "pass", pass);
//click labelid 112 "Sign In"
WebElement signInButton = SeleniumUtils.findElement(driver,
"//button[span[contains(text(), '" + getString(112) + "')]]", true, true);
signInButton.click();
// check for some text in dashbaord, labelid 281, "Help and support"
SeleniumUtils.elementExists(driver,
"//h3[contains(text(), '" + getString(281) + "')]", true);
//sign out
WebElement signOutLink = SeleniumUtils.findElement(driver,
"//a[contains(text(), '" + getString(310) + "')]", true, true);
signOutLink.click();
Alert alert = driver.switchTo().alert();
alert.accept();
// ##################################
// Sign up with same user and email and check duplicate messages
// ##################################
signUpButton = SeleniumUtils.findElement(driver,
"//button[span[contains(text(), '" + getString(123) + "')]]", true, true);
signUpButton.click();
doSignUp("Hans","Muster", userName, pass, pass, email);
//Find Error label-id 105, The username is already used
SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(105) + "')]", true, true);
//Find Error label-id 1000, This email is already used by another user.
SeleniumUtils.findElement(driver, "//span[@class='feedbackPanelERROR'][contains(text(), '" + getString(1000) + "')]", true, true);
} catch (Exception e) {
SeleniumUtils.makeScreenShot(this.getClass().getSimpleName(), e,
driver);
throw e;
}
}
private void doSignUp(String firstName, String lastName, String login, String password,
String confirmPassword, String email) throws Exception {
SeleniumUtils.inputText(driver, "firstName", firstName);
SeleniumUtils.inputText(driver, "lastName", lastName);
SeleniumUtils.inputText(driver, "//input[@name='login']", login);
SeleniumUtils.inputText(driver, "password", password);
SeleniumUtils.inputText(driver, "confirmPassword", confirmPassword);
SeleniumUtils.inputText(driver, "email", email);
WebElement submitButton = SeleniumUtils.findElement(driver,
"//button[span[contains(text(), 'Register')]]", true, true);
submitButton.click();
}
}