Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 35b9ce4

Browse files
committed
Added an example using Selenium WebDriver, Webbit and WebSockets.
1 parent 1d156e3 commit 35b9ce4

File tree

14 files changed

+717
-15
lines changed

14 files changed

+717
-15
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
.classpath
44
*.iws
55
target
6+
chromedriver.log

cucumber-jvm.ipr

Lines changed: 408 additions & 0 deletions
Large diffs are not rendered by default.

examples/java-calculator/java-calculator.iml

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,24 +11,25 @@
1111
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/test-annotations" isTestSource="true" />
1212
<sourceFolder url="file://$MODULE_DIR$/target/generated-sources/annotations" isTestSource="false" />
1313
<excludeFolder url="file://$MODULE_DIR$/target/classes" />
14+
<excludeFolder url="file://$MODULE_DIR$/target/maven-archiver" />
1415
<excludeFolder url="file://$MODULE_DIR$/target/surefire" />
1516
<excludeFolder url="file://$MODULE_DIR$/target/surefire-reports" />
1617
<excludeFolder url="file://$MODULE_DIR$/target/test-classes" />
1718
</content>
1819
<orderEntry type="inheritedJdk" />
1920
<orderEntry type="sourceFolder" forTests="false" />
20-
<orderEntry type="module" module-name="picocontainer" />
21-
<orderEntry type="module" module-name="java" />
22-
<orderEntry type="module" module-name="core" />
23-
<orderEntry type="library" name="Maven: gherkin:gherkin:2.4.16" level="project" />
24-
<orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1" level="project" />
25-
<orderEntry type="library" name="Maven: net.iharder:base64:2.3.8" level="project" />
26-
<orderEntry type="library" name="Maven: com.beust:jcommander:1.18" level="project" />
27-
<orderEntry type="library" name="Maven: org.apache.ant:ant:1.8.2" level="project" />
28-
<orderEntry type="library" name="Maven: org.apache.ant:ant-launcher:1.8.2" level="project" />
21+
<orderEntry type="module" module-name="picocontainer" scope="TEST" />
22+
<orderEntry type="module" module-name="java" scope="TEST" />
23+
<orderEntry type="module" module-name="core" scope="TEST" />
24+
<orderEntry type="library" scope="TEST" name="Maven: gherkin:gherkin:2.4.16" level="project" />
25+
<orderEntry type="library" scope="TEST" name="Maven: com.googlecode.json-simple:json-simple:1.1" level="project" />
26+
<orderEntry type="library" scope="TEST" name="Maven: net.iharder:base64:2.3.8" level="project" />
27+
<orderEntry type="library" scope="TEST" name="Maven: com.beust:jcommander:1.18" level="project" />
28+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.ant:ant:1.8.2" level="project" />
29+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.ant:ant-launcher:1.8.2" level="project" />
2930
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.8.2" level="project" />
30-
<orderEntry type="library" name="Maven: com.googlecode.java-diff-utils:diffutils:1.2.1" level="project" />
31-
<orderEntry type="library" name="Maven: org.picocontainer:picocontainer:2.13.6" level="project" />
31+
<orderEntry type="library" scope="TEST" name="Maven: com.googlecode.java-diff-utils:diffutils:1.2.1" level="project" />
32+
<orderEntry type="library" scope="TEST" name="Maven: org.picocontainer:picocontainer:2.13.6" level="project" />
3233
</component>
3334
</module>
3435

