зеркало из https://github.com/mozilla/gecko-dev.git
Backed out changeset a2246038cb41 (bug 1507403
) for ES Lint failure on test_clone_before_key_evaluation.js
This commit is contained in:
Родитель
4c1e631f97
Коммит
034c2bcb89
|
@ -28,7 +28,6 @@ support-files =
|
||||||
unit/test_blob_file_backed.js
|
unit/test_blob_file_backed.js
|
||||||
unit/test_blocked_order.js
|
unit/test_blocked_order.js
|
||||||
unit/test_clear.js
|
unit/test_clear.js
|
||||||
unit/test_clone_before_key_evaluation.js
|
|
||||||
unit/test_complex_keyPaths.js
|
unit/test_complex_keyPaths.js
|
||||||
unit/test_constraint_error_messages.js
|
unit/test_constraint_error_messages.js
|
||||||
unit/test_count.js
|
unit/test_count.js
|
||||||
|
@ -139,7 +138,6 @@ skip-if = e10s && os == 'win' && os_version == '6.1' # Bug 1342415
|
||||||
[test_blocked_order.html]
|
[test_blocked_order.html]
|
||||||
[test_bug937006.html]
|
[test_bug937006.html]
|
||||||
[test_clear.html]
|
[test_clear.html]
|
||||||
[test_clone_before_key_evaluation.html]
|
|
||||||
[test_complex_keyPaths.html]
|
[test_complex_keyPaths.html]
|
||||||
[test_constraint_error_messages.html]
|
[test_constraint_error_messages.html]
|
||||||
[test_count.html]
|
[test_count.html]
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
<!--
|
|
||||||
Any copyright is dedicated to the Public Domain.
|
|
||||||
http://creativecommons.org/publicdomain/zero/1.0/
|
|
||||||
-->
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Indexed Database Test</title>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
||||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
||||||
|
|
||||||
<script type="text/javascript" src="unit/test_clone_before_key_evaluation.js"></script>
|
|
||||||
<script type="text/javascript" src="helpers.js"></script>
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body onload="runTest();"></body>
|
|
||||||
|
|
||||||
</html>
|
|
|
@ -1,131 +0,0 @@
|
||||||
/**
|
|
||||||
* Any copyright is dedicated to the Public Domain.
|
|
||||||
* http://creativecommons.org/publicdomain/zero/1.0/
|
|
||||||
*/
|
|
||||||
|
|
||||||
var testGenerator = testSteps();
|
|
||||||
|
|
||||||
function* testSteps()
|
|
||||||
{
|
|
||||||
const name = this.window ? window.location.pathname
|
|
||||||
: "test_clone_before_key_evaluation.js";
|
|
||||||
const objectStoreInfo = {
|
|
||||||
name: "customers",
|
|
||||||
options: { keyPath: "ssn" },
|
|
||||||
};
|
|
||||||
const indexInfo = {
|
|
||||||
name: "customerIndex",
|
|
||||||
keyPath: ["id", "email", "name"],
|
|
||||||
options: { unique: false },
|
|
||||||
};
|
|
||||||
|
|
||||||
for (let test of [1, 2]) {
|
|
||||||
info("Opening database");
|
|
||||||
|
|
||||||
let request = indexedDB.open(name);
|
|
||||||
request.onerror = errorHandler;
|
|
||||||
request.onupgradeneeded = continueToNextStepSync;
|
|
||||||
request.onsuccess = unexpectedSuccessHandler;
|
|
||||||
yield undefined;
|
|
||||||
|
|
||||||
// upgradeneeded
|
|
||||||
|
|
||||||
request.onupgradeneeded = unexpectedSuccessHandler;
|
|
||||||
request.onsuccess = continueToNextStepSync;
|
|
||||||
|
|
||||||
let db = request.result;
|
|
||||||
db.onerror = errorHandler;
|
|
||||||
|
|
||||||
info("Creating objectStore");
|
|
||||||
|
|
||||||
let objectStore = db.createObjectStore(objectStoreInfo.name,
|
|
||||||
objectStoreInfo.options);
|
|
||||||
|
|
||||||
info("Creating index");
|
|
||||||
|
|
||||||
objectStore.createIndex(indexInfo.name,
|
|
||||||
indexInfo.keyPath,
|
|
||||||
indexInfo.options);
|
|
||||||
|
|
||||||
switch (test) {
|
|
||||||
case 1: {
|
|
||||||
info("Adding data with a getter");
|
|
||||||
|
|
||||||
let idCount = 0;
|
|
||||||
|
|
||||||
const customerData = {
|
|
||||||
ssn: "444-44-4444", name: "Bill", age: 25, email: "bill@company.com",
|
|
||||||
get id()
|
|
||||||
{
|
|
||||||
idCount++;
|
|
||||||
objectStore.deleteIndex(indexInfo.name);
|
|
||||||
return "ID_001";
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
objectStore.add(customerData);
|
|
||||||
|
|
||||||
ok(idCount == 1, "Getter was called only once");
|
|
||||||
|
|
||||||
ok(objectStore.indexNames.length == 0, "Index was removed");
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case 2: {
|
|
||||||
info("Adding data with a prototype getter");
|
|
||||||
|
|
||||||
let idCount = 0;
|
|
||||||
|
|
||||||
const customerData = {
|
|
||||||
ssn: "555-55-5555", name: "Joe", age: 52, email: "joe@company.com",
|
|
||||||
};
|
|
||||||
|
|
||||||
Object.defineProperty(Object.prototype, 'id', {
|
|
||||||
get() {
|
|
||||||
idCount++;
|
|
||||||
objectStore.deleteIndex(indexInfo.name);
|
|
||||||
return "ID_002";
|
|
||||||
},
|
|
||||||
enumerable: false,
|
|
||||||
configurable: true,
|
|
||||||
});
|
|
||||||
|
|
||||||
objectStore.add(customerData);
|
|
||||||
|
|
||||||
ok(idCount == 0, "Prototype getter was not called");
|
|
||||||
|
|
||||||
// Paranoid checks, just to be sure that the protype getter is called
|
|
||||||
// in standard JS.
|
|
||||||
|
|
||||||
let id = customerData.id;
|
|
||||||
|
|
||||||
ok(id == "ID_002", "Prototype getter returned correct value");
|
|
||||||
ok(idCount == 1, "Prototype getter was called only once");
|
|
||||||
|
|
||||||
delete Object.prototype["id"];
|
|
||||||
|
|
||||||
id = customerData.id;
|
|
||||||
|
|
||||||
ok(id == undefined, "Prototype getter was removed");
|
|
||||||
|
|
||||||
ok(objectStore.indexNames.length == 0, "Index was removed");
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
yield undefined;
|
|
||||||
|
|
||||||
// success
|
|
||||||
|
|
||||||
db.close();
|
|
||||||
|
|
||||||
request = indexedDB.deleteDatabase(name);
|
|
||||||
request.onerror = errorHandler;
|
|
||||||
request.onsuccess = continueToNextStepSync;
|
|
||||||
yield undefined;
|
|
||||||
}
|
|
||||||
|
|
||||||
finishTest();
|
|
||||||
}
|
|
|
@ -11,7 +11,6 @@
|
||||||
[test_autoIncrement_indexes.js]
|
[test_autoIncrement_indexes.js]
|
||||||
[test_blocked_order.js]
|
[test_blocked_order.js]
|
||||||
[test_clear.js]
|
[test_clear.js]
|
||||||
[test_clone_before_key_evaluation.js]
|
|
||||||
[test_complex_keyPaths.js]
|
[test_complex_keyPaths.js]
|
||||||
[test_count.js]
|
[test_count.js]
|
||||||
[test_create_index.js]
|
[test_create_index.js]
|
||||||
|
|
Загрузка…
Ссылка в новой задаче