<!DOCTYPE html>
<!-- Submitted from TestTWF Paris -->
<html>
<head>
<meta charset=utf-8>
<title id='desc'>IDBKeyRange Tests - Incorrect</title>
<link rel=help href="http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#range-concept">
<link rel=assert title="If the lower key is greater than the upper key, then a DOMException of type DataError must be thrown.">
<link rel=author href="mailto:[email protected]" title="Christophe CHARLES">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/support.js"></script>
<script type="text/javascript">
// TypeError: bound requires more than 0 arguments
test( function() {
assert_throws_js(TypeError, function() {
IDBKeyRange.bound();
});
}, "IDBKeyRange.bound() - bound requires more than 0 arguments.");
// Null parameters
test( function() {
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(null, null);
});
}, "IDBKeyRange.bound(null, null) - null parameters are incorrect.");
// // Null parameter
test( function() {
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(1, null);
});
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(null, 1);
});
}, "IDBKeyRange.bound(1, null / null, 1) - null parameter is incorrect.");
// bound incorrect
test( function() {
var lowerBad = Math.floor(Math.random()*31) + 5;
var upper = lowerBad - 1;
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(lowerBad, upper);
});
assert_throws_dom("DataError", function() {
IDBKeyRange.bound('b', 'a');
});
}, "IDBKeyRange.bound(lower, upper / lower > upper) - 'lower' is greater than 'upper'."
);
test( function() {
assert_throws_dom("DataError", function() {
IDBKeyRange.bound('a', 1);
});
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(new Date(), 1);
});
assert_throws_dom("DataError", function() {
IDBKeyRange.bound([1, 2], 1);
});
}, "IDBKeyRange.bound(DOMString/Date/Array, 1) - A DOMString, Date and Array are greater than a float.");
// ReferenceError: the variable is not defined
test( function() {
var goodVariable = 1;
assert_throws_js(ReferenceError, function() {
IDBKeyRange.bound(noExistingVariable, 1);
});
assert_throws_js(ReferenceError, function() {
IDBKeyRange.bound(goodVariable, noExistingVariable);
});
}, "IDBKeyRange.bound(noExistingVariable, 1 / goodVariable, noExistingVariable) - noExistingVariable is not defined.");
// Valid type key error
test( function() {
assert_throws_dom("DataError", function() {
IDBKeyRange.bound(true, 1);
});
}, "IDBKeyRange.bound(true, 1) - boolean is not a valid key type.");
</script>
</head>
<body>
<div id="log"></div>
</body>
</html>