Skip to content
Snippets Groups Projects
Commit cb238d54 authored by jkraehemann's avatar jkraehemann
Browse files

OO-296: debugging selectors

parent e0692dc6
No related branches found
No related tags found
No related merge requests found
......@@ -582,7 +582,9 @@
</systemProperties>
<testNGArtifactName>none:none</testNGArtifactName>
<includes>
<include>org/olat/test/Selenium2TestsJunit4.java</include>
<!-- <include>org/olat/test/Selenium2TestsJunit4.java</include> -->
<!-- <include>org/olat/portal/FunctionalSettingsTest.java</include> -->
<include>org/olat/login/FunctionalResumeTest.java</include>
</includes>
</configuration>
</plugin>
......
/**
* <a href="http://www.openolat.org">
* OpenOLAT - Online Learning and Training</a><br>
* <p>
* Licensed under the Apache License, Version 2.0 (the "License"); <br>
* you may not use this file except in compliance with the License.<br>
* You may obtain a copy of the License at the
* <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
* <p>
* Unless required by applicable law or agreed to in writing,<br>
* software distributed under the License is distributed on an "AS IS" BASIS, <br>
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
* See the License for the specific language governing permissions and <br>
* limitations under the License.
* <p>
* Initial code contributed and copyrighted by<br>
* frentix GmbH, http://www.frentix.com
* <p>
*/
package org.olat.course;
import java.io.IOException;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.List;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.RunAsClient;
import org.jboss.arquillian.drone.api.annotation.Drone;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.arquillian.test.api.ArquillianResource;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.olat.restapi.support.vo.CourseVO;
import org.olat.test.ArquillianDeployments;
import org.olat.user.restapi.UserVO;
import org.olat.util.FunctionalCourseUtil;
import org.olat.util.FunctionalHomeSiteUtil;
import org.olat.util.FunctionalRepositorySiteUtil;
import org.olat.util.FunctionalUtil;
import org.olat.util.FunctionalUtil.OlatSite;
import org.olat.util.FunctionalVOUtil;
import com.thoughtworks.selenium.DefaultSelenium;
/**
*
* @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
*/
@RunWith(Arquillian.class)
public class FunctionalBackTest {
@Deployment(testable = false)
public static WebArchive createDeployment() {
return ArquillianDeployments.createDeployment();
}
@Drone
DefaultSelenium browser;
@ArquillianResource
URL deploymentUrl;
FunctionalUtil functionalUtil;
FunctionalVOUtil functionalVOUtil;
FunctionalHomeSiteUtil functionalHomeSiteUtil;
FunctionalRepositorySiteUtil functionalRepositorySiteUtil;
FunctionalCourseUtil functionalCourseUtil;
UserVO user;
@Before
public void setup() throws IOException, URISyntaxException{
functionalUtil = new FunctionalUtil();
functionalUtil.setDeploymentUrl(deploymentUrl.toString());
functionalVOUtil = new FunctionalVOUtil(functionalUtil.getUsername(), functionalUtil.getPassword());
functionalHomeSiteUtil = new FunctionalHomeSiteUtil(functionalUtil);
functionalRepositorySiteUtil = new FunctionalRepositorySiteUtil(functionalUtil);
functionalCourseUtil = new FunctionalCourseUtil(functionalUtil, functionalRepositorySiteUtil);
/* create test user with REST */
List<UserVO> userVO = functionalVOUtil.createTestUsers(deploymentUrl, 1);
user = userVO.get(0);
}
@Test
@RunAsClient
public void checkBack() throws URISyntaxException, IOException{
/* deploy course with rest */
CourseVO course0 = functionalVOUtil.importAllElementsCourse(deploymentUrl);
CourseVO course1 = functionalVOUtil.importAllElementsCourse(deploymentUrl);
functionalUtil.login(browser, user.getLogin(), user.getPassword(), true);
/* start - home site */
functionalUtil.openSite(browser, OlatSite.HOME);
//functionalUtil.openSite(browser,)
//TODO:JK: implement me
}
}
......@@ -101,7 +101,6 @@ public class FunctionalArtefactTest {
FunctionalVOUtil functionalVOUtil;
UserVO user;
CourseVO course;
@Before
public void setup() throws IOException, URISyntaxException{
......@@ -125,7 +124,7 @@ public class FunctionalArtefactTest {
@RunAsClient
public void checkCollectForumPost() throws IOException, URISyntaxException{
/* deploy course with REST */
course = functionalVOUtil.importAllElementsCourse(deploymentUrl);
CourseVO course = functionalVOUtil.importAllElementsCourse(deploymentUrl);
/* login for test setup */
Assert.assertTrue(functionalUtil.login(browser, user.getLogin(), user.getPassword(), true));
......
......@@ -27,6 +27,8 @@ import com.thoughtworks.selenium.Selenium;
* @author jkraehemann, joel.kraehemann@frentix.com, frentix.com
*/
public class FunctionalCourseUtil {
public final static String COURSE_RUN_CSS = "o_course_run";
public final static String EPORTFOLIO_ADD_CSS = "b_eportfolio_add";
public final static String FORUM_ICON_CSS = "o_fo_icon";
......@@ -41,6 +43,8 @@ public class FunctionalCourseUtil {
public final static String BLOG_CREATE_ENTRY_CSS = "o_sel_feed_item_new";
private String courseRunCss;
private String eportfolioAddCss;
private String forumIconCss;
......@@ -62,6 +66,8 @@ public class FunctionalCourseUtil {
this.functionalUtil = functionalUtil;
this.functionalRepositorySiteUtil = functionalRepositorySiteUtil;
setCourseRunCss(COURSE_RUN_CSS);
setEportfolioAddCss(EPORTFOLIO_ADD_CSS);
setForumIconCss(FORUM_ICON_CSS);
......@@ -158,9 +164,9 @@ public class FunctionalCourseUtil {
StringBuffer selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=//ul//li//a[contains(@class, ")
selectorBuffer.append("xpath=//ul//li//a[contains(@class, '")
.append(getForumIconCss())
.append(")][")
.append("')][")
.append(nth + 1)
.append("]");
......@@ -188,9 +194,9 @@ public class FunctionalCourseUtil {
/* click open new topic */
selectorBuffer.append("xpath=//div[contains(@class, ")
.append(getForumToolbarCss())
.append(")]//a[contains(@class, ")
.append(")]//a[contains(@class, '")
.append(getForumThreadNewCss())
.append(")]");
.append("')]");
browser.click(selectorBuffer.toString());
browser.waitForPageToLoad(functionalUtil.getWaitLimit());
......@@ -198,7 +204,9 @@ public class FunctionalCourseUtil {
/* fill in form - title */
selectorBuffer = new StringBuffer();
selectorBuffer.append("xpath=//form//input[@type='text']");
selectorBuffer.append("xpath=//div[contains(@class '")
.append(getCourseRunCss())
.append("')]//form//input[@type='text']");
browser.type(selectorBuffer.toString(), title);
......@@ -272,6 +280,8 @@ public class FunctionalCourseUtil {
.append(")]//a");
browser.click(selectorBuffer.toString());
browser.waitForPageToLoad(functionalUtil.getWaitLimit());
/* fill in text area */
selectorBuffer = new StringBuffer();
......@@ -374,6 +384,14 @@ public class FunctionalCourseUtil {
this.functionalRepositorySiteUtil = functionalRepositorySiteUtil;
}
public String getCourseRunCss() {
return courseRunCss;
}
public void setCourseRunCss(String courseRunCss) {
this.courseRunCss = courseRunCss;
}
public String getEportfolioAddCss() {
return eportfolioAddCss;
}
......
......@@ -536,9 +536,9 @@ public class FunctionalHomeSiteUtil {
if(!checkCurrentAction(browser, action, 15000)){
StringBuffer selectorBuffer = new StringBuffer();
selectorBuffer.append("css=ul .")
selectorBuffer.append("css=ul * .")
.append(selectedCss)
.append(" a");
.append(" * a");
browser.click(selectorBuffer.toString());
browser.waitForPageToLoad(functionalUtil.getWaitLimit());
......
......@@ -235,7 +235,7 @@ public class FunctionalVOUtil {
RepositoryEntryVO vo = restConnection.parse(body, RepositoryEntryVO.class);
assertNotNull(vo);
return(null);
return(vo);
}
public String getUsername() {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment