| Index: LayoutTests/storage/execute-sql-args.js
|
| ===================================================================
|
| --- LayoutTests/storage/execute-sql-args.js (revision 0)
|
| +++ LayoutTests/storage/execute-sql-args.js (revision 0)
|
| @@ -0,0 +1,88 @@
|
| +var throwOnToStringObject = { };
|
| +throwOnToStringObject.toString = function () { throw "Cannot call toString on this object." };
|
| +
|
| +var throwOnGetLengthObject = { };
|
| +throwOnGetLengthObject.__defineGetter__("length", function () { throw "Cannot get length of this object."; });
|
| +
|
| +var throwOnGetZeroObject = { length: 1 };
|
| +throwOnGetZeroObject.__defineGetter__("0", function () { throw "Cannot get 0 property of this object."; });
|
| +
|
| +var expectNoException = [
|
| + 'null',
|
| + 'undefined',
|
| + '0',
|
| + '""',
|
| + '"", null',
|
| + '"", undefined',
|
| + '"", []',
|
| + '"", [ "arg0" ]',
|
| + '"", { }',
|
| + '"", { length: 0 }',
|
| + '"", { length: 1, 0: "arg0" }',
|
| + '"", null, null',
|
| + '"", null, undefined',
|
| + '"", null, { }',
|
| + '"", null, null, null',
|
| + '"", null, null, undefined',
|
| + '"", null, null, { }',
|
| +];
|
| +
|
| +var expectException = [
|
| + '',
|
| + 'throwOnToStringObject',
|
| + '"", throwOnGetLengthObject',
|
| + '"", throwOnGetZeroObject',
|
| + '"", [ throwOnToStringObject ]',
|
| + '"", 0',
|
| + '"", ""',
|
| + '"", null, 0',
|
| + '"", null, ""',
|
| + '"", null, null, 0',
|
| + '"", null, null, ""',
|
| +];
|
| +
|
| +function tryExecuteSql(transaction, parameterList)
|
| +{
|
| + try {
|
| + eval('transaction.executeSql(' + parameterList + ')');
|
| + return null;
|
| + } catch (exception) {
|
| + return exception;
|
| + }
|
| +}
|
| +
|
| +function runTransactionTest(transaction, parameterList, expectException)
|
| +{
|
| + var exception = tryExecuteSql(transaction, parameterList);
|
| + if (expectException) {
|
| + if (exception)
|
| + log("PASS. executeSql(" + parameterList + ") threw an exception as expected.");
|
| + else
|
| + log("*FAIL*. executeSql(" + parameterList + ") did not throw an exception");
|
| + } else {
|
| + if (exception)
|
| + log("*FAIL*. executeSql(" + parameterList + ") threw an exception: " + exception);
|
| + else
|
| + log("PASS. executeSql(" + parameterList + ") did not throw an exception");
|
| + }
|
| +}
|
| +
|
| +function runTransactionTests(transaction)
|
| +{
|
| + for (i in expectNoException)
|
| + runTransactionTest(transaction, expectNoException[i], false);
|
| + for (i in expectException)
|
| + runTransactionTest(transaction, expectException[i], true);
|
| +
|
| + if (window.layoutTestController)
|
| + layoutTestController.notifyDone();
|
| +}
|
| +
|
| +function runTest()
|
| +{
|
| +
|
| + var db = openDatabase("ExecuteSQLArgsTest", "1.0", "Test of handling of the arguments to SQLTransaction.executeSql", 1);
|
| + db.transaction(runTransactionTests);
|
| +}
|
| +
|
| +
|
|
|