blob: 613b29613c2587e4fb47d4ee6609213c1f00232f [file] [log] [blame]
function SeleniumParameterTest(name) {
TestCase.call(this,name);
}
SeleniumParameterTest.prototype = new TestCase();
SeleniumParameterTest.prototype.setUp = function() {
this.mockPageBot = new Mock();
this.mockBrowserBot = new Mock();
this.oldSelenium = selenium;
selenium = new Selenium(this.mockBrowserBot);
LOG = new DummyLogger();
}
SeleniumParameterTest.prototype.tearDown = function() {
selenium = this.oldSelenium;
}
SeleniumParameterTest.prototype.testHandleSimpleStrings = function() {
this.assertEquals('', selenium.preprocessParameter(''));
this.assertEquals(' ', selenium.preprocessParameter(' '));
this.assertEquals('ABC', selenium.preprocessParameter('ABC'));
this.assertEquals('1234567890!@#$%^&*()', selenium.preprocessParameter('1234567890!@#$%^&*()'));
}
SeleniumParameterTest.prototype.testSimpleVariableSubstitution = function() {
storedVars['var'] = 'value';
storedVars['var2'] = 'another value';
this.assertEquals('_value_', selenium.preprocessParameter('_${var}_'));
this.assertEquals('_value value_', selenium.preprocessParameter('_${var} ${var}_'));
this.assertEquals('_value another value_', selenium.preprocessParameter('_${var} ${var2}_'));
}
SeleniumParameterTest.prototype.testUnkownVariableNotSubstituted = function() {
storedVars['var'] = 'value';
this.assertEquals('_${bar}_',
selenium.preprocessParameter('_${bar}_'));
this.assertEquals('_${bar} value_',
selenium.preprocessParameter('_${bar} ${var}_'));
this.assertEquals('_value ${bar} ${bar} value ${bar}_',
selenium.preprocessParameter('_${var} ${bar} ${bar} ${var} ${bar}_'));
}
SeleniumParameterTest.prototype.testSimpleJavascriptEvaluation = function() {
this.assertEquals('25', selenium.preprocessParameter('javascript{"2" + "5"}'));
this.assertEquals('25', selenium.preprocessParameter('javascript{5 * 5}'));
}
SeleniumParameterTest.prototype.testVariableSubstitutionDoesntApplyForJavascriptParameters = function() {
this.assertEquals(' ${foo} ', selenium.preprocessParameter('javascript{" ${foo} "}'));
}
SeleniumParameterTest.prototype.testCanAccessStoredVariablesFromJavascriptParameters = function() {
storedVars['var'] = 'value';
this.assertEquals(' value ', selenium.preprocessParameter('javascript{" " + storedVars["var"] + " "}'));
}
SeleniumParameterTest.prototype.testJavascriptEvaluationOfEmptyBody = function() {
this.assertEquals('javascript{}', selenium.preprocessParameter('javascript{}'));
}
SeleniumParameterTest.prototype.testIllegalJavascriptParameter = function() {
try {
selenium.preprocessParameter('javascript{foo}');
} catch (e) {
return;
}
this.fail("call should have failed");
}