Skip to content

Commit a31a969

Browse files
author
Vasyl Vavrychuk
committed
organized functions in Util object
1 parent 5445359 commit a31a969

File tree

1 file changed

+71
-68
lines changed

1 file changed

+71
-68
lines changed

web/webdriver-app.js

Lines changed: 71 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -25,61 +25,6 @@ if (!String.prototype.endsWith) {
2525
});
2626
}
2727

28-
function loadFile(url) {
29-
var req = new XMLHttpRequest();
30-
req.open('GET', url, false);
31-
try {
32-
req.send();
33-
return req.responseText;
34-
} catch (err) {
35-
var message = 'Error at "' + err.filename + '" message "' + err.message +
36-
'" name "' + err.name + '" result 0x' + Number(err.result).toString(16);
37-
console.log(message);
38-
return message;
39-
}
40-
}
41-
42-
function _getXPath(node, path) {
43-
path = path || [];
44-
if (node.parentNode) {
45-
path = _getXPath(node.parentNode, path);
46-
}
47-
48-
if (node.previousSibling) {
49-
var count = 1;
50-
var sibling = node.previousSibling
51-
do {
52-
if (sibling.nodeType == 1 && sibling.nodeName == node.nodeName) {count++;}
53-
sibling = sibling.previousSibling;
54-
} while (sibling);
55-
if (count == 1) {count = null;}
56-
} else if (node.nextSibling) {
57-
var sibling = node.nextSibling;
58-
do {
59-
if (sibling.nodeType == 1 && sibling.nodeName == node.nodeName) {
60-
var count = 1;
61-
sibling = null;
62-
} else {
63-
var count = null;
64-
sibling = sibling.previousSibling;
65-
}
66-
} while (sibling);
67-
}
68-
69-
if (node.nodeType == 1) {
70-
path.push(node.nodeName.toLowerCase() + (node.id ? "[@id='"+node.id+"']" : count > 0 ? "["+count+"]" : ''));
71-
}
72-
return path;
73-
}
74-
75-
function getXPath(node) {
76-
if (node.hasAttribute('data-viz-id'))
77-
return '//*[@data-viz-id=' + node.getAttribute('data-viz-id') + "]";
78-
79-
var path = _getXPath(node);
80-
return '/' + path.join('/');
81-
}
82-
8328
webdriver.FirstSessionBuilder = function() {
8429
webdriver.AbstractBuilder.call(this);
8530
};
@@ -120,8 +65,66 @@ window.onerror = function(errorMsg, url, lineNumber, columnNumber, error) {
12065
return false;
12166
};
12267

