blob: 41e532b46132f346930152dd24029d9969c378c1 [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>enter_submit_test</title>
<link rel="stylesheet" href="/filez/_main/third_party/js/qunit/qunit.css">
<script src="/filez/_main/third_party/js/qunit/qunit.js"></script>
<script src="/filez/_main/third_party/js/qunit/qunit_test_runner.js"></script>
<script src="test_bootstrap.js"></script>
<script type="text/javascript">
goog.require('bot.Keyboard');
goog.require('bot.Keyboard.Key');
goog.require('bot.dom');
goog.require('goog.Promise');
goog.require('goog.dom');
goog.require('goog.events');
goog.require('goog.events.EventType');
</script>
<body>
<div id="qunit"></div>
<div id="qunit-fixture"></div>
<script type="text/javascript">
var submitFired;
var wasSubmitted;
var waitForSubmit;
var submitted = goog.nullFunction;
QUnit.testStart(function() {
submitFired = false;
wasSubmitted = false;
waitForSubmit = new goog.Promise(function(done) {
submitted = function() {
wasSubmitted = true;
done();
};
});
});
function submitForm(formName, opt_cancelSubmit) {
var target = document.getElementById(formName + 'text1');
var keyboard = new bot.Keyboard();
keyboard.moveCursor(target);
goog.events.listen(document.getElementById(formName),
goog.events.EventType.SUBMIT, function(e) {
submitFired = true;
if (opt_cancelSubmit) {
e.preventDefault();
}
});
keyboard.pressKey(bot.Keyboard.Keys.ENTER);
}
QUnit.test('two textboxes and one submit is submitted', function(assert) {
var done = assert.async();
submitForm('form1');
waitForSubmit.then(function() {
assert.ok(submitFired);
done();
});
});
QUnit.test('one textboxes and one submit is submitted', function(assert) {
var done = assert.async();
submitForm('form2');
waitForSubmit.then(function() {
assert.ok(submitFired);
done();
});
});
QUnit.test('one textboxes and no submit is submitted', function(assert) {
var done = assert.async();
submitForm('form4');
waitForSubmit.then(function() {
assert.ok(submitFired);
done();
});
});
QUnit.test('two textboxes and two submits is submitted', function(assert) {
var done = assert.async();
submitForm('form5');
waitForSubmit.then(function() {
assert.ok(submitFired);
done();
});
});
QUnit.test('key down cancel not submitted', function(assert) {
submitForm('form6');
assert.notOk(submitFired);
assert.notOk(wasSubmitted);
});
QUnit.test('key press cancel not submitted', function(assert) {
submitForm('form7');
assert.notOk(submitFired);
assert.notOk(wasSubmitted);
});
QUnit.test('key up cancel submitted', function(assert) {
var done = assert.async();
submitForm('form8');
waitForSubmit.then(function() {
assert.ok(submitFired);
done();
});
});
QUnit.test('cancel submit fired not submitted', function(assert) {
submitForm('form9', true);
assert.ok(submitFired);
});
</script>
<form id="form1" action="javascript:submitted()">
<input type="text" id="form1text1"></input><br/>
<input type="text" id="form1text2"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form2" action="javascript:submitted()">
<input type="text" id="form2text1"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form3" action="javascript:submitted()">
<input type="text" id="form3text1"></input><br/>
<input type="text" id="form3text2"></input><br/>
</form>
<form id="form4" action="javascript:submitted()">
<input type="text" id="form4text1"></input><br/>
</form>
<form id="form5" action="javascript:submitted()">
<input type="text" id="form5text1"></input><br/>
<input type="text" id="form5text2"></input><br/>
<input type="submit" value="submit"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form6" action="javascript:submitted()">
<input type="text" id="form6text1" onkeydown="return false"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form7" action="javascript:submitted()">
<input type="text" id="form7text1" onkeypress="return false"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form8" action="javascript:submitted()">
<input type="text" id="form8text1" onkeyup="return false"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
<form id="form9" action="javascript:submitted()">
<input type="text" id="form9text1"></input><br/>
<input type="submit" value="submit"></input><br/>
</form>
</body>
</html>