jquery.alphanum
Version:
Restrict what characters that may be entered into text fields. Supports alphanumeric, alphabetic or numeric. Easy to use. Fully customisable. Cross Browser compatible.
154 lines (105 loc) • 3.82 kB
JavaScript
var webdriver = require('selenium-webdriver'),
test = require('selenium-webdriver/testing'),
assert = require('assert');
var seleniumUrl = 'http://' + process.env.SAUCE_USERNAME + ':' + process.env.SAUCE_ACCESS_KEY
+ '@ondemand.saucelabs.com:80/wd/hub';
//seleniumUrl = "http://localhost:4444/wd/hub";
var driver = new webdriver.Builder()
.withCapabilities({
'browserName': 'firefox',
'platform': 'Windows XP',
'version': '44.0',
'username': process.env.SAUCE_USERNAME,
'accessKey': process.env.SAUCE_ACCESS_KEY,
'tunnelIdentifier': 'tunnel-jquery-alphanum-' + process.pid,
'name': 'e2e Tests for jquery.alphanum'
})
.usingServer(seleniumUrl)
.build();
var e2eroot = 'http://localhost:9001/e2e';
test.describe('e2e tests', function() {
this.timeout(12000);
test.it('Open Browser', function() {
//this.timeout(10000);
driver.get(e2eroot);
driver.wait(function() {
return driver.getTitle().then(function(title) {
return title === 'jquery.alphanum e2e tests';
});
}, 10000);
});
test.it('input[text]', function() {
driver.get(e2eroot);
var textbox = driver.findElement(webdriver.By.id('textbox'));
textbox.sendKeys('lorem.ipsum');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'loremipsum');
});
});
test.it('textarea', function() {
driver.get(e2eroot + '/textarea.html');
var textbox = driver.findElement(webdriver.By.id('textareabox'));
textbox.sendKeys('foo#bar');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'foobar');
});
});
test.it('newline', function() {
driver.get(e2eroot + '/newline.html');
var textbox = driver.findElement(webdriver.By.id('allowNewline'));
textbox.sendKeys('foo\nbar');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'foo\nbar');
});
textbox = driver.findElement(webdriver.By.id('disallowNewline'));
textbox.sendKeys('foo\nbar');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'foobar');
});
});
test.it('rebind', function() {
driver.get(e2eroot + '/rebind.html');
var textbox = driver.findElement(webdriver.By.id('textbox'));
textbox.sendKeys('abcdefg');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'aefg');
});
});
test.it('unbind', function() {
driver.get(e2eroot + '/unbind.html');
var textbox = driver.findElement(webdriver.By.id('textbox'));
textbox.sendKeys('abcdefg');
textbox.getAttribute('value').then(function(value) {
assert.equal(value, 'abcdefg');
});
});
test.it('copy-paste simple', function() {
driver.get(e2eroot + '/copy-paste.html');
var from = driver.findElement(webdriver.By.id('from'));
from.sendKeys('a123b');
from.sendKeys(webdriver.Key.CONTROL, 'a');
from.sendKeys(webdriver.Key.CONTROL, 'c');
var to = driver.findElement(webdriver.By.id('to'));
to.sendKeys(webdriver.Key.CONTROL, 'v');
to.getAttribute('value').then(function(value) {
assert.equal(value, 'ab');
});
});
test.it('copy-paste mid string', function() {
driver.get(e2eroot + '/copy-paste.html');
var from = driver.findElement(webdriver.By.id('from'));
from.sendKeys('a123b');
from.sendKeys(webdriver.Key.CONTROL, 'a');
from.sendKeys(webdriver.Key.CONTROL, 'c');
var to = driver.findElement(webdriver.By.id('to'));
to.sendKeys('xy');
to.sendKeys(webdriver.Key.ARROW_LEFT);
to.sendKeys(webdriver.Key.CONTROL, 'v');
to.getAttribute('value').then(function(value) {
assert.equal(value, 'xaby');
});
});
test.after(function() {
driver.quit();
});
});