Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
seleniumhq
GitHub Repository: seleniumhq/selenium
Path: blob/trunk/javascript/webdriver/atoms/inject/sql_database.js
2868 views
1
// Licensed to the Software Freedom Conservancy (SFC) under one
2
// or more contributor license agreements. See the NOTICE file
3
// distributed with this work for additional information
4
// regarding copyright ownership. The SFC licenses this file
5
// to you under the Apache License, Version 2.0 (the
6
// "License"); you may not use this file except in compliance
7
// with the License. You may obtain a copy of the License at
8
//
9
// http://www.apache.org/licenses/LICENSE-2.0
10
//
11
// Unless required by applicable law or agreed to in writing,
12
// software distributed under the License is distributed on an
13
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
// KIND, either express or implied. See the License for the
15
// specific language governing permissions and limitations
16
// under the License.
17
18
/**
19
* @fileoverview Ready to inject atoms for handling web SQL database.
20
*/
21
22
goog.provide('webdriver.atoms.inject.storage.database');
23
24
goog.require('bot.Error');
25
goog.require('bot.ErrorCode');
26
goog.require('bot.storage.database');
27
goog.require('webdriver.atoms.inject');
28
29
30
/**
31
* Executes the given query in the Web SQL database specified.
32
*
33
* @param {string} databaseName The name of the database.
34
* @param {string} query The SQL statement.
35
* @param {Array.<*>} args Arguments to pass to the query.
36
* @param {function(string)} onDone The callback to invoke when done. The
37
* result, according to the wire protocol, will be passed to this callback.
38
*/
39
webdriver.atoms.inject.storage.database.executeSql =
40
function(databaseName, query, args, onDone) {
41
var onSuccessCallback = function(tx, result) {
42
onDone(webdriver.atoms.inject.executeScript(function(res) {
43
return result;
44
}, [result]));
45
};
46
47
var onErrorCallback = function(error) {
48
onDone(webdriver.atoms.inject.executeScript(function() {
49
throw new bot.Error(bot.ErrorCode.SQL_DATABASE_ERROR,
50
'SQL Error Code: ' + error.code + '. SQL Error Message: ' +
51
error.message);
52
}, []));
53
};
54
55
bot.storage.database.executeSql(
56
databaseName, query, args, onSuccessCallback, onErrorCallback);
57
};
58
59