Skip to content

Commit 0379ce8

Browse files
committed
some minimal selenium testing
1 parent deec167 commit 0379ce8

File tree

5 files changed

+74
-3
lines changed

5 files changed

+74
-3
lines changed

Procfile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@ web: node src/run.js
22

33
test: node node_modules/jasmine-node/lib/jasmine-node/cli.js --matchall test/db
44

5+
selenium-test: node node_modules/jasmine-node/lib/jasmine-node/cli.js --matchall test/browser/
6+
57
migrate: node node_modules/db-migrate/bin/db-migrate up
68

79
sqlgen: node node_modules/sql-generate/bin/node-sql-generate --dsn $DATABASE_URL > src/schema.js

package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@
2222
"sql": "^0.38.0",
2323
"jasmine-node": "^1.14.3",
2424
"db-migrate": "^0.6.4",
25-
"sql-generate": "^0.3.0"
25+
"sql-generate": "^0.3.0",
26+
"node-selenium": "^0.1.0",
27+
"selenium-webdriver": "^2.41.0"
2628
},
2729
"devDependencies": {},
2830
"scripts": {

src/server.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,9 @@ function start(config, onServerReady) {
8787
res.redirect("/");
8888
});
8989

90-
app.listen(config["port"]);
90+
var server = app.listen(config["port"]);
9191

92-
onServerReady(app);
92+
onServerReady(app, server);
9393

9494
}
9595

test/browser/.signin.js.swp

12 KB
Binary file not shown.

test/browser/signin.js

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
_ = require("jasmine-node");
2+
var server = require("./../../src/server.js");
3+
var webdriver = require('selenium-webdriver');
4+
5+
server.start({
6+
baseUrl: process.env["BASE_URL"],
7+
port: process.env["PORT"],
8+
sessionSecret: process.env["SESSION_SECRET"],
9+
google: {
10+
clientId: process.env["GOOGLE_CLIENT_ID"],
11+
clientSecret: process.env["GOOGLE_CLIENT_SECRET"],
12+
redirect: "/oauth2callback"
13+
}
14+
}, afterServer);
15+
16+
var googleUsername = process.env["SELENIUM_GOOGLE_USER"];
17+
var googlePassword = process.env["SELENIUM_GOOGLE_PASSWORD"];
18+
19+
function afterServer(app, server) {
20+
describe("Sign in", function() {
21+
var /*driver;
22+
beforeEach(function() {
23+
console.log("running test");*/
24+
driver = new webdriver.Builder().
25+
withCapabilities(webdriver.Capabilities.chrome()).
26+
build();
27+
// });
28+
29+
it("Should sign up", function(done) {
30+
console.log("foo");
31+
driver.get('http://localhost:5000');
32+
driver.findElement(webdriver.By.id('login')).click();
33+
driver.wait(function() {
34+
return driver.getTitle().then(function(title) {
35+
return title === 'Sign in - Google Accounts';
36+
});
37+
}, 1000);
38+
driver.findElement(webdriver.By.id("Email")).sendKeys(googleUsername);
39+
driver.findElement(webdriver.By.id("Passwd")).sendKeys(googlePassword);
40+
driver.findElement(webdriver.By.id("signIn")).click();
41+
driver.wait(function() {
42+
console.log("Waiting for confirmation button to activate...");
43+
return driver.findElement(webdriver.By.id("submit_approve_access")).getAttribute("disabled")
44+
.then(function(disabled) {
45+
return !disabled;
46+
});
47+
});
48+
driver.findElement(webdriver.By.id("submit_approve_access")).click();
49+
var loaded = driver.wait(function() {
50+
console.log("Waiting for page to load..");
51+
return driver.findElement(webdriver.By.id("loader")).getCssValue("display")
52+
.then(function(d) {
53+
console.log("style: ", d);
54+
return d === "none";
55+
});
56+
});
57+
loaded.then(function() { done(); });
58+
driver.quit();
59+
}, 15000);
60+
61+
it("Should close the server", function(done) {
62+
server.close();
63+
done();
64+
});
65+
66+
});
67+
}

0 commit comments

Comments
 (0)