Files
BeWoPlaner/BeWoPlanerMobil/node_modules/wd/test/midway/api-nav-specs.js
Lyndon Jetten fda2c306b5 MoK: Report Viewer hinzugefügt
FaC: Das alte Flag von Terminen, die in die Zeiterfassung übernommen worden sind, wird ebenfalls berücksichtigt.
2023-03-13 19:39:04 +01:00

306 lines
10 KiB
JavaScript

require('../helpers/setup');
describe('api-nav ' + env.ENV_DESC, function() {
var partials = {};
var browser;
require('./midway-base')(this, partials).then(function(_browser) { browser = _browser; });
if(!env.SAUCE){ // page timeout seems to be disabled in sauce
it('browser.setPageLoadTimeout', function() {
var defaultTimeout = (env.DESIRED.browserName === 'firefox')? -1 : env.BASE_TIME_UNIT;
return browser
.setPageLoadTimeout(env.BASE_TIME_UNIT / 2)
.setPageLoadTimeout(defaultTimeout);
});
}
partials['browser.get'] =
'<div name="theDiv">Hello World!</div>';
it('browser.get', function() {
return browser.text().
should.eventually.include('Hello World!');
});
it('browser.url', function() {
return browser
.url().should.eventually.include("http://")
.url().should.eventually.include("test-page");
});
it('browser.refresh', function() {
return browser.refresh();
});
it('back/forward', function() {
return browser.url().then(function(url) {
return browser
.get( url + '&thePage=2')
.url().should.eventually.include("&thePage=2")
.back()
.url().should.eventually.not.include("&thePage=2")
.forward()
.url().should.eventually.include("&thePage=2");
});
});
partials['browser.setImplicitWaitTimeout'] =
'<div id="setWaitTimeout"></div>';
it('browser.setImplicitWaitTimeout', function() {
var startMs = Date.now();
return browser
// return error 7 when timeout set to 0
.setImplicitWaitTimeout(0)
.execute( prepareJs(
'setTimeout(function() {\n' +
'$("#setWaitTimeout").html("<div class=\\"child\\">a child</div>");\n' +
'}, arguments[0]);' ), [env.BASE_TIME_UNIT])
.then(function() {
// if selenium was too slow skip the test.
if(Date.now() - startMs < env.BASE_TIME_UNIT){
return browser
.elementByCss('#setWaitTimeout .child')
.should.be.rejectedWith(/status: 7/);
}
})
.setImplicitWaitTimeout(2 * env.BASE_TIME_UNIT)
.elementByCss('#setWaitTimeout .child')
.setImplicitWaitTimeout(0);
});
partials['browser.clickElement'] =
'<div id="theDiv"><a href="#">not clicked</a></div>\n';
it('browser.clickElement', function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' a = $(\'#theDiv a\');\n' +
' a.click(function() {\n' +
' a.html(\'clicked\');\n' +
' return false;\n' +
' });\n' +
'});\n')
)
.elementByCss("#theDiv a").then(function(el) {
return browser
.text(el).should.become("not clicked")
.clickElement(el)
.text(el).should.become("clicked")
;
});
});
partials['browser.moveTo'] =
'<div id="theDiv">\n' +
' <div class="div1" href="#">div 1</div>\n' +
' <div class="div2" href="#">div 1</div>\n' +
' <div class="current"></div>\n' +
'</div>\n';
it('browser.moveTo', skip('ios', 'android'), function() {
if(env.BROWSER === 'explorer') {
// cannot get hover to work in explorer
return browser
.elementByCss('#theDiv .div1').then(function(div1) {
return browser
.moveTo(div1).should.be.fulfilled;
})
.elementByCss('#theDiv .div1')
.moveTo().should.be.fulfilled;
} else {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' var div1 = $(\'#theDiv .div1\');\n' +
' var div2 = $(\'#theDiv .div2\');\n' +
' var current = $(\'#theDiv .current\');\n' +
' div1.hover(function() {\n' +
' current.html(\'div 1\');\n' +
' });\n' +
' div2.hover(function() {\n' +
' current.html(\'div 2\');\n' +
' });\n' +
'});\n')
)
.elementByCss('#theDiv .current').text().should.become('')
.elementByCss('#theDiv .div1').then(function(div1) {
return browser
.moveTo(div1)
.elementByCss('#theDiv .current').text().should.become('div 1');
})
.elementByCss('#theDiv .div2').then(function(div2) {
return browser
.moveTo(div2)
.elementByCss('#theDiv .current').text().should.become('div 2');
})
.elementByCss('#theDiv .div1').then(function(div1) {
return browser
.moveTo(div1)
.elementByCss('#theDiv .current').text().should.become('div 1');
});
}
});
partials['browser.buttonDown/browser.buttonUp'] =
'<div id="theDiv"><a>hold me</a><div class="res"></div></div>\n';
it('browser.buttonDown/browser.buttonUp', skip('ios', 'android'), function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' a = $(\'#theDiv a\');\n' +
' res = $(\'#theDiv .res\');\n' +
' current = $(\'#theDiv .current\');\n' +
' a.mousedown(function() {\n' +
' res.html(\'button down\');\n' +
' });\n' +
' a.mouseup(function() {\n' +
' res.html(\'button up\');\n' +
' });\n' +
'});\n')
)
.elementByCss('#theDiv .res').text().should.become('')
.elementByCss('#theDiv a').then(function(el) {
return browser
.moveTo(el)
.buttonDown()
.elementByCss('#theDiv .res').text().should.become('button down')
.buttonUp()
.elementByCss('#theDiv .res').text().should.become('button up')
.moveTo(el)
.buttonDown(0)
.elementByCss('#theDiv .res').text().should.become('button down')
.buttonUp(0)
.elementByCss('#theDiv .res').text().should.become('button up');
});
});
partials['browser.click'] =
'<div id="theDiv">\n' +
' <div class="numOfClicks">not clicked</div>\n' +
' <div class="buttonNumber">not clicked</div>\n' +
'</div>\n';
it('browser.click', skip('ios', 'android'), function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' var numOfClick = 0;\n' +
' numOfClicksDiv = $(\'#theDiv .numOfClicks\');\n' +
' buttonNumberDiv = $(\'#theDiv .buttonNumber\');\n' +
' current = $(\'#theDiv .current\');\n' +
' numOfClicksDiv.mousedown(function(eventObj) {\n' +
' var button = eventObj.button;\n' +
' if(button === undefined) {button="default";}\n' +
' numOfClick++;\n' +
' numOfClicksDiv.html("clicked " + numOfClick);\n' +
' buttonNumberDiv.html(button);\n' +
' return false;\n' +
' });\n' +
'});\n')
)
.elementByCss('#theDiv .numOfClicks').text().should.become('not clicked')
.elementByCss('#theDiv .buttonNumber').text().should.become('not clicked')
.elementByCss('#theDiv .numOfClicks').then(function(el) {
return browser
.moveTo(el)
.click(0)
.elementByCss('#theDiv .numOfClicks').text()
.should.become('clicked 1')
.elementByCss('#theDiv .buttonNumber').text()
.should.become('0')
.then(function() {
if(!env.SAUCE){ // sauce complains when button is missing
browser
.click()
.elementByCss('#theDiv .numOfClicks').text()
.should.become('clicked 2')
.elementByCss('#theDiv .buttonNumber').text()
.should.become('0');
}
});
});
});
partials['browser.doubleclick'] =
'<div id="theDiv">\n' +
' <div>not clicked</div>\n' +
'</div>\n';
it('browser.doubleclick', skip('ios', 'android'), function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' div = $(\'#theDiv div\');\n' +
' div.dblclick(function() {\n' +
' div.html("doubleclicked");\n' +
' });\n' +
'});\n')
)
.elementByCss('#theDiv div').text().should.become('not clicked')
.elementByCss('#theDiv div').then(function(div) {
return browser
.moveTo(div)
.doubleclick()
.elementByCss('#theDiv div').text().should.become('doubleclicked');
});
});
if(!env.SAUCE) {
// weird stuff with keying spaces on Sauce at the moment, commenting
// until browser has been upgraded.
partials['browser.clear'] =
'<div id="theDiv">\n' +
' <input type="text" value="not cleared">\n' +
'</div>\n';
it('browser.clear', function() {
return browser
.waitForElementByCss("#theDiv input", 5000).then(function(el) {
return browser
.getValue(el).should.become('not cleared')
.clear(el)
.getValue(el).should.become('');
})
.elementByCss("#theDiv input").type("not cleared")
.getValue().should.become('not cleared')
.elementByCss("#theDiv input").clear().getValue().should.become('');
});
}
it('browser.title', function() {
return browser.title().should.eventually.include("WD Tests");
});
partials['browser.acceptAlert'] =
'<div id="theDiv"><a>click me</a></div>\n';
it('browser.acceptAlert', skip('ios', 'android'), function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' a = $(\'#theDiv a\');\n' +
' a.click(function() {\n' +
' alert("coffee is running out");\n' +
' return false;\n' +
' });\n' +
'});\n')
)
.elementByCss("#theDiv a").click()
.acceptAlert();
});
partials['browser.dismissAlert'] =
'<div id="theDiv"><a>click me</a></div>\n';
it('browser.dismissAlert', skip('chrome', 'ios', 'android'), function() {
return browser
.execute( prepareJs(
'jQuery( function() {\n' +
' a = $(\'#theDiv a\');\n' +
' a.click(function() {\n' +
' alert("coffee is running out");\n' +
' return false;\n' +
' });\n' +
'});\n')
)
.elementByCss("#theDiv a").click()
.dismissAlert();
});
});