http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/AbstractTestDefaults.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/AbstractTestDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/AbstractTestDefaults.java
new file mode 100644
index 0000000..af854f4
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/AbstractTestDefaults.java
@@ -0,0 +1,229 @@
+/*
+ * 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.selenium;
+
+import java.util.List;
+
+import org.apache.openmeetings.AbstractSpringTest;
+import org.apache.openmeetings.db.dao.label.LabelDao;
+import org.junit.After;
+import org.junit.Before;
+import org.junit.experimental.categories.Category;
+import org.openqa.selenium.Keys;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.openqa.selenium.firefox.FirefoxDriver;
+import org.openqa.selenium.firefox.FirefoxOptions;
+import org.openqa.selenium.firefox.FirefoxProfile;
+
+@Category(SeleniumTests.class)
+public abstract class AbstractTestDefaults extends AbstractSpringTest {
+       public WebDriver driver = null;
+
+       private String BASE_URL = "http://localhost:5080/openmeetings";;
+       private String username = "swagner";
+       private String userpass = "qweqwe";
+       private String groupName = "seleniumtest";
+       private String email = "[email protected]";
+       private String locale = "en-us";
+
+
+       public String getBASE_URL() {
+               return BASE_URL;
+       }
+
+       public String getUsername() {
+               return username;
+       }
+
+       public String getUserpass() {
+               return userpass;
+       }
+
+       public String getGroupName() {
+               return groupName;
+       }
+
+       public String getEmail() {
+               return email;
+       }
+
+       public Long getLanguageId() {
+               return 1L;
+       }
+
+       public String getLocale() {
+               return locale;
+       }
+
+       // setting this to false can be handy if you run the test from inside
+       // Eclipse, the browser will not shut down after the test so you can 
start
+       // to diagnose the test issue
+       public boolean doTearDownAfterTest = false;
+
+       public String getString(String key) {
+               return LabelDao.getString(key, getLanguageId());
+       }
+
+       /**
+        * Make method overwrite possible to have custom behavior in tests
+        *
+        * @return
+        */
+       public boolean getDoTearDownAfterTest() {
+               return doTearDownAfterTest;
+       }
+
+       @Before
+       public void setUp() {
+               FirefoxProfile profile = new FirefoxProfile();
+               profile.setPreference("intl.accept_languages", getLocale());
+               driver = new FirefoxDriver(new 
FirefoxOptions().setProfile(profile));
+       }
+
+       /**
+        * This test is a basic test to verify the default loader mechanism 
works
+        * it is not intend to be a part of any sub test
+        *
+        * @throws Exception
+        */
+       //@Test
+       public void smokeTest() throws Exception {
+               try {
+                       driver.get(getBASE_URL());
+
+                       testIsInstalledAndDoInstallation();
+
+                       SeleniumUtils.inputText(driver, "login", getUsername());
+                       SeleniumUtils.inputText(driver, "pass", getUserpass());
+
+                       WebElement signInButton = 
SeleniumUtils.findElement(driver,
+                                       "//button[span[contains(text(), 'Sign 
in')]]", true, true);
+                       signInButton.click();
+
+                       SeleniumUtils.elementExists(driver,
+                                       "//h3[contains(text(), 'Help and 
support')]", true);
+               } catch (Exception e) {
+                       
SeleniumUtils.makeScreenShot(this.getClass().getSimpleName(), e,
+                                       driver);
+                       throw e;
+               }
+       }
+
+       /**
+        * Throws exception in case that test fails, so it is important to not 
catch
+        * that exception but really let the test fail!
+        *
+        * @throws Exception
+        */
+       protected void testIsInstalledAndDoInstallation() throws Exception {
+
+               WebElement wicketExtensionsWizardHeaderTitle = SeleniumUtils
+                               .findElement(driver, 
"wicketExtensionsWizardHeaderTitle", false, true);
+               if (wicketExtensionsWizardHeaderTitle == null) {
+                       return;
+               }
+               if (wicketExtensionsWizardHeaderTitle.getText()
+                               .contains("Installation")) {
+                       System.out.println("Do Installation");
+                       doInstallation();
+               }
+
+       }
+
+       private void doInstallation() throws Exception {
+               Thread.sleep(3000L);
+
+               List<WebElement> buttons_next = 
SeleniumUtils.findElements(driver,
+                               "buttons:next", true);
+
+               buttons_next.get(1).sendKeys(Keys.RETURN);
+
+               Thread.sleep(1000L);
+
+               SeleniumUtils.inputText(driver, "view:cfg.username", 
getUsername());
+               SeleniumUtils.inputText(driver, "view:cfg.password", 
getUserpass());
+               SeleniumUtils.inputText(driver, "view:cfg.email", getEmail());
+               SeleniumUtils.inputText(driver, "view:cfg.group", 
getGroupName());
+
+               buttons_next = SeleniumUtils.findElements(driver, 
"buttons:next", true);
+
+               buttons_next.get(1).sendKeys(Keys.RETURN);
+
+               Thread.sleep(1000L);
+
+               buttons_next = SeleniumUtils.findElements(driver, 
"buttons:next", true);
+
+               buttons_next.get(1).sendKeys(Keys.RETURN);
+
+               Thread.sleep(1000L);
+
+               buttons_next = SeleniumUtils.findElements(driver, 
"buttons:next", true);
+
+               buttons_next.get(1).sendKeys(Keys.RETURN);
+
+               Thread.sleep(1000L);
+
+               buttons_next = SeleniumUtils.findElements(driver, 
"buttons:next", true);
+
+               buttons_next.get(1).sendKeys(Keys.RETURN);
+
+               Thread.sleep(2000L);
+
+               List<WebElement> elements = SeleniumUtils.findElements(driver,
+                               "buttons:finish", true);
+
+               elements.get(1).sendKeys(Keys.RETURN);
+
+               long maxMilliSecondsWait = 120000;
+
+               while (maxMilliSecondsWait > 0) {
+
+                       // check if installation is complete by searching for 
the link on
+                       // the success page
+                       WebElement enterApplicationLink = 
SeleniumUtils.findElement(driver,
+                                       "//a[contains(@href,'install')]", 
false, true);
+
+                       if (enterApplicationLink == null) {
+                               System.out
+                                               .println("Installation running 
- wait 3 more seconds and check again");
+
+                               Thread.sleep(3000L);
+                               maxMilliSecondsWait -= 3000;
+                       } else {
+                               maxMilliSecondsWait = 0;
+
+                               enterApplicationLink.click();
+
+                               return;
+                       }
+               }
+
+               throw new Exception("Timeout during installation");
+       }
+
+       @After
+       public void tearDown() {
+               if (getDoTearDownAfterTest()) {
+                       driver.close();
+                       driver.quit();
+               }
+       }
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/HeavyTests.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/HeavyTests.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/HeavyTests.java
new file mode 100644
index 0000000..a1eaca6
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/HeavyTests.java
@@ -0,0 +1,23 @@
+/*
+ * 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.selenium;
+
+public @interface HeavyTests {
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumTests.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumTests.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumTests.java
new file mode 100644
index 0000000..5b4351c
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumTests.java
@@ -0,0 +1,23 @@
+/*
+ * 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.selenium;
+
+public @interface SeleniumTests {
+
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumUtils.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumUtils.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumUtils.java
new file mode 100644
index 0000000..8b860a8
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/SeleniumUtils.java
@@ -0,0 +1,229 @@
+/*
+ * 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.selenium;
+
+import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
+
+import java.io.File;
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
+import org.apache.commons.io.FileUtils;
+import org.openqa.selenium.By;
+import org.openqa.selenium.OutputType;
+import org.openqa.selenium.TakesScreenshot;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+
+public class SeleniumUtils {
+       private static final Logger log = 
Red5LoggerFactory.getLogger(SeleniumUtils.class, getWebAppRootKey());
+       // we need to retry some actions because our web site is dynamic
+       static int numberOfRetries = 10;
+
+       // we need to sleep to make sure Ajax could complete whatever it does
+       static long defaultSleepInterval = 1000;
+
+       public static void inputText(WebDriver driver, String search,
+                       String inputText) throws Exception {
+               WebElement element = SeleniumUtils.findElement(driver, search, 
true, true);
+
+               //clear text before adding input
+               element.clear();
+
+               // Would make send to check if this element is really an input 
text
+               element.sendKeys(inputText);
+       }
+
+       public static void click(WebDriver driver, String search) throws 
Exception {
+               WebElement element = SeleniumUtils.findElement(driver, search, 
true, true);
+               element.click();
+       }
+
+       /**
+        *
+        * @param driver
+        * @param search
+        * @param throwException
+        *            under some circumstance you do't want to exit the test 
here
+        * @return
+        * @throws Exception
+        */
+       public static List<WebElement> findElements(WebDriver driver, String 
search,
+                       boolean throwException) throws Exception {
+               for (int i = 0; i < numberOfRetries; i++) {
+                       List<WebElement> elements = _findElement(driver, 
search);
+                       if (elements != null) {
+                               return elements;
+                       }
+
+                       Thread.sleep(defaultSleepInterval);
+               }
+
+               if (throwException) {
+                       throw new Exception("Could not find element with 
specified path "
+                                       + search);
+               }
+
+               return null;
+       }
+
+       /**
+        *
+        * @param driver
+        * @param search
+        * @param throwException
+        *            under some circumstance you do't want to exit the test 
here
+        * @param onlyReturnVisisbleElement TODO
+        * @return
+        * @throws Exception
+        */
+       public static WebElement findElement(WebDriver driver, String search,
+                       boolean throwException, boolean 
onlyReturnVisisbleElement) throws Exception {
+               for (int i = 0; i < numberOfRetries; i++) {
+                       List<WebElement> elements = _findElement(driver, 
search);
+                       if (elements != null) {
+
+                               if (!onlyReturnVisisbleElement) {
+                                       return elements.get(0);
+                               }
+
+                               for (WebElement element : elements) {
+                                       if (element.isDisplayed()) {
+                                               return element;
+                                       }
+                               }
+
+                       }
+
+                       Thread.sleep(defaultSleepInterval);
+               }
+
+               if (throwException) {
+                       throw new Exception("Could not find element with 
specified path "
+                                       + search);
+               }
+
+               return null;
+       }
+
+       private static By[] _getSearchArray(String search) {
+               //If xpath we have to use it, if xpath is used with 
By.className(...) there will be an exception
+               if (search.startsWith("//")) {
+                       return new By[] { By.xpath(search) };
+               } else {
+                       return new By[] { By.id(search), By.name(search), 
By.className(search),
+                                       By.tagName(search), By.xpath(search) };
+               }
+       }
+
+       private static List<WebElement> _findElement(WebDriver driver, String 
search) {
+               for (By by : _getSearchArray(search)) {
+                       try {
+                               List<WebElement> elements = 
driver.findElements(by);
+                               if (elements != null && elements.size() > 0) {
+                                       return elements;
+                               }
+                       } catch (Exception e) {
+                               // Do not show any warnings
+                       }
+               }
+               return null;
+       }
+
+       public static void elementExists(WebDriver driver, String search,
+                       boolean shouldExist) throws Exception {
+               Thread.sleep(defaultSleepInterval);
+
+               boolean doesExist = !shouldExist;
+
+               for (int i = 0; i < numberOfRetries; i++) {
+                       doesExist = checkExists(driver, search);
+                       if (doesExist == shouldExist) {
+                               break;
+                       }
+
+                       Thread.sleep(defaultSleepInterval);
+               }
+
+               if (doesExist != shouldExist) {
+                       if (shouldExist) {
+                               throw new Exception("Element could not be 
found: " + search);
+                       } else {
+                               throw new Exception("Unexpected Element was 
found: " + search);
+                       }
+               }
+       }
+
+       private static boolean checkExists(WebDriver driver, String search) {
+               for (By by : _getSearchArray(search)) {
+                       try {
+                               List<WebElement> element = 
driver.findElements(by);
+                               if (element.size() > 0) {
+                                       return true;
+                               }
+                       } catch (Exception e) {
+                               // Do not show any warnings
+                       }
+               }
+               return false;
+       }
+
+       public static void makeScreenShot(String testName, Exception e,
+                       WebDriver driver) {
+               try {
+                       DateFormat df = new 
SimpleDateFormat("MM-dd-yyyy_HH-mm-ss");
+                       String fileName = e.getMessage().replace(" ", "_");
+                       fileName = fileName.replaceAll("(\r\n|\n)", "");
+                       fileName = fileName.replaceAll("/", "");
+
+                       if (fileName.length() > 100) {
+                               fileName = fileName.substring(0, 100);
+                       }
+
+                       fileName = fileName + "_" + df.format(new Date()) + 
".png";
+                       File screenShotFile = ((TakesScreenshot) driver)
+                                       .getScreenshotAs(OutputType.FILE);
+
+                       String path = "." + File.separatorChar + "build"
+                                       + File.separatorChar + "screenshots" + 
File.separatorChar
+                                       + testName;
+
+                       File screenshotFolder = new File(path);
+                       if (!screenshotFolder.exists()) {
+                               screenshotFolder.mkdirs();
+                       }
+
+                       System.out.println("screenshot copy from: "
+                                       + screenShotFile.getAbsolutePath());
+                       System.out.println("Length Filename: " + 
fileName.length()
+                                       + " - Writing screenshot to: " + path + 
File.separatorChar
+                                       + fileName);
+
+                       FileUtils.moveFile(screenShotFile, new File(path
+                                       + File.separatorChar + fileName));
+               } catch (Exception err) {
+                       log.error("Error", err);
+               }
+
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/TestSignUp.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/TestSignUp.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/TestSignUp.java
new file mode 100644
index 0000000..4ee6d17
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/selenium/TestSignUp.java
@@ -0,0 +1,128 @@
+/*
+ * 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.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
+                       SeleniumUtils.findElement(driver, 
"//span[contains(text(), '" + getString("warn.notverified") + "')]", 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);
+
+                       SeleniumUtils.findElement(driver, 
"//span[@class='feedbackPanelERROR'][contains(text(), '" + 
getString("error.login.inuse") + "')]", true, true);
+
+                       SeleniumUtils.findElement(driver, 
"//span[@class='feedbackPanelERROR'][contains(text(), '" + 
getString("error.email.inuse") + "')]", 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();
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
new file mode 100644
index 0000000..9a8b2cc
--- /dev/null
+++ 
b/openmeetings-web/src/test/java/org/apache/openmeetings/smoke/TestSmokeBasic.java
@@ -0,0 +1,36 @@
+/*
+ * 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.smoke;
+
+import static org.junit.Assert.assertNotNull;
+
+import org.apache.openmeetings.AbstractJUnitDefaults;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.junit.Test;
+import org.springframework.beans.factory.annotation.Autowired;
+
+public class TestSmokeBasic extends AbstractJUnitDefaults {
+       @Autowired
+       private UserDao userDao;
+
+       @Test
+       public void createErrorValueAndTest() {
+               assertNotNull(userDao.get(1L));
+       }
+}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
deleted file mode 100644
index 218b68a..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
+++ /dev/null
@@ -1,194 +0,0 @@
-/*
- * 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;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getConfigKeyCryptClassName;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.setWicketApplicationName;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.Date;
-import java.util.UUID;
-
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.user.Address;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.installation.ImportInitvalues;
-import org.apache.openmeetings.installation.InstallationConfig;
-import org.junit.Before;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public abstract class AbstractJUnitDefaults extends AbstractSpringTest {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(AbstractJUnitDefaults.class);
-       public static final int ONE_HOUR = 60 * 60 * 1000;
-
-       protected static final String username = "admin";
-       protected static final String userpass = "12345";
-       private static final String group = "smoketest";
-       private static final String timeZone = "Europe/Berlin";
-       private static final String email = "[email protected]";
-
-       @Autowired
-       private AppointmentDao appointmentDao;
-       @Autowired
-       private UserDao userDao;
-       @Autowired
-       private ImportInitvalues importInitvalues;
-       @Autowired
-       protected ConfigurationDao cfgDao;
-
-       @Before
-       public void setUp() throws Exception {
-               setWicketApplicationName("openmeetings");
-               cfgDao.getCryptKey();
-               if (userDao.count() < 1) {
-                       makeDefaultScheme();
-                       log.info("Default scheme created successfully");
-               } else {
-                       log.info("Default scheme already created");
-               }
-               if (getConfigKeyCryptClassName() == null) {
-                       assertNotNull("Crypt class name should not be null", 
cfgDao.getCryptKey());
-               }
-       }
-
-       public Appointment getAppointment() {
-               Date start = new Date();
-               Date end = new Date();
-               end.setTime(start.getTime() + ONE_HOUR);
-               return getAppointment(start, end);
-       }
-
-       public Appointment getAppointment(Date start, Date end) {
-               return getAppointment(userDao.get(1L), start, end);
-       }
-
-       public Appointment getAppointment(User owner, Date start, Date end) {
-               return getAppointment(owner, null, start, end);
-       }
-
-       public Appointment getAppointment(User owner, Room r, Date start, Date 
end) {
-               assertNotNull("Can't access to appointment dao implimentation", 
appointmentDao);
-
-               // add new appointment
-               Appointment ap = new Appointment();
-
-               ap.setTitle("appointmentName");
-               ap.setLocation("appointmentLocation");
-
-               ap.setStart(start);
-               ap.setEnd(end);
-               ap.setDescription("appointmentDescription");
-               ap.setInserted(new Date());
-               ap.setDeleted(false);
-               ap.setIsDaily(false);
-               ap.setIsWeekly(false);
-               ap.setIsMonthly(false);
-               ap.setIsYearly(false);
-               ap.setPasswordProtected(false);
-
-               ap.setOwner(owner);
-               ap.setConnectedEvent(false);
-
-               if (ap.getReminder() == null) {
-                       ap.setReminder(Appointment.Reminder.none);
-               }
-
-               if (r == null) {
-                       r = new Room();
-                       r.setType(Room.Type.conference);
-                       r.setAppointment(true);
-               }
-               ap.setRoom(r);
-               return ap;
-       }
-
-       public Appointment createAppointment(Appointment ap) {
-               // add new appointment
-               ap = appointmentDao.update(ap, null, false);
-               assertNotNull("Cann't add appointment", ap.getId());
-               return ap;
-       }
-
-       public User getUser() throws Exception {
-               return getUser(UUID.randomUUID().toString());
-       }
-
-       protected String createPass() {
-               return "pass1_!@#$%_A";
-       }
-
-       public User getUser(String uuid) throws Exception {
-               User u = new User();
-               // add user
-               u.setFirstname("firstname" + uuid);
-               u.setLastname("lastname" + uuid);
-               u.setLogin("login" + uuid);
-               u.setAddress(new Address());
-               u.getAddress().setEmail(String.format("email%s@local", uuid));
-               u.setRights(UserDao.getDefaultRights());
-               u.setTimeZoneId("Asia/Bangkok");
-               u.updatePassword(cfgDao, createPass());
-               u.setLanguageId(1L);
-               return u;
-       }
-
-       public User createUser() throws Exception {
-               return createUser(UUID.randomUUID().toString());
-       }
-
-       public User createUser(String uuid) throws Exception {
-               return createUser(getUser(uuid));
-       }
-
-       public User createUser(User u) {
-               u = userDao.update(u, null);
-               assertNotNull("Can't add user", u);
-               return u;
-       }
-
-       private void makeDefaultScheme() throws Exception {
-               InstallationConfig cfg = new InstallationConfig();
-               cfg.setUsername(username);
-               cfg.setPassword(userpass);
-               cfg.setEmail(email);
-               cfg.setGroup(group);
-               cfg.setTimeZone(timeZone);
-               importInitvalues.loadAll(cfg, false);
-       }
-
-       public User getContact(String uuid, Long ownerId) {
-               return userDao.getContact("email" + uuid, "firstname" + uuid, 
"lastname" + uuid, ownerId);
-       }
-
-       public User createUserContact(Long ownerId) {
-               return 
createUserContact(getContact(UUID.randomUUID().toString(), ownerId), ownerId);
-       }
-
-       public User createUserContact(User user, Long ownerId) {
-               user = userDao.update(user, ownerId);
-               assertNotNull("Cann't add user", user);
-               return user;
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
deleted file mode 100644
index c91eb34..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractSpringTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * 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;
-
-import static org.junit.Assert.fail;
-
-import org.apache.openmeetings.db.dao.label.LabelDao;
-import org.apache.openmeetings.util.OmFileHelper;
-import org.apache.tomcat.util.scan.Constants;
-import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
-import org.springframework.test.context.ContextConfiguration;
-import org.springframework.test.context.TestExecutionListeners;
-import 
org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-
-@RunWith(SpringJUnit4ClassRunner.class)
-@TestExecutionListeners({})
-@ContextConfiguration(locations={"classpath:applicationContext.xml"}, 
inheritLocations = true)
-public abstract class AbstractSpringTest extends 
AbstractJUnit4SpringContextTests {
-
-       @BeforeClass
-       public static void init() {
-               setOmHome();
-               System.setProperty(Constants.SKIP_JARS_PROPERTY, "*");
-               LabelDao.initLanguageMap();
-               if (LabelDao.getLanguages().isEmpty()) {
-                       fail("Failed to set languages");
-               }
-       }
-
-       protected static void setOmHome() {
-               String webappsDir = System.getProperty("om.home", ".");
-               OmFileHelper.setOmHome(webappsDir);
-               if (!OmFileHelper.getOmHome().exists() || 
!OmFileHelper.getOmHome().isDirectory()) {
-                       fail("Invalid directory is specified as OM HOME: " + 
webappsDir);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
deleted file mode 100644
index 5d2ab66..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractWicketTester.java
+++ /dev/null
@@ -1,75 +0,0 @@
-/*
- * 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;
-
-import static 
org.apache.openmeetings.db.util.ApplicationHelper.getWicketTester;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.Serializable;
-import java.util.List;
-
-import org.apache.openmeetings.db.entity.user.User.Type;
-import org.apache.openmeetings.util.OmException;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.tester.WicketTester;
-
-import com.googlecode.wicket.jquery.ui.widget.dialog.AbstractDialog;
-import com.googlecode.wicket.jquery.ui.widget.dialog.ButtonAjaxBehavior;
-
-public class AbstractWicketTester extends AbstractJUnitDefaults {
-       protected WicketTester tester;
-
-       @Override
-       public void setUp() throws Exception {
-               super.setUp();
-               tester = getWicketTester();
-               assertNotNull("Web session should not be null", 
WebSession.get());
-       }
-
-       public void login(String login, String password) {
-               WebSession s = WebSession.get();
-               try {
-                       if (login != null && password != null) {
-                               s.signIn(login, password, Type.user, null);
-                       } else {
-                               s.signIn(username, userpass, Type.user, null);
-                       }
-               } catch (OmException e) {
-                       fail(e.getMessage());
-               }
-               assertTrue("Web session is not signed in for user: " + (login 
!= null ? login : username), s.isSignedIn());
-       }
-
-       public <T extends Serializable> ButtonAjaxBehavior 
getButtonBehavior(String path, String name) {
-               Args.notNull(path, "path");
-               Args.notNull(name, "name");
-               @SuppressWarnings("unchecked")
-               AbstractDialog<T> dialog = 
(AbstractDialog<T>)tester.getComponentFromLastRenderedPage(path);
-               List<ButtonAjaxBehavior> bl = 
dialog.getBehaviors(ButtonAjaxBehavior.class);
-               for (ButtonAjaxBehavior bb : bl) {
-                       if (name.equals(bb.getButton().getName())) {
-                               return bb;
-                       }
-               }
-               return null;
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
deleted file mode 100644
index f82ff95..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/backup/TestOldBackups.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/*
- * 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.backup;
-
-import static org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_CRYPT;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-import static org.junit.Assert.fail;
-
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.InputStream;
-
-import org.apache.openmeetings.backup.BackupImport;
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.MeetingMemberDao;
-import org.apache.openmeetings.db.dao.room.RoomDao;
-import org.apache.openmeetings.db.dao.room.RoomGroupDao;
-import org.apache.openmeetings.db.dao.user.GroupDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.basic.Configuration;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.After;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestOldBackups extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestOldBackups.class, getWebAppRootKey());
-
-       @Autowired
-       private BackupImport backupController;
-       @Autowired
-       private GroupDao groupDao;
-       @Autowired
-       private UserDao userDao;
-       @Autowired
-       private RoomDao roomDao;
-       @Autowired
-       private AppointmentDao appointmentDao;
-       @Autowired
-       private MeetingMemberDao meetingMemberDao;
-       @Autowired
-       private RoomGroupDao roomGroupDao;
-       private String cryptClass = null;
-
-       @Override
-       public void setUp() throws Exception {
-               super.setUp();
-               // Crypt class need to be preserved here to avoid overriding by 
backup import
-               cryptClass = cfgDao.getCryptKey();
-       }
-
-       @After
-       public void tearDown() {
-               Configuration cfg = cfgDao.get(CONFIG_CRYPT);
-               assertNotNull("Not null config should be returned", cfg);
-               cfg.setValue(cryptClass);
-               cfgDao.update(cfg, null);
-       }
-
-       @Test
-       public void importOldVersions() {
-               String backupsDir = System.getProperty("backups.dir", ".");
-               File backupsHome = new File(backupsDir);
-
-               if (!backupsHome.exists() || !backupsHome.isDirectory()) {
-                       fail("Invalid directory is specified for backup files: 
" + backupsDir);
-               }
-               long groupCount = 0;
-               long userCount = 0;
-               long roomCount = 0;
-               long roomGroupCount = 0;
-               long apptCount = 0;
-               long meetingMembersCount = 0;
-               for (File backup : backupsHome.listFiles()) {
-                       String name = backup.getName();
-                       log.debug("Import of backup file : '" + name + "' is 
started ...");
-                       try (InputStream is = new FileInputStream(backup)) {
-                               backupController.performImport(is);
-                               long newGroupCount = groupDao.count();
-                               long newUserCount = userDao.count();
-                               long newRoomCount = roomDao.count();
-                               long newRoomGroupCount = 
roomGroupDao.get().size();
-                               long newApptCount = appointmentDao.get().size();
-                               long newMeetingMembersCount = 
meetingMemberDao.getMeetingMembers().size();
-                               assertTrue("Zero groups were imported from " + 
name, newGroupCount > groupCount);
-                               assertTrue("Zero users were imported from " + 
name, newUserCount > userCount);
-                               assertTrue("Zero rooms were imported from " + 
name, newRoomCount > roomCount);
-                               assertTrue("Zero room groups were imported from 
" + name, newRoomGroupCount > roomGroupCount);
-                               assertTrue("Zero appointments were imported 
from " + name, newApptCount > apptCount);
-                               assertTrue("Zero meeting members were imported 
from " + name, newMeetingMembersCount > meetingMembersCount);
-
-                               groupCount = newGroupCount;
-                               userCount = newUserCount;
-                               roomCount = newRoomCount;
-                               roomGroupCount = newRoomGroupCount;
-                               apptCount = newApptCount;
-                               meetingMembersCount = newMeetingMembersCount;
-                       } catch (Exception e) {
-                               throw new RuntimeException("Unexpected 
exception while importing backup: " + name, e);
-                       }
-                       log.debug("... Done.");
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
deleted file mode 100644
index b1cee5b..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentAddAppointment.java
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import java.time.LocalDateTime;
-import java.time.ZoneId;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.UUID;
-
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.db.entity.calendar.Appointment.Reminder;
-import org.apache.openmeetings.db.entity.calendar.MeetingMember;
-import org.apache.openmeetings.db.entity.room.Room;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.service.calendar.AppointmentLogic;
-import org.apache.openmeetings.test.AbstractWicketTester;
-import org.apache.openmeetings.web.app.WebSession;
-import org.apache.wicket.util.string.StringValue;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestAppointmentAddAppointment extends AbstractWicketTester {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestAppointmentAddAppointment.class, 
getWebAppRootKey());
-
-       @Autowired
-       private AppointmentLogic appointmentLogic;
-       @Autowired
-       private AppointmentDao appointmentDao;
-       @Autowired
-       private UserDao userDao;
-
-       private static void setTime(Appointment a) {
-               
a.setStart(Date.from(LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant()));
-               
a.setEnd(Date.from(LocalDateTime.now().plusHours(1).atZone(ZoneId.systemDefault()).toInstant()));
-       }
-
-       @Test
-       public void saveAppointment() throws Exception {
-               log.debug("- saveAppointment");
-
-               Calendar start = Calendar.getInstance();
-               start.setTimeInMillis(start.getTimeInMillis() + 600000);
-
-               Calendar end = Calendar.getInstance();
-               end.setTimeInMillis(start.getTimeInMillis() + 600000);
-
-               String appointmentName = "Test 01";
-               String appointmentDescription = "Descr";
-               Long userId = 1L;
-               String appointmentLocation = "office";
-               Boolean isMonthly = false;
-               Boolean isDaily = false;
-               Boolean isWeekly = false;
-               String remind = Appointment.Reminder.ical.name();
-               Boolean isYearly = false;
-               String[] mmClient = new String[1];
-               for (int i = 0; i < 1; i++) {
-                       mmClient[0] = createClientObj("firstname" + i, 
"lastname" + i,
-                                       "first" + i + ".last" + i + 
"@webbase-design.de", "Etc/GMT+1");
-               }
-               Long languageId = 1L;
-               Long roomType = 1L;
-
-               Appointment a = appointmentLogic.getAppointment(appointmentName,
-                               appointmentLocation, appointmentDescription,
-                               start, end, isDaily, isWeekly,
-                               isMonthly, isYearly, remind, mmClient,
-                               roomType, languageId, false, "", -1, userId);
-               a = appointmentDao.update(a, userId);
-
-               Thread.sleep(3000);
-
-               appointmentLogic.doScheduledMeetingReminder();
-
-               Thread.sleep(3000);
-
-               assertNotNull("Saved appointment should have valid id: " + 
a.getId(), a.getId());
-       }
-
-       @Test
-       public void testCreate() {
-               Appointment a = new Appointment();
-               a.setTitle("Test title");
-               setTime(a);
-               a.setReminder(Reminder.ical);
-               a.setMeetingMembers(new ArrayList<>());
-               User owner = userDao.get(1L);
-               a.setOwner(owner);
-               a.setRoom(new Room());
-               a.getRoom().setAppointment(true);
-               a.getRoom().setType(Room.Type.conference);
-               for (int i = 0; i < 3; ++i) {
-                       MeetingMember mm = new MeetingMember();
-                       mm.setUser(getContact(UUID.randomUUID().toString(), 
owner.getId()));
-                       a.getMeetingMembers().add(mm);
-               }
-               a = appointmentDao.update(a, owner.getId());
-               assertNotNull("Saved appointment should have valid id: " + 
a.getId(), a.getId());
-               assertEquals("Saved appointment should have corect count of 
guests: ", 3, a.getMeetingMembers().size());
-               for (MeetingMember mm : a.getMeetingMembers()) {
-                       assertNotNull("Saved guest should have valid id: ", 
mm.getId());
-                       assertNotNull("Saved guest should have valid 
invitation: ", mm.getInvitation());
-                       assertNotNull("Saved guest should have invitation with 
ID: ", mm.getInvitation().getId());
-               }
-
-               WebSession ws = WebSession.get();
-               Appointment a1 = appointmentDao.get(a.getId());
-               ws.checkHashes(StringValue.valueOf(""), 
StringValue.valueOf(a1.getMeetingMembers().get(0).getInvitation().getHash()));
-               assertTrue("Login via secure hash should be successful", 
ws.isSignedIn());
-       }
-
-       private static String createClientObj(String firstname, String 
lastname, String email, String jNameTimeZone) {
-               StringBuilder sb = new StringBuilder();
-               sb.append(",") //memberId
-                       .append(firstname).append(",")
-                       .append(lastname).append(",")
-                       .append(email).append(",")
-                       .append(",") //userId
-                       .append(jNameTimeZone);
-               return sb.toString();
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
deleted file mode 100644
index 887ff90..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestAppointmentSchedulerTask.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.openmeetings.service.calendar.AppointmentLogic;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestAppointmentSchedulerTask extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestAppointmentSchedulerTask.class, 
getWebAppRootKey());
-
-       @Autowired
-       private AppointmentLogic appointmentLogic;
-
-       @Test
-       public void doIt() {
-               log.debug("- 1 MeetingReminderJob.execute");
-               log.warn("- 2 MeetingReminderJob.execute");
-               try {
-                       appointmentLogic.doScheduledMeetingReminder();
-
-                       assertTrue(true);
-               } catch (Exception err){
-                       log.error("execute",err);
-               }
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
deleted file mode 100644
index 84a2cf8..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import java.text.SimpleDateFormat;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.Iterator;
-import java.util.List;
-
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestDatabaseStructureAppointment extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestDatabaseStructureAppointment.class, 
getWebAppRootKey());
-
-       @Autowired
-       private AppointmentDao appointmentDao;
-
-       @Test
-       public void testAddingGroup() {
-               try {
-                       Calendar cal = Calendar.getInstance();
-                       cal.set(2008, 9, 2);
-                       cal.get(Calendar.DAY_OF_MONTH);
-                       cal.getTime();
-
-                       SimpleDateFormat format = new 
SimpleDateFormat("yyyy-MM-dd");
-                       Date date = format.parse("2008-17-08");
-                       Date date2 = format.parse("2008-18-08");
-
-                       List<Appointment> listAppoints = 
appointmentDao.getInRange(1L, date, date2);
-                       // List<Appointment> listAppoints = 
appointmentDao.searchAppointmentsByName("%");
-                       // appointmentDao.getNextAppointmentById(1L);
-                       // appointmentDao.addAppointment("mezo", 1L, 
"Pforzheim", "zweiter", Calendar.getInstance().getTime(),
-                       //              date, null, true, null, null, 1L,1L);
-                       // appointmentDao.addAppointment("testap", "erster 
Test",Calendar.getInstance().getTime(),
-                       //              Calendar.getInstance().getTime(), true, 
false, false, false, new Long(1), 1L);
-                       log.debug("Anzahl: " + listAppoints.size());
-
-                       for (Appointment appoints : listAppoints) {
-                               log.debug("Termin: " + appoints.getTitle() + " 
startDate: " + appoints.getStart() + " endDate: " + appoints.getEnd());
-                               log.debug("MeetingMembers: " + 
appoints.getMeetingMembers().size());
-                       }
-
-                       for (Iterator<Appointment> iter = 
listAppoints.iterator(); iter.hasNext();) {
-                               log.debug("" + iter.next());
-                       }
-               } catch (Exception err) {
-                       log.error("[testAddingGroup]", err);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
deleted file mode 100644
index e20cd3f..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetAppointmentByRange.java
+++ /dev/null
@@ -1,105 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertEquals;
-
-import java.util.ArrayList;
-import java.util.Calendar;
-
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.db.entity.calendar.MeetingMember;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestDatabaseStructureGetAppointmentByRange extends 
AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestDatabaseStructureGetAppointmentByRange.class, 
getWebAppRootKey());
-
-       @Autowired
-       private AppointmentDao appointmentDao;
-
-       @Test
-       public void test() {
-               log.debug("Test started");
-               Long userId = 1L;
-
-               Calendar now = Calendar.getInstance();
-               Calendar rangeStart = Calendar.getInstance();
-               rangeStart.setTime(now.getTime());
-               rangeStart.add(Calendar.DATE, -1);
-               Calendar rangeEnd = Calendar.getInstance();
-               rangeEnd.add(Calendar.DATE, 1);
-               rangeEnd.setTime(now.getTime());
-
-               Calendar a1End = Calendar.getInstance();
-               a1End.setTime(now.getTime());
-               a1End.add(Calendar.HOUR_OF_DAY, 1);
-               Appointment a1 = getAppointment(now.getTime(), a1End.getTime());
-               a1.setTitle("AppointmentByRange_a1");
-
-               Appointment a2 = getAppointment(now.getTime(), a1End.getTime());
-               a2.setTitle("AppointmentByRange_a2");
-               a2.setMeetingMembers(new ArrayList<MeetingMember>());
-               MeetingMember mm1 = new MeetingMember();
-               mm1.setUser(createUserContact(userId));
-               mm1.setAppointment(a2);
-               a2.getMeetingMembers().add(mm1);
-
-               Appointment a3 = getAppointment(now.getTime(), a1End.getTime());
-               a3.setTitle("AppointmentByRange_a3");
-               a3.setMeetingMembers(new ArrayList<MeetingMember>());
-               MeetingMember mm2 = new MeetingMember();
-               mm2.setUser(createUserContact(userId));
-               mm2.setAppointment(a3);
-               a3.getMeetingMembers().add(mm2);
-               MeetingMember mm3 = new MeetingMember();
-               mm3.setUser(createUserContact(userId));
-               mm3.setAppointment(a3);
-               a3.getMeetingMembers().add(mm3);
-
-               a1 = appointmentDao.update(a1, userId);
-               a2 = appointmentDao.update(a2, userId);
-               a3 = appointmentDao.update(a3, userId);
-
-               int a1found = 0, a2found = 0, a3found = 0;
-               for (Appointment a : appointmentDao.getInRange(userId, 
rangeStart.getTime(), rangeEnd.getTime())) {
-                       int mmCount = a.getMeetingMembers() == null ? 0 : 
a.getMeetingMembers().size();
-                       if (a.getId().equals(a1.getId())) {
-                               assertEquals("Inapropriate MeetingMembers 
count", 0, mmCount);
-                               a1found++;
-                       }
-                       if (a.getId().equals(a2.getId())) {
-                               assertEquals("Inapropriate MeetingMembers 
count", 1, mmCount);
-                               a2found++;
-                       }
-                       if (a.getId().equals(a3.getId())) {
-                               assertEquals("Inapropriate MeetingMembers 
count", 2, mmCount);
-                               a3found++;
-                       }
-               }
-               assertEquals("Inappropriate count of appointments without 
members found", 1, a1found);
-               assertEquals("Inappropriate count of appointments with 1 member 
found", 1, a2found);
-               assertEquals("Inappropriate count of appointments with 2 
members found", 1, a3found);
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
deleted file mode 100644
index 8be42f2..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureGetUserStart.java
+++ /dev/null
@@ -1,44 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestDatabaseStructureGetUserStart extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestDatabaseStructureGetUserStart.class, 
getWebAppRootKey());
-
-       @Autowired
-       private UserDao userDao;
-
-       @Test
-       public void testAddingGroup() {
-               try {
-                       userDao.get(new Long(1));
-               } catch (Exception err) {
-                       log.error("[testAddingGroup]", err);
-               }
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
deleted file mode 100644
index 08a0149..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureMeetingMember.java
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * 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.calendar;
-
-
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-
-
-public class TestDatabaseStructureMeetingMember extends AbstractJUnitDefaults {
-
-       @Test
-       public void testUpdateMeetingMember(){
-               //FIXME need to be refactored !!!!
-
-               //MeetingMemberDaoImpl.getInstance().addMeetingMember("Adddd", 
"dir", "1", "2", 1L, 1L, "test");
-               
//MeetingMemberDaoImpl.getInstance().addMeetingMember(firstname, lastname, 
memberStatus, appointmentStatus, appointmentId, userid, email)
-
-
-               //MeetingMemberDaoImpl.getInstance().getMeetingMemberById(1L);
-               //MeetingMemberDaoImpl.getInstance().deleteMeetingMember(2L);
-
-               //meetingMemberDao.updateMeetingMember(1l,"bbbbbb", "dir", "1", 
"2", 1L, 1L, "test", "");
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
deleted file mode 100644
index c928ac1..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureUsersSearch.java
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import java.util.List;
-
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestDatabaseStructureUsersSearch extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestDatabaseStructureUsersSearch.class, 
getWebAppRootKey());
-
-       @Autowired
-       private UserDao userDao;
-
-       @Test
-       public void testAddingGroup(){
-               try {
-                        List<User> users = userDao.get("first", 0, 10, 
"lastname", false, 1L);
-                        log.debug("[result]" + users.size());
-                        log.debug("[records]"+ users);
-               } catch (Exception err) {
-                       log.error("[testAddingGroup]",err);
-               }
-       }
-}
-

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
deleted file mode 100644
index 2df1894..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestGetAppointment.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-
-import java.util.Calendar;
-
-import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.entity.calendar.Appointment;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestGetAppointment extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestGetAppointment.class, getWebAppRootKey());
-
-       @Autowired
-       private AppointmentDao appointmentDao;
-
-       @Test
-       public void getAppoinment() {
-               log.debug("getAppoinment enter");
-               Long userId = 1L;
-
-               Calendar now = Calendar.getInstance();
-               Calendar a1End = Calendar.getInstance();
-               a1End.setTime(now.getTime());
-               a1End.add(Calendar.HOUR_OF_DAY, 1);
-               Appointment a1 = getAppointment(now.getTime(), a1End.getTime());
-               a1.setTitle("GetAppointment");
-
-               a1 = appointmentDao.update(a1, userId);
-
-               Appointment a = appointmentDao.get(a1.getId());
-               assertNotNull("Failed to get Appointment By id", a);
-               assertEquals("Inapropriate MeetingMembers count", 0, 
a.getMeetingMembers() == null ? 0 : a.getMeetingMembers().size());
-       }
-
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestOmCalendar.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestOmCalendar.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestOmCalendar.java
deleted file mode 100644
index 5154bea..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestOmCalendar.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.calendar;
-
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
-
-import org.apache.openmeetings.db.dao.calendar.OmCalendarDao;
-import org.apache.openmeetings.db.dao.user.UserDao;
-import org.apache.openmeetings.db.entity.calendar.OmCalendar;
-import org.apache.openmeetings.db.entity.user.User;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestOmCalendar extends AbstractJUnitDefaults {
-       @Autowired
-       private OmCalendarDao calendarDao;
-       @Autowired
-       private UserDao userDao;
-
-       @Test
-       public void saveCalendar() {
-               OmCalendar calendar = new OmCalendar();
-               Long userId = 1L;
-               User owner = userDao.get(userId);
-               String title = "Calendar Title", href = 
"http://caldav.example.com/principals/user";;
-
-               calendar.setOwner(owner);
-               calendar.setTitle(title);
-               calendar.setHref(href);
-               calendar.setSyncType(OmCalendar.SyncType.ETAG);
-
-               calendar = calendarDao.update(calendar);
-
-               assertTrue("Saved calendar should have valid id: " + 
calendar.getId(),
-                               calendar.getId() != null && calendar.getId() > 
0);
-
-               OmCalendar c = calendarDao.get(calendar.getId());
-               assertNotNull("Failed to find Calendar by id", c);
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
deleted file mode 100644
index 45cd2ce..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestSendIcalMessage.java
+++ /dev/null
@@ -1,235 +0,0 @@
-/*
- * 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.calendar;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-
-import java.io.ByteArrayInputStream;
-import java.io.ByteArrayOutputStream;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Calendar;
-import java.util.Date;
-import java.util.GregorianCalendar;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-import javax.activation.DataHandler;
-import javax.mail.BodyPart;
-import javax.mail.Message;
-import javax.mail.Multipart;
-import javax.mail.Transport;
-import javax.mail.internet.InternetAddress;
-import javax.mail.internet.MimeBodyPart;
-import javax.mail.internet.MimeMessage;
-import javax.mail.internet.MimeMultipart;
-
-import org.apache.openmeetings.core.mail.MailHandler;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.apache.openmeetings.util.mail.ByteArrayDataSource;
-import org.apache.openmeetings.util.mail.IcalHandler;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-import net.fortuna.ical4j.data.CalendarOutputter;
-import net.fortuna.ical4j.model.DateTime;
-import net.fortuna.ical4j.model.TimeZone;
-import net.fortuna.ical4j.model.TimeZoneRegistry;
-import net.fortuna.ical4j.model.TimeZoneRegistryFactory;
-import net.fortuna.ical4j.model.component.VEvent;
-import net.fortuna.ical4j.model.component.VTimeZone;
-import net.fortuna.ical4j.model.parameter.Cn;
-import net.fortuna.ical4j.model.parameter.Role;
-import net.fortuna.ical4j.model.property.Attendee;
-import net.fortuna.ical4j.model.property.CalScale;
-import net.fortuna.ical4j.model.property.Method;
-import net.fortuna.ical4j.model.property.Organizer;
-import net.fortuna.ical4j.model.property.ProdId;
-import net.fortuna.ical4j.model.property.Uid;
-import net.fortuna.ical4j.model.property.Version;
-
-public class TestSendIcalMessage extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestSendIcalMessage.class, getWebAppRootKey());
-
-       @Autowired
-       private MailHandler mailHandler;
-
-       private byte[] iCalMimeBody;
-
-       String subject = "test iCal";
-       String recipients = "[email protected]";
-       String htmlBody = "test";
-
-
-       public void simpleInvitionIcalLink() {
-               // Create a TimeZone
-               TimeZoneRegistry registry = 
TimeZoneRegistryFactory.getInstance().createRegistry();
-               TimeZone timezone = registry.getTimeZone("America/Mexico_City");
-               VTimeZone tz = timezone.getVTimeZone();
-
-               // Start Date is on: April 1, 2008, 9:00 am
-               java.util.Calendar startDate = new GregorianCalendar();
-               startDate.setTimeZone(timezone);
-               startDate.set(java.util.Calendar.MONTH, 
java.util.Calendar.APRIL);
-               startDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
-               startDate.set(java.util.Calendar.YEAR, 2008);
-               startDate.set(java.util.Calendar.HOUR_OF_DAY, 9);
-               startDate.set(java.util.Calendar.MINUTE, 0);
-               startDate.set(java.util.Calendar.SECOND, 0);
-
-               // End Date is on: April 1, 2008, 13:00
-               java.util.Calendar endDate = new GregorianCalendar();
-               endDate.setTimeZone(timezone);
-               endDate.set(java.util.Calendar.MONTH, java.util.Calendar.APRIL);
-               endDate.set(java.util.Calendar.DAY_OF_MONTH, 1);
-               endDate.set(java.util.Calendar.YEAR, 2008);
-               endDate.set(java.util.Calendar.HOUR_OF_DAY, 13);
-               endDate.set(java.util.Calendar.MINUTE, 0);
-               endDate.set(java.util.Calendar.SECOND, 0);
-
-               // Create the event
-               String eventName = "Progress Meeting";
-               DateTime start = new DateTime(startDate.getTime());
-               DateTime end = new DateTime(endDate.getTime());
-               VEvent meeting = new VEvent(start, end, eventName);
-
-               // add timezone info..
-               meeting.getProperties().add(tz.getTimeZoneId());
-
-               // generate unique identifier..
-               Uid uid = new Uid(UUID.randomUUID().toString());
-               meeting.getProperties().add(uid);
-
-               // add attendees..
-               Attendee dev1 = new 
Attendee(URI.create("mailto:[email protected]";));
-               dev1.getParameters().add(Role.REQ_PARTICIPANT);
-               dev1.getParameters().add(new Cn("Developer 1"));
-               meeting.getProperties().add(dev1);
-
-               Attendee dev2 = new 
Attendee(URI.create("mailto:[email protected]";));
-               dev2.getParameters().add(Role.OPT_PARTICIPANT);
-               dev2.getParameters().add(new Cn("Developer 2"));
-               meeting.getProperties().add(dev2);
-
-               // Create a calendar
-               net.fortuna.ical4j.model.Calendar icsCalendar = new 
net.fortuna.ical4j.model.Calendar();
-               icsCalendar.getProperties().add(
-                               new ProdId("-//Events Calendar//iCal4j 
1.0//EN"));
-               icsCalendar.getProperties().add(CalScale.GREGORIAN);
-               icsCalendar.getProperties().add(Version.VERSION_2_0);
-
-               // Add the event and print
-               icsCalendar.getComponents().add(meeting);
-
-               Organizer orger = new 
Organizer(URI.create("[email protected]"));
-               orger.getParameters().add(new Cn("Sebastian Wagner"));
-               meeting.getProperties().add(orger);
-
-               icsCalendar.getProperties().add(Method.REQUEST);
-
-               log.debug(icsCalendar.toString());
-
-               ByteArrayOutputStream bout = new ByteArrayOutputStream();
-               CalendarOutputter outputter = new CalendarOutputter();
-               try {
-                       outputter.output(icsCalendar, bout);
-                       iCalMimeBody = bout.toByteArray();
-
-                       sendIcalMessage();
-               } catch (Exception e) {
-                       log.error("Error", e);
-               }
-       }
-
-       @Test
-       public void sendInvitionIcalLink() {
-               try {
-                       String email = "[email protected]";
-                       String username = "shans";
-                       boolean invitor = false;
-
-                       Calendar start = Calendar.getInstance();
-                       Calendar end = Calendar.getInstance();
-                       IcalHandler handler = new 
IcalHandler(IcalHandler.ICAL_METHOD_REQUEST);
-
-                       // Transforming Meeting Members
-
-                       Map<String, String> attendeeList = 
handler.getAttendeeData(email, username, invitor);
-                       Map<String, String> organizerAttendee = 
handler.getAttendeeData(recipients, "seba-test", true);
-
-                       List<Map<String, String>> atts = new ArrayList<>();
-                       atts.add(attendeeList);
-
-                       // Create ICal Message
-                       String meetingId = 
handler.addNewMeeting(start.getTime(), end.getTime(), "test event",
-                                       atts, 
"localhost:5080/link_openmeetings",
-                                       organizerAttendee, "", 
java.util.TimeZone.getDefault().getID());
-
-                       log.debug("meetingId " + meetingId);
-
-                       iCalMimeBody = handler.getIcalAsByteArray();
-
-                       sendIcalMessage();
-
-                       // return MailHandler.sendMail(email, subject, 
template);
-
-               } catch (Exception err) {
-                       log.error("sendInvitionIcalLink", err);
-               }
-       }
-
-       private void sendIcalMessage() throws Exception {
-               log.debug("sendIcalMessage");
-
-               // Building MimeMessage
-               MimeMessage mimeMessage = mailHandler.getBasicMimeMessage();
-               mimeMessage.setSubject(subject);
-               mimeMessage.addRecipients(Message.RecipientType.TO, 
InternetAddress.parse(recipients, false));
-
-               // -- Create a new message --
-               BodyPart msg = new MimeBodyPart();
-               msg.setDataHandler(new DataHandler(new 
ByteArrayDataSource(htmlBody,
-                               "text/html; charset=\"utf-8\"")));
-
-               Multipart multipart = new MimeMultipart();
-
-               BodyPart iCalAttachment = new MimeBodyPart();
-               iCalAttachment.setDataHandler(new DataHandler(
-                               new javax.mail.util.ByteArrayDataSource(
-                                               new 
ByteArrayInputStream(iCalMimeBody),
-                                               
"text/calendar;method=REQUEST;charset=\"UTF-8\"")));
-               iCalAttachment.setFileName("invite.ics");
-
-               multipart.addBodyPart(iCalAttachment);
-               multipart.addBodyPart(msg);
-
-               mimeMessage.setSentDate(new Date());
-               mimeMessage.setContent(multipart);
-
-               // -- Set some other header information --
-               // mimeMessage.setHeader("X-Mailer", "XML-Mail");
-               // mimeMessage.setSentDate(new Date());
-
-               // Transport trans = session.getTransport("smtp");
-               Transport.send(mimeMessage);
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
deleted file mode 100644
index 3b98927..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/config/TestConfig.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/*
- * 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.config;
-
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.CONFIG_SMTP_SERVER;
-import static 
org.apache.openmeetings.util.OpenmeetingsVariables.getWebAppRootKey;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import java.util.List;
-
-import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
-import org.apache.openmeetings.db.entity.basic.Configuration;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.junit.Test;
-import org.red5.logging.Red5LoggerFactory;
-import org.slf4j.Logger;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestConfig extends AbstractJUnitDefaults {
-       private static final Logger log = 
Red5LoggerFactory.getLogger(TestConfig.class, getWebAppRootKey());
-
-       @Autowired
-       private ConfigurationDao configurationDao;
-
-       @Test
-       public void getConfigKey() {
-               System.err.println("THIS");
-
-               Configuration smtp_server = 
configurationDao.get(CONFIG_SMTP_SERVER);
-
-               System.err.println("smtp_server " + smtp_server.getUser());
-
-               assertNull(smtp_server.getUser());
-       }
-
-       @Test
-       public void getConfigs() {
-
-               try {
-                       List<Configuration> list = configurationDao.get(4, 6);
-
-                       for (Configuration conf : list) {
-                               log.error("conf.getKey() " + conf.getKey());
-                               log.error("conf.getUser() " + conf.getUser());
-                               if (conf.getUser() != null) {
-                                       log.error("conf.getUsers() " + 
conf.getUser().getLogin());
-                               }
-                       }
-
-                       assertEquals(list.size(), 6);
-
-               } catch (Exception err) {
-                       log.error("[startConversion]", err);
-               }
-
-       }
-}

http://git-wip-us.apache.org/repos/asf/openmeetings/blob/3dac8e2f/openmeetings-web/src/test/java/org/apache/openmeetings/test/core/file/TestFileProcessor.java
----------------------------------------------------------------------
diff --git 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/core/file/TestFileProcessor.java
 
b/openmeetings-web/src/test/java/org/apache/openmeetings/test/core/file/TestFileProcessor.java
deleted file mode 100644
index 82ca41a..0000000
--- 
a/openmeetings-web/src/test/java/org/apache/openmeetings/test/core/file/TestFileProcessor.java
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- * 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.core.file;
-
-import static 
org.apache.openmeetings.util.OmFileHelper.getDefaultProfilePicture;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-
-import java.io.FileInputStream;
-import java.io.InputStream;
-import java.util.UUID;
-
-import org.apache.openmeetings.core.data.file.FileProcessor;
-import org.apache.openmeetings.db.dto.file.FileItemDTO;
-import org.apache.openmeetings.db.entity.file.BaseFileItem;
-import org.apache.openmeetings.db.entity.file.FileItem;
-import org.apache.openmeetings.test.AbstractJUnitDefaults;
-import org.apache.openmeetings.util.process.ConverterProcessResultList;
-import org.junit.Test;
-import org.springframework.beans.factory.annotation.Autowired;
-
-public class TestFileProcessor extends AbstractJUnitDefaults {
-       private static final String FILE_NAME = "test_name";
-
-       @Autowired
-       protected FileProcessor processor;
-
-       @Test
-       public void testProcessJpeg() throws Exception {
-               for (String ext : new String[] {null, "txt", "png"}) {
-                       FileItem f = new FileItemDTO()
-                                       .setName(String.format("%s.%s", 
FILE_NAME, ext))
-                                       .setHash(UUID.randomUUID().toString())
-                                       
.setType(BaseFileItem.Type.Recording).get();
-                       try (InputStream is = new 
FileInputStream(getDefaultProfilePicture())) {
-                               ConverterProcessResultList result = 
processor.processFile(f, is);
-                               assertFalse("Conversion should be successful", 
result.hasError());
-                               assertEquals("Type should be image", 
BaseFileItem.Type.Image, f.getType());
-                       }
-               }
-       }
-}

Reply via email to