-
Notifications
You must be signed in to change notification settings - Fork 116
/
Copy pathselenium_server.spec-unit.ts
109 lines (100 loc) · 4.33 KB
/
selenium_server.spec-unit.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
import * as fs from 'fs';
import {SeleniumServer, semanticVersionParser, versionParser,} from './selenium_server';
describe('selenium_server', () => {
describe('verisonParser', () => {
it('should generate a semantic version', () => {
let version =
versionParser('10.1/selenium-server-standalone-10.1.200.jar');
expect(version).toBe('10.1.200');
version =
versionParser('10.1/selenium-server-standalone-10.1.200-beta.jar');
expect(version).toBe('10.1.200-beta');
});
});
describe('semanticVerisonParser', () => {
it('should generate a semantic version', () => {
let version =
semanticVersionParser('10.1/selenium-server-standalone-10.1.200.jar');
expect(version).toBe('10.1.200');
version = semanticVersionParser(
'10.1/selenium-server-standalone-10.1.200-beta.jar');
expect(version).toBe('10.1.200');
});
});
describe('class SeleniumServer', () => {
describe('getCmdStartServer', () => {
const configBinaries = `{
"last": "path/to/selenium-server-3.0.jar",
"all": ["path/to/selenium-server-1.0.jar",
"path/to/selenium-server-2.0.jar",
"path/to/selenium-server-3.0.jar"
]
}`;
const javaArgs = '-role node ' +
'-servlet org.openqa.grid.web.servlet.LifecycleServlet ' +
'-registerCycle 0 -port 4444';
const javaGridArgs = '-role node ' +
'-hub ';
const javaArgsPort = '-port 4444';
it('should use a selenium server with no options', () => {
spyOn(fs, 'readFileSync').and.returnValue(configBinaries);
const seleniumServer = new SeleniumServer();
expect(seleniumServer.getCmdStartServer(null).join(' '))
.toContain('-jar path/to/selenium-server-3.0.jar ' + javaArgsPort);
expect(seleniumServer.getCmdStartServer({}).join(' '))
.toContain('-jar path/to/selenium-server-3.0.jar ' + javaArgsPort);
});
it('should use a selenium server with options', () => {
spyOn(fs, 'readFileSync').and.returnValue(configBinaries);
const seleniumServer = new SeleniumServer();
const cmd = seleniumServer.getCmdStartServer(
{'-Dwebdriver.chrome.driver': 'path/to/chromedriver'});
expect(cmd.join(' '))
.toContain(
'-Dwebdriver.chrome.driver=path/to/chromedriver ' +
'-jar path/to/selenium-server-3.0.jar ' + javaArgsPort);
});
it('should use a selenium server with node options', () => {
spyOn(fs, 'readFileSync').and.returnValue(configBinaries);
const seleniumServer = new SeleniumServer();
seleniumServer.runAsDetach = true;
seleniumServer.runAsNode = true;
const cmd = seleniumServer.getCmdStartServer(
{'-Dwebdriver.chrome.driver': 'path/to/chromedriver'});
expect(cmd.join(' '))
.toContain(
'-Dwebdriver.chrome.driver=path/to/chromedriver ' +
'-jar path/to/selenium-server-3.0.jar ' + javaArgs);
});
it('should use a selenium server with a grid node option', () => {
spyOn(fs, 'readFileSync').and.returnValue(configBinaries);
const seleniumServer = new SeleniumServer();
seleniumServer.runAsDetach = true;
seleniumServer.runAsNode = true;
seleniumServer.runAsGrid = true;
const cmd = seleniumServer.getCmdStartServer(
{'-Dwebdriver.chrome.driver': 'path/to/chromedriver'});
expect(cmd.join(' '))
.toContain(
'-Dwebdriver.chrome.driver=path/to/chromedriver ' +
'-jar path/to/selenium-server-3.0.jar ' + javaGridArgs);
});
});
describe('getStatus', () => {
it('should get the status from the config file', () => {
const configCache = `{
"last": "/path/to/selenium-server-standalone-100.1.0.jar",
"all": [
"/path/to/selenium-server-standalone-90.0.0.jar",
"/path/to/selenium-server-standalone-99.0.0-beta.jar",
"/path/to/selenium-server-standalone-100.1.0.jar"
]
}`;
spyOn(fs, 'readFileSync').and.returnValue(configCache);
const seleniumServer = new SeleniumServer();
expect(seleniumServer.getStatus())
.toBe('90.0.0, 99.0.0-beta, 100.1.0 (latest)');
});
});
});
});