123-
var Util = function() {};
124-
Util.WebDriverKeyFromJs = function(keyCode) {
68+
var Util = {};
69+
70+
Util.loadFile = function(url) {
71+
var req = new XMLHttpRequest();
72+
req.open('GET', url, false);
73+
try {
74+
req.send();
75+
return req.responseText;
76+
} catch (err) {
77+
var message = 'Error at "' + err.filename + '" message "' + err.message +
78+
'" name "' + err.name + '" result 0x' + Number(err.result).toString(16);
79+
console.log(message);
80+
return message;
81+
}
82+
};
83+
84+
Util.getXPath = function() {
85+
function getXPath(node, path) {
86+
path = path || [];
87+
if (node.parentNode) {
88+
path = getXPath(node.parentNode, path);
89+
}
90+
91+
if (node.previousSibling) {
92+
var count = 1;
93+
var sibling = node.previousSibling
94+
do {
95+
if (sibling.nodeType == 1 && sibling.nodeName == node.nodeName) {count++;}
96+
sibling = sibling.previousSibling;
97+
} while (sibling);
98+
if (count == 1) {count = null;}
99+
} else if (node.nextSibling) {
100+
var sibling = node.nextSibling;
101+
do {
102+
if (sibling.nodeType == 1 && sibling.nodeName == node.nodeName) {
103+
var count = 1;
104+
sibling = null;
105+
} else {
106+
var count = null;
107+
sibling = sibling.previousSibling;
108+
}
109+
} while (sibling);
110+
}
111+
112+
if (node.nodeType == 1) {
113+
path.push(node.nodeName.toLowerCase() + (node.id ? "[@id='"+node.id+"']" : count > 0 ? "["+count+"]" : ''));
114+
}
115+
return path;
116+
}
117+
118+
return function(node) {
119+
if (node.hasAttribute('data-viz-id'))
120+
return '//*[@data-viz-id=' + node.getAttribute('data-viz-id') + "]";
121+
122+
var path = getXPath(node);
123+
return '/' + path.join('/');
124+
}
125+
}();
126+
127+
Util.webDriverKeyFromJs = function(keyCode) {
125128
switch (keyCode) {
126129
case 8: return webdriver.Key.BACK_SPACE;
127130
case 9: return webdriver.Key.TAB;
@@ -201,7 +204,7 @@ VisualizerXsltProcessors.prototype.get = function(webPage) {
201204
};
202205

203206
VisualizerXsltProcessors.prototype._create = function(name) {
204-
var stylesheet = loadFile(name);
207+
var stylesheet = Util.loadFile(name);
205208
stylesheet = (new DOMParser()).parseFromString(stylesheet, 'application/xml');
206209
var processor = new XSLTProcessor();
207210
try {
@@ -262,7 +265,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
262265
};
263266

264267
win.document.onkeyup = function(event) {
265-
var key = Util.WebDriverKeyFromJs(event.keyCode);
268+
var key = Util.webDriverKeyFromJs(event.keyCode);
266269
if (!key)
267270
return true;
268271

@@ -283,7 +286,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
283286
return;
284287
}
285288

286-
var xpath = getXPath(event.target);
289+
var xpath = Util.getXPath(event.target);
287290
var target = self.driver.findElement(webdriver.By.xpath(xpath));
288291
self.driver.actions().
289292
mouseMove(target, {x: event.offsetX, y: event.offsetY}).
@@ -297,7 +300,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
297300
return;
298301
}
299302

300-
var xpath = getXPath(event.target);
303+
var xpath = Util.getXPath(event.target);
301304
var target = self.driver.findElement(webdriver.By.xpath(xpath));
302305
self.driver.actions().
303306
mouseMove(target, {x: event.offsetX, y: event.offsetY}).
@@ -318,7 +321,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
318321
return;
319322
}
320323

321-
var xpath = getXPath(event.target);
324+
var xpath = Util.getXPath(event.target);
322325
var target = self.driver.findElement(webdriver.By.xpath(xpath));
323326
self.driver.actions().
324327
mouseMove(target, {x: event.offsetX, y: event.offsetY}).
@@ -335,23 +338,23 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
335338
var hammer = Hammer(win.document);
336339

337340
hammer.on("tap", function(event) {
338-
var xpath = getXPath(event.target);
341+
var xpath = Util.getXPath(event.target);
339342
var target = self.driver.findElement(webdriver.By.xpath(xpath));
340343
self.driver.actions().
341344
touchSingleTap(target).
342345
perform();
343346
});
344347

345348
hammer.on("hold", function(event) {
346-
var xpath = getXPath(event.target);
349+
var xpath = Util.getXPath(event.target);
347350
var target = self.driver.findElement(webdriver.By.xpath(xpath));
348351
self.driver.actions().
349352
touchLongPress(target).
350353
perform();
351354
});
352355

353356
hammer.on("doubletap", function(event) {
354-
var xpath = getXPath(event.target);
357+
var xpath = Util.getXPath(event.target);
355358
var target = self.driver.findElement(webdriver.By.xpath(xpath));
356359
self.driver.actions().
357360
touchDoubleTap(target).
@@ -377,7 +380,7 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
377380
});
378381

379382
hammer.on("dragstart", function(event) {
380-
var xpath = getXPath(event.target);
383+
var xpath = Util.getXPath(event.target);
381384
self.dragstart = self.driver.findElement(webdriver.By.xpath(xpath));
382385
});
383386

@@ -411,15 +414,15 @@ VisualizerController.prototype.visualizerAssignEventHandlers = function() {
411414
});
412415

413416
hammer.on("rotate", function(event) {
414-
var xpath = getXPath(event.target);
417+
var xpath = Util.getXPath(event.target);
415418
var target = self.driver.findElement(webdriver.By.xpath(xpath));
416419
self.driver.actions().
417420
touchPinchRotate(target, event.gesture.rotation).
418421
perform();
419422
});
420423

421424
hammer.on("pinch", function(event) {
422-
var xpath = getXPath(event.target);
425+
var xpath = Util.getXPath(event.target);
423426
var target = self.driver.findElement(webdriver.By.xpath(xpath));
424427
self.driver.actions().
425428
touchPinchZoom(target, event.gesture.scale).

0 commit comments

Comments
 (0)