mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-28 13:21:28 +00:00
Bug 725418: IndexedDB - GetAll[Keys] with an explicit 0, null, or undefined for the maximum number of records should return all records. r=bent
--HG-- extra : rebase_source : d4ebec7bb33e581bf9e709440a20117e245d1fcd
This commit is contained in:
parent
91a3b842e3
commit
f20ce02de5
@ -526,7 +526,7 @@ IDBIndex::GetAll(const jsval& aKey,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
if (aOptionalArgCount < 2) {
|
||||
if (aOptionalArgCount < 2 || aLimit == 0) {
|
||||
aLimit = PR_UINT32_MAX;
|
||||
}
|
||||
|
||||
@ -565,7 +565,7 @@ IDBIndex::GetAllKeys(const jsval& aKey,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
if (aOptionalArgCount < 2) {
|
||||
if (aOptionalArgCount < 2 || aLimit == 0) {
|
||||
aLimit = PR_UINT32_MAX;
|
||||
}
|
||||
|
||||
|
@ -1532,7 +1532,7 @@ IDBObjectStore::GetAll(const jsval& aKey,
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
}
|
||||
|
||||
if (aOptionalArgCount < 2) {
|
||||
if (aOptionalArgCount < 2 || aLimit == 0) {
|
||||
aLimit = PR_UINT32_MAX;
|
||||
}
|
||||
|
||||
|
@ -82,6 +82,42 @@ function testSteps()
|
||||
is(event.target.result[i], values[i], "Same value");
|
||||
}
|
||||
|
||||
request = db.transaction("foo").objectStore("foo").getAll(keyRange, 0);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, values.length, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], values[i], "Same value");
|
||||
}
|
||||
|
||||
request = db.transaction("foo").objectStore("foo").getAll(keyRange, null);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, values.length, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], values[i], "Same value");
|
||||
}
|
||||
|
||||
request = db.transaction("foo").objectStore("foo").getAll(keyRange, undefined);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, values.length, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], values[i], "Same value");
|
||||
}
|
||||
|
||||
keyRange = IDBKeyRange.bound(4, 7);
|
||||
|
||||
request = db.transaction("foo").objectStore("foo").getAll(keyRange);
|
||||
@ -139,7 +175,7 @@ function testSteps()
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 0, "Correct length");
|
||||
is(event.target.result.length, 4, "Correct length");
|
||||
|
||||
keyRange = IDBKeyRange.bound(4, 7, true, true);
|
||||
|
||||
|
@ -104,6 +104,48 @@ function testSteps()
|
||||
"Correct key");
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAllKeys(65, 0);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
ok(true, "3");
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
|
||||
"Correct key");
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAllKeys(65, null);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
ok(true, "3");
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
|
||||
"Correct key");
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAllKeys(65, undefined);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
ok(true, "3");
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
is(event.target.result[i], objectStoreDataHeightSort[parseInt(i) + 3].key,
|
||||
"Correct key");
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAllKeys();
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
|
@ -108,6 +108,66 @@ function testSteps()
|
||||
}
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAll(65, 0);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
let result = event.target.result[i];
|
||||
let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
|
||||
|
||||
is(result.name, testObj.name, "Correct name");
|
||||
is(result.height, testObj.height, "Correct height");
|
||||
|
||||
if (testObj.hasOwnProperty("weight")) {
|
||||
is(result.weight, testObj.weight, "Correct weight");
|
||||
}
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAll(65, null);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
let result = event.target.result[i];
|
||||
let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
|
||||
|
||||
is(result.name, testObj.name, "Correct name");
|
||||
is(result.height, testObj.height, "Correct height");
|
||||
|
||||
if (testObj.hasOwnProperty("weight")) {
|
||||
is(result.weight, testObj.weight, "Correct weight");
|
||||
}
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAll(65, undefined);
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
event = yield;
|
||||
|
||||
is(event.target.result instanceof Array, true, "Got an array object");
|
||||
is(event.target.result.length, 2, "Correct length");
|
||||
|
||||
for (let i in event.target.result) {
|
||||
let result = event.target.result[i];
|
||||
let testObj = objectStoreDataHeightSort[parseInt(i) + 3].value;
|
||||
|
||||
is(result.name, testObj.name, "Correct name");
|
||||
is(result.height, testObj.height, "Correct height");
|
||||
|
||||
if (testObj.hasOwnProperty("weight")) {
|
||||
is(result.weight, testObj.weight, "Correct weight");
|
||||
}
|
||||
}
|
||||
|
||||
request = objectStore.index("height").getAll();
|
||||
request.onerror = errorHandler;
|
||||
request.onsuccess = grabEventAndContinueHandler;
|
||||
|
Loading…
x
Reference in New Issue
Block a user