GT2/GT2-Android/node_modules/winchan/scenario/index.js

81 lines
2.2 KiB
JavaScript

var assert = require('assert');
var test = require('selenium-webdriver/testing');
var webdriver = require('selenium-webdriver');
var assert = require('assert');
var WebdriverManager = require('webdriver-manager');
var SELENIUM_PATH = './node_modules/webdriver-manager/selenium';
var wm = new WebdriverManager(SELENIUM_PATH);
var servers = require('../scripts/run_example');
process.env.PATH = process.env.PATH + ':' + SELENIUM_PATH;
describe('winchan', function () {
var driver;
before(function (done) {
var readyCount = 0;
function executeOnCount(done) {
return function () {
console.log('hi');
readyCount++;
if (readyCount == 1) {
done();
}
};
}
var self = this;
this.timeout(20000);
// Install Selenium Standalone and Google Chrome
wm.install(['standalone', 'chrome'], function (err, filenames) {
// Start selenium
var selenium = wm.start();
function doneWrapper() {
self.timeout(2000);
done();
}
selenium.once( 'ready', executeOnCount(doneWrapper));
});
});
test.it('should work', function() {
var driver = new webdriver.Builder()
.withCapabilities(webdriver.Capabilities.chrome())
.build();
driver.get("http://localhost:8100/complex_example");
var handles;
var openTheWindow = driver.findElement(webdriver.By.id('open'));
openTheWindow.click();
driver.getAllWindowHandles().then(function (_handles_) {
handles = _handles_;
driver.switchTo().window(handles[1]);
driver.findElement(webdriver.By.id('nav_away')).click();
driver.findElement(webdriver.By.tagName('button')).click();
driver.findElement(webdriver.By.id('close')).click();
driver.switchTo().window(handles[0]);
return driver.findElement(webdriver.By.tagName('pre')).getText();
})
.then(function (text) {
text = text.split('\n').slice(2).join('').slice('response: '.length);
var textAsObj = JSON.parse(text);
// Not going to compare timestamp
delete textAsObj.timestamp;
assert.deepEqual(textAsObj, {
thanks: "for",
calling: true
});
driver.quit();
});
});
});