examples/java-calculator/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
<groupId>info.cukes</groupId>
2121
<artifactId>cucumber-picocontainer</artifactId>
2222
<version>${project.version}</version>
23+
<scope>test</scope>
2324
</dependency>
2425
<dependency>
2526
<groupId>junit</groupId>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
3+
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_6" inherit-compiler-output="false">
4+
<output url="file://$MODULE_DIR$/target/classes" />
5+
<output-test url="file://$MODULE_DIR$/target/test-classes" />
6+
<content url="file://$MODULE_DIR$">
7+
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
8+
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
9+
<sourceFolder url="file://$MODULE_DIR$/src/test/resources" isTestSource="true" />
10+
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" isTestSource="false" />
11+
<excludeFolder url="file://$MODULE_DIR$/target" />
12+
</content>
13+
<orderEntry type="inheritedJdk" />
14+
<orderEntry type="sourceFolder" forTests="false" />
15+
<orderEntry type="library" name="Maven: org.webbitserver:webbit:0.2.0" level="project" />
16+
<orderEntry type="library" name="Maven: org.jboss.netty:netty:3.2.4.Final" level="project" />
17+
<orderEntry type="module" module-name="picocontainer" scope="TEST" />
18+
<orderEntry type="module" module-name="java" scope="TEST" />
19+
<orderEntry type="module" module-name="core" scope="TEST" />
20+
<orderEntry type="library" scope="TEST" name="Maven: gherkin:gherkin:2.4.16" level="project" />
21+
<orderEntry type="library" scope="TEST" name="Maven: com.googlecode.json-simple:json-simple:1.1" level="project" />
22+
<orderEntry type="library" scope="TEST" name="Maven: net.iharder:base64:2.3.8" level="project" />
23+
<orderEntry type="library" scope="TEST" name="Maven: com.beust:jcommander:1.18" level="project" />
24+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.ant:ant:1.8.2" level="project" />
25+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.ant:ant-launcher:1.8.2" level="project" />
26+
<orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.8.2" level="project" />
27+
<orderEntry type="library" scope="TEST" name="Maven: com.googlecode.java-diff-utils:diffutils:1.2.1" level="project" />
28+
<orderEntry type="library" scope="TEST" name="Maven: org.picocontainer:picocontainer:2.13.6" level="project" />
29+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-chrome-driver:2.5.0" level="project" />
30+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-remote-driver:2.5.0" level="project" />
31+
<orderEntry type="library" scope="TEST" name="Maven: cglib:cglib-nodep:2.1_3" level="project" />
32+
<orderEntry type="library" scope="TEST" name="Maven: org.json:json:20080701" level="project" />
33+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-api:2.5.0" level="project" />
34+
<orderEntry type="library" scope="TEST" name="Maven: com.google.guava:guava:r09" level="project" />
35+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpclient:4.1.2" level="project" />
36+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpcore:4.1.2" level="project" />
37+
<orderEntry type="library" scope="TEST" name="Maven: commons-logging:commons-logging:1.1.1" level="project" />
38+
<orderEntry type="library" scope="TEST" name="Maven: commons-codec:commons-codec:1.4" level="project" />
39+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-server:2.5.0" level="project" />
40+
<orderEntry type="library" scope="TEST" name="Maven: bouncycastle:bcprov-jdk15:135" level="project" />
41+
<orderEntry type="library" scope="TEST" name="Maven: mx4j:mx4j-tools:3.0.1" level="project" />
42+
<orderEntry type="library" scope="TEST" name="Maven: org.mortbay.jetty:servlet-api-2.5:6.1.9" level="project" />
43+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-java:2.5.0" level="project" />
44+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-android-driver:2.5.0" level="project" />
45+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-htmlunit-driver:2.5.0" level="project" />
46+
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.htmlunit:htmlunit:2.9" level="project" />
47+
<orderEntry type="library" scope="TEST" name="Maven: xalan:xalan:2.7.1" level="project" />
48+
<orderEntry type="library" scope="TEST" name="Maven: xalan:serializer:2.7.1" level="project" />
49+
<orderEntry type="library" scope="TEST" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
50+
<orderEntry type="library" scope="TEST" name="Maven: commons-collections:commons-collections:3.2.1" level="project" />
51+
<orderEntry type="library" scope="TEST" name="Maven: commons-lang:commons-lang:2.4" level="project" />
52+
<orderEntry type="library" scope="TEST" name="Maven: org.apache.httpcomponents:httpmime:4.1.2" level="project" />
53+
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.htmlunit:htmlunit-core-js:2.9" level="project" />
54+
<orderEntry type="library" scope="TEST" name="Maven: xerces:xercesImpl:2.9.1" level="project" />
55+
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.nekohtml:nekohtml:1.9.15" level="project" />
56+
<orderEntry type="library" scope="TEST" name="Maven: net.sourceforge.cssparser:cssparser:0.9.5" level="project" />
57+
<orderEntry type="library" scope="TEST" name="Maven: org.w3c.css:sac:1.3" level="project" />
58+
<orderEntry type="library" scope="TEST" name="Maven: commons-io:commons-io:2.0.1" level="project" />
59+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-firefox-driver:2.5.0" level="project" />
60+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-ie-driver:2.5.0" level="project" />
61+
<orderEntry type="library" scope="TEST" name="Maven: net.java.dev.jna:jna:3.3.0" level="project" />
62+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-iphone-driver:2.5.0" level="project" />
63+
<orderEntry type="library" scope="TEST" name="Maven: org.seleniumhq.selenium:selenium-support:2.5.0" level="project" />
64+
<orderEntry type="library" scope="TEST" name="Maven: org.yaml:snakeyaml:1.8" level="project" />
65+
</component>
66+
</module>
67+
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<project xmlns="http://maven.apache.org/POM/4.0.0"
2+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
4+
http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<groupId>info.cukes</groupId>
9+
<artifactId>cucumber-jvm</artifactId>
10+
<relativePath>../../pom.xml</relativePath>
11+
<version>1.0.0-SNAPSHOT</version>
12+
</parent>
13+
14+
<artifactId>java-webbit-websockets-selenium</artifactId>
15+
<packaging>jar</packaging>
16+
<name>Examples: Webbit WebSockets tested with Selenium</name>
17+
18+
<dependencies>
19+
<dependency>
20+
<groupId>org.webbitserver</groupId>
21+
<artifactId>webbit</artifactId>
22+
</dependency>
23+
24+
<dependency>
25+
<groupId>info.cukes</groupId>
26+
<artifactId>cucumber-picocontainer</artifactId>
27+
<version>${project.version}</version>
28+
<scope>test</scope>
29+
</dependency>
30+
<dependency>
31+
<groupId>org.seleniumhq.selenium</groupId>
32+
<artifactId>selenium-chrome-driver</artifactId>
33+
<scope>test</scope>
34+
</dependency>
35+
<dependency>
36+
<groupId>org.seleniumhq.selenium</groupId>
37+
<artifactId>selenium-server</artifactId>
38+
<scope>test</scope>
39+
</dependency>
40+
<dependency>
41+
<groupId>junit</groupId>
42+
<artifactId>junit</artifactId>
43+
<scope>test</scope>
44+
</dependency>
45+
</dependencies>
46+
</project>
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
package cucumber.examples.java.websockets;
2+
3+
import org.webbitserver.WebServer;
4+
import org.webbitserver.WebServers;
5+
import org.webbitserver.WebSocketConnection;
6+
import org.webbitserver.WebSocketHandler;
7+
import org.webbitserver.handler.EmbeddedResourceHandler;
8+
9+
import java.io.IOException;
10+
11+
public class TemperatureServer {
12+
private final WebServer webServer;
13+
14+
public TemperatureServer(int port) {
15+
webServer = WebServers.createWebServer(port);
16+
webServer.add(new EmbeddedResourceHandler("web"));
17+
webServer.add("/temperature", new WebSocketHandler() {
18+
@Override
19+
public void onOpen(WebSocketConnection connection) throws Exception {
20+
}
21+
22+
@Override
23+
public void onClose(WebSocketConnection connection) throws Exception {
24+
}
25+
26+
@Override
27+
public void onMessage(WebSocketConnection connection, String msg) throws Throwable {
28+
String[] parts = msg.split(":");
29+
double t = Double.parseDouble(parts[1]);
30+
if (parts[0].equals("celcius")) {
31+
double f = (9.0 / 5.0) * t + 32;
32+
connection.send("fahrenheit:" + f);
33+
}
34+
}
35+
36+
@Override
37+
public void onMessage(WebSocketConnection connection, byte[] msg) throws Throwable {
38+
}
39+
40+
@Override
41+
public void onPong(WebSocketConnection connection, String msg) throws Throwable {
42+
}
43+
});
44+
}
45+
46+
public void start() throws IOException {
47+
webServer.start();
48+
}
49+
50+
public void stop() throws IOException {
51+
webServer.stop();
52+
}
53+
54+
public static void main(String[] args) throws IOException {
55+
new TemperatureServer(9988).start();
56+
}
57+
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<title>Temperature</title>
5+
<link rel="stylesheet" type="text/css" href="style.css">
6+
<script src="temperature.js"></script>
7+
</head>
8+
<body>
9+
<label for="celcius">Celcius</label>
10+
<input type="text" id="celcius">
11+
12+
<label for="fahrenheit">Fahrenheit</label>
13+
<input type="text" id="fahrenheit">
14+
</body>
15+
</html>
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
body {
2+
background-color: #333333;
3+
color: #ffffff;
4+
font-family: arial, sans-serif;
5+
margin: 10;
6+
padding: 10;
7+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
window.onload = function() {
2+
var ws = new WebSocket('ws://' + document.location.host + '/temperature');
3+
ws.onmessage = function(e) {
4+
var temp = e.data.split(':');
5+
document.getElementById(temp[0]).setAttribute("value", temp[1]);
6+
};
7+
8+
var c = document.getElementById('celcius');
9+
c.onkeypress = function(e) {
10+
setTimeout(function() {
11+
ws.send("celcius:" + e.target.value);
12+
}, 0);
13+
};
14+
};

0 commit comments

Comments
 (0)