helma/modules/jala/util/Test/tests/selftest.js

170 lines
4.7 KiB
JavaScript
Raw Normal View History

2020-03-16 16:53:52 +01:00
//
// Jala Project [http://opensvn.csie.org/traccgi/jala]
//
// Copyright 2004 ORF Online und Teletext GmbH
//
// Licensed under the Apache License, Version 2.0 (the ``License'');
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an ``AS IS'' BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//
// $Revision$
// $LastChangedBy$
// $LastChangedDate$
// $HeadURL$
//
/**
* Declare which test methods should be run in which order
* @type Array
* @final
*/
/**
* Test for jala.Test.evalArguments
*/
var testEvalArguments = function testEvalArguments() {
var args;
// test arguments without a comment
args = [true, false, 1, "one", new Date()];
jala.Test.evalArguments(args, 5);
// test arguments with a comment
args = ["a comment", true, false, 1, "one", new Date()];
jala.Test.evalArguments(args, 5);
return;
};
/**
* Test for jala.Test.containsComment
*/
var testArgsContainComment = function testArgsContainComment() {
var args = ["a comment", true];
if (jala.Test.argsContainComment(args, 1) !== true) {
throw new jala.Test.TestException(null,
"Argument array is supposed to contain a comment, but doesn't");
}
return;
};
/**
* Test for jala.Test.getComment
*/
var testGetComment = function testGetComment() {
var args = ["a comment", true];
if (jala.Test.getComment(args, 1) !== args[0]) {
throw new jala.Test.TestException(null, "Couldn't get comment");
}
return;
};
/**
* Test for jala.Test.getValue
*/
var testGetValue = function testGetValue() {
var args = ["a comment", 1, 2, 3];
if (jala.Test.getValue(args, 3, 1) !== args[2]) {
throw new jala.Test.TestException("Couldn't get correct argument value");
}
return;
};
/**
* Testing assertion functions
*/
var testBasicAssertionFunctions = function testAssertionFunctions() {
assertTrue("just a comment", true);
assertFalse("just a comment", false);
assertEqual(1, 1);
assertEqualArrays("asserting arrays", [1,2,3], [1,2,3]);
assertEqualArrays(["1","2"], ["1","2"]);
assertNotEqual(1, 2);
assertNull(null);
assertNotNull(true);
assertUndefined(undefined);
assertNotUndefined(true);
assertNaN("one");
assertNotNaN(1);
assertStringContains("just a self test", "self");
assertMatch("just a self test", /^just/);
return;
};
/**
* Testing assertThrows
*/
var testAssertThrows = function testAssertThrows() {
// throw undefined (yes, you can do that...)
assertThrows(function() {
throw undefined;
}, undefined);
// throw custom javascript object
assertThrows(function() {
throw new jala.Test.TestException("", "message");
}, jala.Test.TestException);
// throw string
assertThrows(function() {
throw "my message";
}, "my message");
// throw java exception
assertThrows(function() {
var x = new java.util.Vector(0);
res.debug(x.get(1));
}, java.lang.ArrayIndexOutOfBoundsException);
// throw anything, but don't check further
assertThrows(function() {
throw new Date();
});
// don't throw an expected exception
assertThrows(function() {
assertThrows(function() {
return;
}, "oy");
}, jala.Test.TestException);
return;
};
var testInclude = function() {
var dir = java.lang.System.getProperty("java.io.tmpdir");
var content = "var INCLUDED = true;";
// create include file with the above content
var file = new helma.File(dir, "testInclude." + (new Date()).getTime());
file.open();
file.write(content);
file.close();
include(file);
// now include the file and test if everything works
assertTrue(global["INCLUDED"]);
// finally remove the include file again
file.remove();
return;
};
/**
* Testing testAssertEqualFile
*/
var testAssertEqualFile = function testAssertEqualFile() {
var str = "This is just a simple test\r\n";
var dir = java.lang.System.getProperty("java.io.tmpdir");
// create test file and write the string into the file
var testFile = new helma.File(dir, "testAssertEqualFile." + (new Date()).getTime());
testFile.open();
testFile.write(str);
testFile.close();
// test string comparison
assertEqualFile(str, testFile);
// test byte array comparison
var arr = new java.lang.String(str).getBytes();
assertEqualFile(arr, testFile);
// finally, remove testFile again
testFile.remove();
return;
};